diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index 0e24c6cd5120..8a75a1487ff1 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -9,18 +9,24 @@ FROM mcr.microsoft.com/vscode/devcontainers/python:3.10 # Update the OS and maybe install packages # ENV DEBIAN_FRONTEND=noninteractive + +# add git lhs to apt +RUN curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | bash + RUN apt-get update \ && apt-get upgrade -y \ - && apt-get -y install --no-install-recommends build-essential npm \ + && apt-get -y install --no-install-recommends build-essential npm git-lfs \ && apt-get autoremove -y \ && apt-get clean -y \ - && wget https://github.com/quarto-dev/quarto-cli/releases/download/v1.4.549/quarto-1.4.549-linux-amd64.deb \ - && dpkg -i quarto-1.4.549-linux-amd64.deb \ - && rm -rf /var/lib/apt/lists/* quarto-1.4.549-linux-amd64.deb + && arch=$(arch | sed s/aarch64/arm64/ | sed s/x86_64/amd64/) \ + && wget https://github.com/quarto-dev/quarto-cli/releases/download/v1.5.23/quarto-1.5.23-linux-${arch}.deb \ + && dpkg -i quarto-1.5.23-linux-${arch}.deb \ + && rm -rf /var/lib/apt/lists/* quarto-1.5.23-linux-${arch}.deb ENV DEBIAN_FRONTEND=dialog # For docs RUN npm install --global yarn +RUN pip install --upgrade pip RUN pip install pydoc-markdown RUN pip install pyyaml -RUN pip install colored +RUN pip install colored diff --git a/.devcontainer/dev/Dockerfile b/.devcontainer/dev/Dockerfile index 4821574371c7..04f4c54edf4e 100644 --- a/.devcontainer/dev/Dockerfile +++ b/.devcontainer/dev/Dockerfile @@ -1,10 +1,13 @@ # Basic setup FROM python:3.11-slim-bookworm +# add git lhs to apt +RUN curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | bash + # Update and install necessary packages RUN apt-get update && apt-get -y update # added vim and nano for convenience -RUN apt-get install -y sudo git npm vim nano curl wget +RUN apt-get install -y sudo git npm vim nano curl wget git-lfs # Setup a non-root user 'autogen' with sudo access RUN adduser --disabled-password --gecos '' autogen @@ -33,17 +36,18 @@ RUN cd website RUN yarn install --frozen-lockfile --ignore-engines RUN arch=$(arch | sed s/aarch64/arm64/ | sed s/x86_64/amd64/) && \ - wget -q https://github.com/quarto-dev/quarto-cli/releases/download/v1.4.549/quarto-1.4.549-linux-${arch}.tar.gz && \ + wget -q https://github.com/quarto-dev/quarto-cli/releases/download/v1.5.23/quarto-1.5.23-linux-${arch}.tar.gz && \ mkdir -p /home/autogen/quarto/ && \ - tar -xzf quarto-1.4.549-linux-${arch}.tar.gz --directory /home/autogen/quarto/ && \ - rm quarto-1.4.549-linux-${arch}.tar.gz + tar -xzf quarto-1.5.23-linux-${arch}.tar.gz --directory /home/autogen/quarto/ && \ + rm quarto-1.5.23-linux-${arch}.tar.gz -ENV PATH="${PATH}:/home/autogen/quarto/quarto-1.4.549/bin/" +ENV PATH="${PATH}:/home/autogen/quarto/quarto-1.5.23/bin/" # Exposes the Yarn port for Docusaurus EXPOSE 3000 # Pre-load popular Python packages +RUN pip install --upgrade pip RUN pip install numpy pandas matplotlib seaborn scikit-learn requests urllib3 nltk pillow pytest beautifulsoup4 # Set the default command to bash diff --git a/.devcontainer/full/Dockerfile b/.devcontainer/full/Dockerfile index 15122b2ac552..0787ad240272 100644 --- a/.devcontainer/full/Dockerfile +++ b/.devcontainer/full/Dockerfile @@ -1,9 +1,12 @@ FROM python:3.11-slim-bookworm +# add git lhs to apt +RUN curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | bash + # Update and install dependencies RUN apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ - software-properties-common sudo\ + software-properties-common sudo git-lfs \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* diff --git a/.devcontainer/studio/Dockerfile b/.devcontainer/studio/Dockerfile index 5bf2d4c27d82..d612cea9dabf 100644 --- a/.devcontainer/studio/Dockerfile +++ b/.devcontainer/studio/Dockerfile @@ -9,9 +9,13 @@ FROM mcr.microsoft.com/vscode/devcontainers/python:3.10 # Update the OS and maybe install packages # ENV DEBIAN_FRONTEND=noninteractive + +# add git lhs to apt +RUN curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | bash + RUN apt-get update \ && apt-get upgrade -y \ - && apt-get -y install --no-install-recommends build-essential npm \ + && apt-get -y install --no-install-recommends build-essential npm git-lfs \ && apt-get autoremove -y \ && apt-get clean -y \ && rm -rf /var/lib/apt/lists/* @@ -19,4 +23,5 @@ ENV DEBIAN_FRONTEND=dialog # For docs RUN npm install --global yarn +RUN pip install --upgrade pip RUN pip install pydoc-markdown diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index c35078e60af6..434226b3e884 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -22,6 +22,12 @@ body: 3. ... 4. See error placeholder: How can we replicate the issue? + - type: textarea + id: modelused + attributes: + label: Model Used + description: A description of the model that was used when the error was encountered + placeholder: gpt-4, mistral-7B etc - type: textarea id: expected_behavior attributes: diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 2abbc6bd68ec..26bb01046e8a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -31,9 +31,9 @@ jobs: os: [ubuntu-latest, macos-latest, windows-latest] python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"] steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} - name: Install packages and dependencies @@ -46,9 +46,8 @@ jobs: # code executors auto skip without deps, so only run for python 3.11 if: matrix.python-version == '3.11' run: | - pip install jupyter-client ipykernel + pip install -e ".[jupyter-executor]" python -m ipykernel install --user --name python3 - pip install -e ".[local-jupyter-exec]" - name: Set AUTOGEN_USE_DOCKER based on OS shell: bash run: | @@ -58,16 +57,16 @@ jobs: - name: Test with pytest skipping openai tests if: matrix.python-version != '3.10' && matrix.os == 'ubuntu-latest' run: | - pytest test --skip-openai + pytest test --skip-openai --durations=10 --durations-min=1.0 - name: Test with pytest skipping openai and docker tests if: matrix.python-version != '3.10' && matrix.os != 'ubuntu-latest' run: | - pytest test --skip-openai --skip-docker + pytest test --skip-openai --skip-docker --durations=10 --durations-min=1.0 - name: Coverage if: matrix.python-version == '3.10' run: | pip install -e .[test,redis] - coverage run -a -m pytest test --ignore=test/agentchat/contrib --skip-openai + coverage run -a -m pytest test --ignore=test/agentchat/contrib --skip-openai --durations=10 --durations-min=1.0 coverage xml - name: Upload coverage to Codecov if: matrix.python-version == '3.10' diff --git a/.github/workflows/contrib-openai.yml b/.github/workflows/contrib-openai.yml index 37d0545f6b44..2d6d64dc8145 100644 --- a/.github/workflows/contrib-openai.yml +++ b/.github/workflows/contrib-openai.yml @@ -27,11 +27,11 @@ jobs: steps: # checkout to pr branch - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: ref: ${{ github.event.pull_request.head.sha }} - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} - name: Install packages and dependencies @@ -70,11 +70,11 @@ jobs: steps: # checkout to pr branch - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: ref: ${{ github.event.pull_request.head.sha }} - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} - name: Install packages and dependencies @@ -111,11 +111,11 @@ jobs: steps: # checkout to pr branch - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: ref: ${{ github.event.pull_request.head.sha }} - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} - name: Install packages and dependencies @@ -152,11 +152,11 @@ jobs: steps: # checkout to pr branch - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: ref: ${{ github.event.pull_request.head.sha }} - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} - name: Install packages and dependencies @@ -173,7 +173,7 @@ jobs: AZURE_OPENAI_API_BASE: ${{ secrets.AZURE_OPENAI_API_BASE }} OAI_CONFIG_LIST: ${{ secrets.OAI_CONFIG_LIST }} run: | - coverage run -a -m pytest test/agentchat/contrib/test_teachable_agent.py + coverage run -a -m pytest test/agentchat/contrib/capabilities/test_teachable_agent.py coverage xml - name: Upload coverage to Codecov uses: codecov/codecov-action@v3 @@ -190,11 +190,11 @@ jobs: steps: # checkout to pr branch - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: ref: ${{ github.event.pull_request.head.sha }} - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} - name: Install packages and dependencies @@ -231,11 +231,11 @@ jobs: steps: # checkout to pr branch - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: ref: ${{ github.event.pull_request.head.sha }} - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} - name: Install packages and dependencies @@ -279,11 +279,11 @@ jobs: steps: # checkout to pr branch - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: ref: ${{ github.event.pull_request.head.sha }} - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} - name: Install packages and dependencies @@ -308,3 +308,38 @@ jobs: with: file: ./coverage.xml flags: unittests + ImageGen: + strategy: + matrix: + os: [ubuntu-latest] + python-version: ["3.12"] + runs-on: ${{ matrix.os }} + environment: openai1 + steps: + # checkout to pr branch + - name: Checkout + uses: actions/checkout@v4 + with: + ref: ${{ github.event.pull_request.head.sha }} + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.python-version }} + - name: Install packages and dependencies + run: | + docker --version + python -m pip install --upgrade pip wheel + pip install -e .[lmm] + python -c "import autogen" + pip install coverage pytest + - name: Coverage + env: + OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} + run: | + coverage run -a -m pytest test/agentchat/contrib/capabilities/test_image_generation_capability.py + coverage xml + - name: Upload coverage to Codecov + uses: codecov/codecov-action@v3 + with: + file: ./coverage.xml + flags: unittests diff --git a/.github/workflows/contrib-tests.yml b/.github/workflows/contrib-tests.yml index 6fd7535bf083..997ba20a6fc9 100644 --- a/.github/workflows/contrib-tests.yml +++ b/.github/workflows/contrib-tests.yml @@ -15,8 +15,9 @@ on: concurrency: group: ${{ github.workflow }}-${{ github.ref }}-${{ github.head_ref }} cancel-in-progress: ${{ github.ref != 'refs/heads/main' }} -permissions: {} - # actions: read +permissions: + {} + # actions: read # checks: read # contents: read # deployments: read @@ -29,9 +30,9 @@ jobs: os: [ubuntu-latest, macos-latest, windows-2019] python-version: ["3.9", "3.10", "3.11"] steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} - name: Install packages and dependencies for all tests @@ -77,9 +78,9 @@ jobs: os: [ubuntu-latest, macos-latest, windows-2019] python-version: ["3.8"] steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} - name: Install packages and dependencies for all tests @@ -114,9 +115,9 @@ jobs: os: [ubuntu-latest, macos-latest, windows-2019] python-version: ["3.10"] steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} - name: Install packages and dependencies for all tests @@ -151,9 +152,9 @@ jobs: os: [ubuntu-latest, macos-latest, windows-2019] python-version: ["3.11"] steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} - name: Install packages and dependencies for all tests @@ -172,7 +173,7 @@ jobs: - name: Coverage run: | pip install coverage>=5.3 - coverage run -a -m pytest test/agentchat/contrib/test_teachable_agent.py --skip-openai + coverage run -a -m pytest test/agentchat/contrib/capabilities/test_teachable_agent.py --skip-openai coverage xml - name: Upload coverage to Codecov uses: codecov/codecov-action@v3 @@ -188,9 +189,9 @@ jobs: os: [ubuntu-latest, macos-latest, windows-2019] python-version: ["3.12"] steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} - name: Install packages and dependencies for all tests @@ -234,9 +235,9 @@ jobs: os: [ubuntu-latest, macos-latest, windows-2019] python-version: ["3.12"] steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} - name: Install packages and dependencies for all tests @@ -255,7 +256,7 @@ jobs: - name: Coverage run: | pip install coverage>=5.3 - coverage run -a -m pytest test/agentchat/contrib/test_img_utils.py test/agentchat/contrib/test_lmm.py test/agentchat/contrib/test_llava.py --skip-openai + coverage run -a -m pytest test/agentchat/contrib/test_img_utils.py test/agentchat/contrib/test_lmm.py test/agentchat/contrib/test_llava.py test/agentchat/contrib/capabilities/test_image_generation_capability.py test/agentchat/contrib/capabilities/test_vision_capability.py --skip-openai coverage xml - name: Upload coverage to Codecov uses: codecov/codecov-action@v3 @@ -271,9 +272,9 @@ jobs: os: [ubuntu-latest, macos-latest, windows-2019] python-version: ["3.11"] steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} - name: Install packages and dependencies for all tests diff --git a/.github/workflows/deploy-website.yml b/.github/workflows/deploy-website.yml index 7198a311de7f..8798fca7ca66 100644 --- a/.github/workflows/deploy-website.yml +++ b/.github/workflows/deploy-website.yml @@ -4,15 +4,15 @@ on: pull_request: branches: [main] path: - - 'autogen/*' - - 'website/*' - - '.github/workflows/deploy-website.yml' + - "autogen/*" + - "website/*" + - ".github/workflows/deploy-website.yml" push: branches: [main] path: - - 'autogen/*' - - 'website/*' - - '.github/workflows/deploy-website.yml' + - "autogen/*" + - "website/*" + - ".github/workflows/deploy-website.yml" workflow_dispatch: merge_group: types: [checks_requested] @@ -26,33 +26,34 @@ jobs: run: working-directory: website steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 + with: + lfs: true - uses: actions/setup-node@v4 with: node-version: 18.x - name: setup python - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: "3.8" - name: pydoc-markdown install run: | python -m pip install --upgrade pip - pip install pydoc-markdown pyyaml colored + pip install pydoc-markdown pyyaml termcolor + # Pin databind packages as version 4.5.0 is not compatible with pydoc-markdown. + pip install databind.core==4.4.2 databind.json==4.4.2 - name: pydoc-markdown run run: | pydoc-markdown - name: quarto install working-directory: ${{ runner.temp }} run: | - wget -q https://github.com/quarto-dev/quarto-cli/releases/download/v1.4.549/quarto-1.4.549-linux-amd64.tar.gz - tar -xzf quarto-1.4.549-linux-amd64.tar.gz - echo "$(pwd)/quarto-1.4.549/bin/" >> $GITHUB_PATH - - name: quarto run - run: | - quarto render . + wget -q https://github.com/quarto-dev/quarto-cli/releases/download/v1.5.23/quarto-1.5.23-linux-amd64.tar.gz + tar -xzf quarto-1.5.23-linux-amd64.tar.gz + echo "$(pwd)/quarto-1.5.23/bin/" >> $GITHUB_PATH - name: Process notebooks run: | - python process_notebooks.py + python process_notebooks.py render - name: Test Build run: | if [ -e yarn.lock ]; then @@ -72,33 +73,34 @@ jobs: run: working-directory: website steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 + with: + lfs: true - uses: actions/setup-node@v4 with: node-version: 18.x - name: setup python - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: "3.8" - name: pydoc-markdown install run: | python -m pip install --upgrade pip - pip install pydoc-markdown pyyaml colored + pip install pydoc-markdown pyyaml termcolor + # Pin databind packages as version 4.5.0 is not compatible with pydoc-markdown. + pip install databind.core==4.4.2 databind.json==4.4.2 - name: pydoc-markdown run run: | pydoc-markdown - name: quarto install working-directory: ${{ runner.temp }} run: | - wget -q https://github.com/quarto-dev/quarto-cli/releases/download/v1.4.549/quarto-1.4.549-linux-amd64.tar.gz - tar -xzf quarto-1.4.549-linux-amd64.tar.gz - echo "$(pwd)/quarto-1.4.549/bin/" >> $GITHUB_PATH - - name: quarto run - run: | - quarto render . + wget -q https://github.com/quarto-dev/quarto-cli/releases/download/v1.5.23/quarto-1.5.23-linux-amd64.tar.gz + tar -xzf quarto-1.5.23-linux-amd64.tar.gz + echo "$(pwd)/quarto-1.5.23/bin/" >> $GITHUB_PATH - name: Process notebooks run: | - python process_notebooks.py + python process_notebooks.py render - name: Build website run: | if [ -e yarn.lock ]; then diff --git a/.github/workflows/dotnet-build.yml b/.github/workflows/dotnet-build.yml index 180316617588..d223fffd28ba 100644 --- a/.github/workflows/dotnet-build.yml +++ b/.github/workflows/dotnet-build.yml @@ -28,9 +28,9 @@ jobs: run: working-directory: dotnet steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Setup .NET - uses: actions/setup-dotnet@v3 + uses: actions/setup-dotnet@v4 with: global-json-file: dotnet/global.json - name: Restore dependencies @@ -53,9 +53,9 @@ jobs: if: success() && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/dotnet') needs: build steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Setup .NET - uses: actions/setup-dotnet@v3 + uses: actions/setup-dotnet@v4 with: global-json-file: dotnet/global.json - name: Restore dependencies @@ -83,12 +83,12 @@ jobs: echo "ls output directory" ls -R ./output - name: Upload package - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v4 with: name: nightly path: ./dotnet/output/nightly - name: Upload package - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v4 with: name: release path: ./dotnet/output/release @@ -102,17 +102,17 @@ jobs: needs: openai-test steps: - name: Setup .NET - uses: actions/setup-dotnet@v3 + uses: actions/setup-dotnet@v4 with: dotnet-version: '6.0.x' source-url: https://devdiv.pkgs.visualstudio.com/DevDiv/_packaging/AutoGen/nuget/v3/index.json env: NUGET_AUTH_TOKEN: ${{ secrets.AZURE_DEVOPS_TOKEN }} - - uses: actions/download-artifact@v2 + - uses: actions/download-artifact@v4 with: name: nightly path: ./dotnet/output/nightly - - uses: actions/download-artifact@v2 + - uses: actions/download-artifact@v4 with: name: release path: ./dotnet/output/release diff --git a/.github/workflows/dotnet-release.yml b/.github/workflows/dotnet-release.yml new file mode 100644 index 000000000000..d66f21a6cd66 --- /dev/null +++ b/.github/workflows/dotnet-release.yml @@ -0,0 +1,69 @@ +# This workflow will build a .NET project +# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-net + +name: dotnet-release + +on: + workflow_dispatch: + push: + branches: + - dotnet/release + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }}-${{ github.head_ref }} + cancel-in-progress: true + +permissions: + contents: read + packages: write + +jobs: + build: + name: Build and release + runs-on: ubuntu-latest + environment: dotnet + defaults: + run: + working-directory: dotnet + steps: + - uses: actions/checkout@v4 + - name: Setup .NET + uses: actions/setup-dotnet@v4 + with: + global-json-file: dotnet/global.json + - name: Restore dependencies + run: | + dotnet restore -bl + - name: Build + run: | + echo "Build AutoGen" + dotnet build --no-restore --configuration Release -bl /p:SignAssembly=true + - name: Unit Test + run: dotnet test --no-build -bl --configuration Release + env: + AZURE_OPENAI_API_KEY: ${{ secrets.AZURE_OPENAI_API_KEY }} + AZURE_OPENAI_ENDPOINT: ${{ secrets.AZURE_OPENAI_ENDPOINT }} + AZURE_GPT_35_MODEL_ID: ${{ secrets.AZURE_GPT_35_MODEL_ID }} + OEPNAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} + - name: Pack + run: | + echo "Create release build package" + dotnet pack --no-build --configuration Release --output './output/release' -bl + + echo "ls output directory" + ls -R ./output + - name: Publish package to Nuget + run: | + echo "Publish package to Nuget" + echo "ls output directory" + ls -R ./output/release + dotnet nuget push --api-key AzureArtifacts ./output/release/*.nupkg --skip-duplicate --api-key ${{ secrets.AUTOGEN_NUGET_API_KEY }} + - name: Tag commit + run: | + Write-Host "Tag commit" + # version = eng/MetaInfo.props.Project.PropertyGroup.VersionPrefix + $metaInfoContent = cat ./eng/MetaInfo.props + $version = $metaInfoContent | Select-String -Pattern "(.*)" | ForEach-Object { $_.Matches.Groups[1].Value } + git tag -a "$version" -m "AutoGen.Net release $version" + git push origin --tags + shell: pwsh \ No newline at end of file diff --git a/.github/workflows/openai.yml b/.github/workflows/openai.yml index 260f687803df..d2780eea5425 100644 --- a/.github/workflows/openai.yml +++ b/.github/workflows/openai.yml @@ -4,16 +4,17 @@ name: OpenAI on: - pull_request_target: + pull_request: branches: ["main"] paths: - "autogen/**" - "test/**" - "notebook/agentchat_auto_feedback_from_code_execution.ipynb" - "notebook/agentchat_function_call.ipynb" + - "notebook/agentchat_groupchat_finite_state_machine.ipynb" - ".github/workflows/openai.yml" permissions: {} - # actions: read + # actions: read # checks: read # contents: read # deployments: read @@ -35,11 +36,11 @@ jobs: steps: # checkout to pr branch - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: ref: ${{ github.event.pull_request.head.sha }} - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} - name: Install packages and dependencies @@ -62,7 +63,7 @@ jobs: AZURE_OPENAI_API_BASE: ${{ secrets.AZURE_OPENAI_API_BASE }} OAI_CONFIG_LIST: ${{ secrets.OAI_CONFIG_LIST }} run: | - coverage run -a -m pytest test --ignore=test/agentchat/contrib + coverage run -a -m pytest test --ignore=test/agentchat/contrib --durations=10 --durations-min=1.0 coverage xml - name: Coverage and check notebook outputs if: matrix.python-version != '3.9' @@ -74,7 +75,7 @@ jobs: OAI_CONFIG_LIST: ${{ secrets.OAI_CONFIG_LIST }} run: | pip install nbconvert nbformat ipykernel - coverage run -a -m pytest test/test_notebook.py + coverage run -a -m pytest test/test_notebook.py --durations=10 --durations-min=1.0 coverage xml cat "$(pwd)/test/executed_openai_notebook_output.txt" - name: Upload coverage to Codecov diff --git a/.github/workflows/pre-commit.yml b/.github/workflows/pre-commit.yml index 18b23afd18e3..8404de61154d 100644 --- a/.github/workflows/pre-commit.yml +++ b/.github/workflows/pre-commit.yml @@ -18,13 +18,15 @@ jobs: pre-commit-check: runs-on: ubuntu-latest + env: + SKIP: "mypy" steps: - - uses: actions/checkout@v3 - - uses: actions/setup-python@v4 + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 - name: Set $PY environment variable run: echo "PY=$(python -VV | sha256sum | cut -d' ' -f1)" >> $GITHUB_ENV - - uses: actions/cache@v3 + - uses: actions/cache@v4 with: path: ~/.cache/pre-commit key: pre-commit|${{ env.PY }}|${{ hashFiles('.pre-commit-config.yaml') }} - - uses: pre-commit/action@v3.0.0 + - uses: pre-commit/action@v3.0.1 diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 4f57c10ef706..f2967c13f5f0 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -22,9 +22,9 @@ jobs: environment: package steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 # - name: Cache conda - # uses: actions/cache@v3 + # uses: actions/cache@v4 # with: # path: ~/conda_pkgs_dir # key: conda-${{ matrix.os }}-python-${{ matrix.python-version }}-${{ hashFiles('environment.yml') }} diff --git a/.github/workflows/samples-tools-tests.yml b/.github/workflows/samples-tools-tests.yml new file mode 100644 index 000000000000..12c8de3b7af0 --- /dev/null +++ b/.github/workflows/samples-tools-tests.yml @@ -0,0 +1,46 @@ +# This workflow will install Python dependencies, run tests and lint with a variety of Python versions +# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions + +name: SamplesToolsTests + +on: + pull_request: + branches: ["main"] + paths: + - "autogen/**" + - "samples/tools/**" + - ".github/workflows/samples-tools-tests.yml" + - "setup.py" + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }}-${{ github.head_ref }} + cancel-in-progress: ${{ github.ref != 'refs/heads/main' }} +permissions: {} +jobs: + SamplesToolsFineTuningTests: + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest, macos-latest] + python-version: ["3.9", "3.10", "3.11"] + steps: + - uses: actions/checkout@v4 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.python-version }} + - name: Install packages and dependencies for all tests + run: | + python -m pip install --upgrade pip wheel + pip install -e . + pip install pytest + - name: Set AUTOGEN_USE_DOCKER based on OS + shell: bash + run: | + if [[ ${{ matrix.os }} != ubuntu-latest ]]; then + echo "AUTOGEN_USE_DOCKER=False" >> $GITHUB_ENV + fi + - name: Test finetuning tools + run: | + pytest samples/tools/finetuning/tests/ diff --git a/.github/workflows/type-check.yml b/.github/workflows/type-check.yml new file mode 100644 index 000000000000..f6896d1145d6 --- /dev/null +++ b/.github/workflows/type-check.yml @@ -0,0 +1,27 @@ +name: Type check +# see: https://help.github.com/en/actions/reference/events-that-trigger-workflows +on: # Trigger the workflow on pull request or merge + pull_request: + merge_group: + types: [checks_requested] +defaults: + run: + shell: bash +permissions: {} +jobs: + type-check: + strategy: + fail-fast: true + matrix: + version: ["3.8", "3.9", "3.10", "3.11", "3.12"] + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.version }} + # All additional modules should be defined in setup.py + - run: pip install ".[types]" + # Any additional configuration should be defined in pyproject.toml + - run: | + mypy diff --git a/.gitignore b/.gitignore index 66ccc528dccc..49a41e9ed2cb 100644 --- a/.gitignore +++ b/.gitignore @@ -178,3 +178,8 @@ test/agentchat/test_agent_scripts/* # test cache .cache_test +.db + + +notebook/result.png +samples/apps/autogen-studio/autogenstudio/models/test/ diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 8c2f1c5bcb2f..025cc7cbb174 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -4,11 +4,11 @@ exclude: 'dotnet' ci: autofix_prs: true autoupdate_commit_msg: '[pre-commit.ci] pre-commit suggestions' - autoupdate_schedule: 'quarterly' + autoupdate_schedule: 'monthly' repos: - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v4.4.0 + rev: v4.5.0 hooks: - id: check-added-large-files - id: check-ast @@ -23,11 +23,11 @@ repos: - id: end-of-file-fixer - id: no-commit-to-branch - repo: https://github.com/psf/black - rev: 23.3.0 + rev: 24.3.0 hooks: - id: black - repo: https://github.com/charliermarsh/ruff-pre-commit - rev: v0.0.261 + rev: v0.3.3 hooks: - id: ruff args: ["--fix"] @@ -35,17 +35,35 @@ repos: rev: v2.2.6 hooks: - id: codespell - args: ["-L", "ans,linar,nam,"] + args: ["-L", "ans,linar,nam,tread,ot,"] exclude: | (?x)^( pyproject.toml | website/static/img/ag.svg | website/yarn.lock | + website/docs/tutorial/code-executors.ipynb | notebook/.* )$ + # See https://jaredkhan.com/blog/mypy-pre-commit + - repo: local + hooks: + - id: mypy + name: mypy + entry: "./scripts/pre-commit-mypy-run.sh" + language: python + # use your preferred Python version + # language_version: python3.8 + additional_dependencies: [] + types: [python] + # use require_serial so that script + # is only called once per commit + require_serial: true + # Print the number of files as a sanity-check + verbose: true - repo: https://github.com/nbQA-dev/nbQA - rev: 1.7.1 + rev: 1.8.4 hooks: - id: nbqa-ruff - args: ["--fix"] + # Don't require notebooks to have all imports at the top + args: ["--fix", "--ignore=E402"] - id: nbqa-black diff --git a/README.md b/README.md index c10862baaa42..76f469ecef5f 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ [![Build](https://github.com/microsoft/autogen/actions/workflows/python-package.yml/badge.svg)](https://github.com/microsoft/autogen/actions/workflows/python-package.yml) ![Python Version](https://img.shields.io/badge/3.8%20%7C%203.9%20%7C%203.10%20%7C%203.11%20%7C%203.12-blue) [![Downloads](https://static.pepy.tech/badge/pyautogen/week)](https://pepy.tech/project/pyautogen) -[![](https://img.shields.io/discord/1153072414184452236?logo=discord&style=flat)](https://discord.gg/pAbnFJrkgZ) +[![Discord](https://img.shields.io/discord/1153072414184452236?logo=discord&style=flat)](https://discord.gg/pAbnFJrkgZ) [![Twitter](https://img.shields.io/twitter/url/https/twitter.com/cloudposse.svg?style=social&label=Follow%20%40pyautogen)](https://twitter.com/pyautogen) @@ -12,10 +12,11 @@

--> +:fire: Mar 3: What's new in AutoGen? 📰[Blog](https://microsoft.github.io/autogen/blog/2024/03/03/AutoGen-Update); 📺[Youtube](https://www.youtube.com/watch?v=j_mtwQiaLGU). -:fire: Jan 30: AutoGen is highlighted by Peter Lee in Microsoft Research Forum [Keynote](https://t.co/nUBSjPDjqD). +:fire: Mar 1: the first AutoGen multi-agent experiment on the challenging [GAIA](https://huggingface.co/spaces/gaia-benchmark/leaderboard) benchmark achieved the No. 1 accuracy in all the three levels. -:warning: Jan 23: **Breaking Change in Latest Release v0.2.8** `use_docker` defaults to `True` for code-execution. See [blog post](https://microsoft.github.io/autogen/blog/2024/01/23/Code-execution-in-docker) for details and [FAQ](https://microsoft.github.io/autogen/docs/FAQ#agents-are-throwing-due-to-docker-not-running-how-can-i-resolve-this) for troubleshooting any issues. +:fire: Jan 30: AutoGen is highlighted by Peter Lee in Microsoft Research Forum [Keynote](https://t.co/nUBSjPDjqD). :fire: Dec 31: [AutoGen: Enabling Next-Gen LLM Applications via Multi-Agent Conversation Framework](https://arxiv.org/abs/2308.08155) is selected by [TheSequence: My Five Favorite AI Papers of 2023](https://thesequence.substack.com/p/my-five-favorite-ai-papers-of-2023). @@ -56,6 +57,11 @@ AutoGen is a framework that enables the development of LLM applications using mu AutoGen is powered by collaborative [research studies](https://microsoft.github.io/autogen/docs/Research) from Microsoft, Penn State University, and the University of Washington. +## Roadmaps + +To see what we are working on and what we plan to work on, please check our +[Roadmap Issues](https://github.com/microsoft/autogen/issues?q=is%3Aopen+is%3Aissue+label%3Aroadmap). + ## Quickstart The easiest way to start playing is 1. Click below to use the GitHub Codespace @@ -69,7 +75,7 @@ The easiest way to start playing is ## [Installation](https://microsoft.github.io/autogen/docs/Installation) ### Option 1. Install and Run AutoGen in Docker -Find detailed instructions for users [here](https://microsoft.github.io/autogen/docs/Installation#option-1-install-and-run-autogen-in-docker), and for developers [here](https://microsoft.github.io/autogen/docs/Contribute#docker-for-development). +Find detailed instructions for users [here](https://microsoft.github.io/autogen/docs/installation/Docker#step-1-install-docker), and for developers [here](https://microsoft.github.io/autogen/docs/Contribute#docker-for-development). ### Option 2. Install AutoGen Locally diff --git a/autogen/agentchat/chat.py b/autogen/agentchat/chat.py index 6d2858c18c2e..d5e127e971f3 100644 --- a/autogen/agentchat/chat.py +++ b/autogen/agentchat/chat.py @@ -1,17 +1,13 @@ import asyncio +from functools import partial import logging -from collections import defaultdict +from collections import defaultdict, abc from typing import Dict, List, Any, Set, Tuple from dataclasses import dataclass from .utils import consolidate_chat_info +import datetime import warnings - -try: - from termcolor import colored -except ImportError: - - def colored(x, *args, **kwargs): - return x +from ..formatting_utils import colored logger = logging.getLogger(__name__) @@ -117,13 +113,19 @@ def __post_carryover_processing(chat_info: Dict[str, Any]): if isinstance(chat_info["carryover"], list) else chat_info["carryover"] ) + message = chat_info.get("message") + if isinstance(message, str): + print_message = message + elif callable(message): + print_message = "Callable: " + message.__name__ + elif isinstance(message, dict): + print_message = "Dict: " + str(message) + elif message is None: + print_message = "None" print(colored("\n" + "*" * 80, "blue"), flush=True, sep="") print( colored( - "Start a new chat with the following message: \n" - + chat_info.get("message") - + "\n\nWith the following carryover: \n" - + print_carryover, + "Starting a new chat....\n\nMessage:\n" + print_message + "\n\nCarryover: \n" + print_carryover, "blue", ), flush=True, @@ -135,35 +137,19 @@ def initiate_chats(chat_queue: List[Dict[str, Any]]) -> List[ChatResult]: """Initiate a list of chats. Args: - chat_queue (List[Dict]): a list of dictionaries containing the information of the chats. - Each dictionary should contain the input arguments for `ConversableAgent.initiate_chat`. - More specifically, each dictionary could include the following fields: - - recipient: the recipient agent. - - "sender": the sender agent. - - "recipient": the recipient agent. - - clear_history (bool): whether to clear the chat history with the agent. Default is True. - - silent (bool or None): (Experimental) whether to print the messages for this conversation. Default is False. - - cache (Cache or None): the cache client to be used for this conversation. Default is None. - - max_turns (int or None): the maximum number of turns for the chat. If None, the chat will continue until a termination condition is met. Default is None. - - "message" needs to be provided if the `generate_init_message` method is not overridden. - Otherwise, input() will be called to get the initial message. - - "summary_method": a string or callable specifying the method to get a summary from the chat. Default is DEFAULT_summary_method, i.e., "last_msg". - - Supported string are "last_msg" and "reflection_with_llm": - when set "last_msg", it returns the last message of the dialog as the summary. - when set "reflection_with_llm", it returns a summary extracted using an llm client. - `llm_config` must be set in either the recipient or sender. - "reflection_with_llm" requires the llm_config to be set in either the sender or the recipient. - - A callable summary_method should take the recipient and sender agent in a chat as input and return a string of summary. E.g, - ```python - def my_summary_method( - sender: ConversableAgent, - recipient: ConversableAgent, - ): - return recipient.last_message(sender)["content"] - ``` - - "summary_prompt": This filed can be used to specify the prompt used to extract a summary when summary_method is "reflection_with_llm". - Default is None and the following default prompt will be used when "summary_method" is set to "reflection_with_llm": - "Identify and extract the final solution to the originally asked question based on the conversation." + chat_queue (List[Dict]): a list of dictionaries containing the information about the chats. + + Each dictionary should contain the input arguments for [`ConversableAgent.initiate_chat`](/docs/reference/agentchat/conversable_agent#initiate_chat). For example: + - "sender": the sender agent. + - "recipient": the recipient agent. + - "clear_history" (bool): whether to clear the chat history with the agent. Default is True. + - "silent" (bool or None): (Experimental) whether to print the messages in this conversation. Default is False. + - "cache" (Cache or None): the cache client to use for this conversation. Default is None. + - "max_turns" (int or None): maximum number of turns for the chat. If None, the chat will continue until a termination condition is met. Default is None. + - "summary_method" (str or callable): a string or callable specifying the method to get a summary from the chat. Default is DEFAULT_summary_method, i.e., "last_msg". + - "summary_args" (dict): a dictionary of arguments to be passed to the summary_method. Default is {}. + - "message" (str, callable or None): if None, input() will be called to get the initial message. + - **context: additional context information to be passed to the chat. - "carryover": It can be used to specify the carryover information to be passed to this chat. If provided, we will combine this carryover with the "message" content when generating the initial chat message in `generate_init_message`. @@ -189,6 +175,49 @@ def my_summary_method( return finished_chats +def __system_now_str(): + ct = datetime.datetime.now() + return f" System time at {ct}. " + + +def _on_chat_future_done(chat_future: asyncio.Future, chat_id: int): + """ + Update ChatResult when async Task for Chat is completed. + """ + logger.debug(f"Update chat {chat_id} result on task completion." + __system_now_str()) + chat_result = chat_future.result() + chat_result.chat_id = chat_id + + +async def _dependent_chat_future( + chat_id: int, chat_info: Dict[str, Any], prerequisite_chat_futures: Dict[int, asyncio.Future] +) -> asyncio.Task: + """ + Create an async Task for each chat. + """ + logger.debug(f"Create Task for chat {chat_id}." + __system_now_str()) + _chat_carryover = chat_info.get("carryover", []) + finished_chats = dict() + for chat in prerequisite_chat_futures: + chat_future = prerequisite_chat_futures[chat] + if chat_future.cancelled(): + raise RuntimeError(f"Chat {chat} is cancelled.") + + # wait for prerequisite chat results for the new chat carryover + finished_chats[chat] = await chat_future + + if isinstance(_chat_carryover, str): + _chat_carryover = [_chat_carryover] + chat_info["carryover"] = _chat_carryover + [finished_chats[pre_id].summary for pre_id in finished_chats] + __post_carryover_processing(chat_info) + sender = chat_info["sender"] + chat_res_future = asyncio.create_task(sender.a_initiate_chat(**chat_info)) + call_back_with_args = partial(_on_chat_future_done, chat_id=chat_id) + chat_res_future.add_done_callback(call_back_with_args) + logger.debug(f"Task for chat {chat_id} created." + __system_now_str()) + return chat_res_future + + async def a_initiate_chats(chat_queue: List[Dict[str, Any]]) -> Dict[int, ChatResult]: """(async) Initiate a list of chats. @@ -199,31 +228,25 @@ async def a_initiate_chats(chat_queue: List[Dict[str, Any]]) -> Dict[int, ChatRe returns: (Dict): a dict of ChatId: ChatResult corresponding to the finished chats in the chat_queue. """ - consolidate_chat_info(chat_queue) _validate_recipients(chat_queue) chat_book = {chat_info["chat_id"]: chat_info for chat_info in chat_queue} num_chats = chat_book.keys() prerequisites = __create_async_prerequisites(chat_queue) chat_order_by_id = __find_async_chat_order(num_chats, prerequisites) - finished_chats = dict() + finished_chat_futures = dict() for chat_id in chat_order_by_id: chat_info = chat_book[chat_id] - condition = asyncio.Condition() prerequisite_chat_ids = chat_info.get("prerequisites", []) - async with condition: - await condition.wait_for(lambda: all([id in finished_chats for id in prerequisite_chat_ids])) - # Do the actual work here. - _chat_carryover = chat_info.get("carryover", []) - if isinstance(_chat_carryover, str): - _chat_carryover = [_chat_carryover] - chat_info["carryover"] = _chat_carryover + [ - finished_chats[pre_id].summary for pre_id in prerequisite_chat_ids - ] - __post_carryover_processing(chat_info) - sender = chat_info["sender"] - chat_res = await sender.a_initiate_chat(**chat_info) - chat_res.chat_id = chat_id - finished_chats[chat_id] = chat_res - + pre_chat_futures = dict() + for pre_chat_id in prerequisite_chat_ids: + pre_chat_future = finished_chat_futures[pre_chat_id] + pre_chat_futures[pre_chat_id] = pre_chat_future + current_chat_future = await _dependent_chat_future(chat_id, chat_info, pre_chat_futures) + finished_chat_futures[chat_id] = current_chat_future + await asyncio.gather(*list(finished_chat_futures.values())) + finished_chats = dict() + for chat in finished_chat_futures: + chat_result = finished_chat_futures[chat].result() + finished_chats[chat] = chat_result return finished_chats diff --git a/autogen/agentchat/contrib/capabilities/context_handling.py b/autogen/agentchat/contrib/capabilities/context_handling.py index ebbc00e1097c..1510ae5fcd64 100644 --- a/autogen/agentchat/contrib/capabilities/context_handling.py +++ b/autogen/agentchat/contrib/capabilities/context_handling.py @@ -25,10 +25,9 @@ class TransformChatHistory: 2. Second, it limits the number of message to keep 3. Third, it limits the total number of tokens in the chat history - Args: - max_tokens_per_message (Optional[int]): Maximum number of tokens to keep in each message. - max_messages (Optional[int]): Maximum number of messages to keep in the context. - max_tokens (Optional[int]): Maximum number of tokens to keep in the context. + When adding this capability to an agent, the following are modified: + - A hook is added to the hookable method `process_all_messages_before_reply` to transform the received messages for possible truncation. + Not modifying the stored message history. """ def __init__( @@ -38,6 +37,12 @@ def __init__( max_messages: Optional[int] = None, max_tokens: Optional[int] = None, ): + """ + Args: + max_tokens_per_message (Optional[int]): Maximum number of tokens to keep in each message. + max_messages (Optional[int]): Maximum number of messages to keep in the context. + max_tokens (Optional[int]): Maximum number of tokens to keep in the context. + """ self.max_tokens_per_message = max_tokens_per_message if max_tokens_per_message else sys.maxsize self.max_messages = max_messages if max_messages else sys.maxsize self.max_tokens = max_tokens if max_tokens else sys.maxsize diff --git a/autogen/agentchat/contrib/capabilities/generate_images.py b/autogen/agentchat/contrib/capabilities/generate_images.py new file mode 100644 index 000000000000..778e7256558b --- /dev/null +++ b/autogen/agentchat/contrib/capabilities/generate_images.py @@ -0,0 +1,291 @@ +import re +from typing import Any, Dict, List, Literal, Optional, Protocol, Tuple, Union + +from openai import OpenAI +from PIL.Image import Image + +from autogen import Agent, ConversableAgent, code_utils +from autogen.cache import Cache +from autogen.agentchat.contrib import img_utils +from autogen.agentchat.contrib.capabilities.agent_capability import AgentCapability +from autogen.agentchat.contrib.text_analyzer_agent import TextAnalyzerAgent + +SYSTEM_MESSAGE = "You've been given the special ability to generate images." +DESCRIPTION_MESSAGE = "This agent has the ability to generate images." + +PROMPT_INSTRUCTIONS = """In detail, please summarize the provided prompt to generate the image described in the TEXT. +DO NOT include any advice. RESPOND like the following example: +EXAMPLE: Blue background, 3D shapes, ... +""" + + +class ImageGenerator(Protocol): + """This class defines an interface for image generators. + + Concrete implementations of this protocol must provide a `generate_image` method that takes a string prompt as + input and returns a PIL Image object. + + NOTE: Current implementation does not allow you to edit a previously existing image. + """ + + def generate_image(self, prompt: str) -> Image: + """Generates an image based on the provided prompt. + + Args: + prompt: A string describing the desired image. + + Returns: + A PIL Image object representing the generated image. + + Raises: + ValueError: If the image generation fails. + """ + ... + + def cache_key(self, prompt: str) -> str: + """Generates a unique cache key for the given prompt. + + This key can be used to store and retrieve generated images based on the prompt. + + Args: + prompt: A string describing the desired image. + + Returns: + A unique string that can be used as a cache key. + """ + ... + + +class DalleImageGenerator: + """Generates images using OpenAI's DALL-E models. + + This class provides a convenient interface for generating images based on textual prompts using OpenAI's DALL-E + models. It allows you to specify the DALL-E model, resolution, quality, and the number of images to generate. + + Note: Current implementation does not allow you to edit a previously existing image. + """ + + def __init__( + self, + llm_config: Dict, + resolution: Literal["256x256", "512x512", "1024x1024", "1792x1024", "1024x1792"] = "1024x1024", + quality: Literal["standard", "hd"] = "standard", + num_images: int = 1, + ): + """ + Args: + llm_config (dict): llm config, must contain a valid dalle model and OpenAI API key in config_list. + resolution (str): The resolution of the image you want to generate. Must be one of "256x256", "512x512", "1024x1024", "1792x1024", "1024x1792". + quality (str): The quality of the image you want to generate. Must be one of "standard", "hd". + num_images (int): The number of images to generate. + """ + config_list = llm_config["config_list"] + _validate_dalle_model(config_list[0]["model"]) + _validate_resolution_format(resolution) + + self._model = config_list[0]["model"] + self._resolution = resolution + self._quality = quality + self._num_images = num_images + self._dalle_client = OpenAI(api_key=config_list[0]["api_key"]) + + def generate_image(self, prompt: str) -> Image: + response = self._dalle_client.images.generate( + model=self._model, + prompt=prompt, + size=self._resolution, + quality=self._quality, + n=self._num_images, + ) + + image_url = response.data[0].url + if image_url is None: + raise ValueError("Failed to generate image.") + + return img_utils.get_pil_image(image_url) + + def cache_key(self, prompt: str) -> str: + keys = (prompt, self._model, self._resolution, self._quality, self._num_images) + return ",".join([str(k) for k in keys]) + + +class ImageGeneration(AgentCapability): + """This capability allows a ConversableAgent to generate images based on the message received from other Agents. + + 1. Utilizes a TextAnalyzerAgent to analyze incoming messages to identify requests for image generation and + extract relevant details. + 2. Leverages the provided ImageGenerator (e.g., DalleImageGenerator) to create the image. + 3. Optionally caches generated images for faster retrieval in future conversations. + + NOTE: This capability increases the token usage of the agent, as it uses TextAnalyzerAgent to analyze every + message received by the agent. + + Example: + ```python + import autogen + from autogen.agentchat.contrib.capabilities.image_generation import ImageGeneration + + # Assuming you have llm configs configured for the LLMs you want to use and Dalle. + # Create the agent + agent = autogen.ConversableAgent( + name="dalle", llm_config={...}, max_consecutive_auto_reply=3, human_input_mode="NEVER" + ) + + # Create an ImageGenerator with desired settings + dalle_gen = generate_images.DalleImageGenerator(llm_config={...}) + + # Add the ImageGeneration capability to the agent + agent.add_capability(ImageGeneration(image_generator=dalle_gen)) + ``` + """ + + def __init__( + self, + image_generator: ImageGenerator, + cache: Optional[Cache] = None, + text_analyzer_llm_config: Optional[Dict] = None, + text_analyzer_instructions: str = PROMPT_INSTRUCTIONS, + verbosity: int = 0, + register_reply_position: int = 2, + ): + """ + Args: + image_generator (ImageGenerator): The image generator you would like to use to generate images. + cache (None or Cache): The cache client to use to store and retrieve generated images. If None, + no caching will be used. + text_analyzer_llm_config (Dict or None): The LLM config for the text analyzer. If None, the LLM config will + be retrieved from the agent you're adding the ability to. + text_analyzer_instructions (str): Instructions provided to the TextAnalyzerAgent used to analyze + incoming messages and extract the prompt for image generation. The default instructions focus on + summarizing the prompt. You can customize the instructions to achieve more granular control over prompt + extraction. + Example: 'Extract specific details from the message, like desired objects, styles, or backgrounds.' + verbosity (int): The verbosity level. Defaults to 0 and must be greater than or equal to 0. The text + analyzer llm calls will be silent if verbosity is less than 2. + register_reply_position (int): The position of the reply function in the agent's list of reply functions. + This capability registers a new reply function to handle messages with image generation requests. + Defaults to 2 to place it after the check termination and human reply for a ConversableAgent. + """ + self._image_generator = image_generator + self._cache = cache + self._text_analyzer_llm_config = text_analyzer_llm_config + self._text_analyzer_instructions = text_analyzer_instructions + self._verbosity = verbosity + self._register_reply_position = register_reply_position + + self._agent: Optional[ConversableAgent] = None + self._text_analyzer: Optional[TextAnalyzerAgent] = None + + def add_to_agent(self, agent: ConversableAgent): + """Adds the Image Generation capability to the specified ConversableAgent. + + This function performs the following modifications to the agent: + + 1. Registers a reply function: A new reply function is registered with the agent to handle messages that + potentially request image generation. This function analyzes the message and triggers image generation if + necessary. + 2. Creates an Agent (TextAnalyzerAgent): This is used to analyze messages for image generation requirements. + 3. Updates System Message: The agent's system message is updated to include a message indicating the + capability to generate images has been added. + 4. Updates Description: The agent's description is updated to reflect the addition of the Image Generation + capability. This might be helpful in certain use cases, like group chats. + + Args: + agent (ConversableAgent): The ConversableAgent to add the capability to. + """ + self._agent = agent + + agent.register_reply([Agent, None], self._image_gen_reply, position=self._register_reply_position) + + self._text_analyzer_llm_config = self._text_analyzer_llm_config or agent.llm_config + self._text_analyzer = TextAnalyzerAgent(llm_config=self._text_analyzer_llm_config) + + agent.update_system_message(agent.system_message + "\n" + SYSTEM_MESSAGE) + agent.description += "\n" + DESCRIPTION_MESSAGE + + def _image_gen_reply( + self, + recipient: ConversableAgent, + messages: Optional[List[Dict]], + sender: Optional[Agent] = None, + config: Optional[Any] = None, + ) -> Tuple[bool, Union[str, Dict, None]]: + if messages is None: + return False, None + + last_message = code_utils.content_str(messages[-1]["content"]) + + if not last_message: + return False, None + + if self._should_generate_image(last_message): + prompt = self._extract_prompt(last_message) + + image = self._cache_get(prompt) + if image is None: + image = self._image_generator.generate_image(prompt) + self._cache_set(prompt, image) + + return True, self._generate_content_message(prompt, image) + + else: + return False, None + + def _should_generate_image(self, message: str) -> bool: + assert self._text_analyzer is not None + + instructions = """ + Does any part of the TEXT ask the agent to generate an image? + The TEXT must explicitly mention that the image must be generated. + Answer with just one word, yes or no. + """ + analysis = self._text_analyzer.analyze_text(message, instructions) + + return "yes" in self._extract_analysis(analysis).lower() + + def _extract_prompt(self, last_message) -> str: + assert self._text_analyzer is not None + + analysis = self._text_analyzer.analyze_text(last_message, self._text_analyzer_instructions) + return self._extract_analysis(analysis) + + def _cache_get(self, prompt: str) -> Optional[Image]: + if self._cache: + key = self._image_generator.cache_key(prompt) + cached_value = self._cache.get(key) + + if cached_value: + return img_utils.get_pil_image(cached_value) + + def _cache_set(self, prompt: str, image: Image): + if self._cache: + key = self._image_generator.cache_key(prompt) + self._cache.set(key, img_utils.pil_to_data_uri(image)) + + def _extract_analysis(self, analysis: Union[str, Dict, None]) -> str: + if isinstance(analysis, Dict): + return code_utils.content_str(analysis["content"]) + else: + return code_utils.content_str(analysis) + + def _generate_content_message(self, prompt: str, image: Image) -> Dict[str, Any]: + return { + "content": [ + {"type": "text", "text": f"I generated an image with the prompt: {prompt}"}, + {"type": "image_url", "image_url": {"url": img_utils.pil_to_data_uri(image)}}, + ] + } + + +### Helpers +def _validate_resolution_format(resolution: str): + """Checks if a string is in a valid resolution format (e.g., "1024x768").""" + pattern = r"^\d+x\d+$" # Matches a pattern of digits, "x", and digits + matched_resolution = re.match(pattern, resolution) + if matched_resolution is None: + raise ValueError(f"Invalid resolution format: {resolution}") + + +def _validate_dalle_model(model: str): + if model not in ["dall-e-3", "dall-e-2"]: + raise ValueError(f"Invalid DALL-E model: {model}. Must be 'dall-e-3' or 'dall-e-2'") diff --git a/autogen/agentchat/contrib/capabilities/teachability.py b/autogen/agentchat/contrib/capabilities/teachability.py index e90612fa53b2..58ba35ed4256 100644 --- a/autogen/agentchat/contrib/capabilities/teachability.py +++ b/autogen/agentchat/contrib/capabilities/teachability.py @@ -1,18 +1,12 @@ import os -from autogen.agentchat.assistant_agent import ConversableAgent -from autogen.agentchat.contrib.capabilities.agent_capability import AgentCapability -from autogen.agentchat.contrib.text_analyzer_agent import TextAnalyzerAgent -from typing import Dict, Optional, Union, List, Tuple, Any +from typing import Dict, Optional, Union import chromadb from chromadb.config import Settings import pickle - -try: - from termcolor import colored -except ImportError: - - def colored(x, *args, **kwargs): - return x +from autogen.agentchat.assistant_agent import ConversableAgent +from autogen.agentchat.contrib.capabilities.agent_capability import AgentCapability +from autogen.agentchat.contrib.text_analyzer_agent import TextAnalyzerAgent +from ....formatting_utils import colored class Teachability(AgentCapability): @@ -23,6 +17,13 @@ class Teachability(AgentCapability): To make any conversable agent teachable, instantiate both the agent and the Teachability class, then pass the agent to teachability.add_to_agent(agent). Note that teachable agents in a group chat must be given unique path_to_db_dir values. + + When adding Teachability to an agent, the following are modified: + - The agent's system message is appended with a note about the agent's new ability. + - A hook is added to the agent's `process_last_received_message` hookable method, + and the hook potentially modifies the last of the received messages to include earlier teachings related to the message. + Added teachings do not propagate into the stored message history. + If new user teachings are detected, they are added to new memos in the vector database. """ def __init__( diff --git a/autogen/agentchat/contrib/capabilities/vision_capability.py b/autogen/agentchat/contrib/capabilities/vision_capability.py new file mode 100644 index 000000000000..acfb9c8f6d82 --- /dev/null +++ b/autogen/agentchat/contrib/capabilities/vision_capability.py @@ -0,0 +1,211 @@ +import copy +from typing import Callable, Dict, List, Optional, Union + +from autogen.agentchat.assistant_agent import ConversableAgent +from autogen.agentchat.contrib.capabilities.agent_capability import AgentCapability +from autogen.agentchat.contrib.img_utils import ( + convert_base64_to_data_uri, + get_image_data, + get_pil_image, + gpt4v_formatter, + message_formatter_pil_to_b64, +) +from autogen.agentchat.contrib.multimodal_conversable_agent import MultimodalConversableAgent +from autogen.agentchat.conversable_agent import colored +from autogen.code_utils import content_str +from autogen.oai.client import OpenAIWrapper + +DEFAULT_DESCRIPTION_PROMPT = ( + "Write a detailed caption for this image. " + "Pay special attention to any details that might be useful or relevant " + "to the ongoing conversation." +) + + +class VisionCapability(AgentCapability): + """We can add vision capability to regular ConversableAgent, even if the agent does not have the multimodal capability, + such as GPT-3.5-turbo agent, Llama, Orca, or Mistral agents. This vision capability will invoke a LMM client to describe + the image (captioning) before sending the information to the agent's actual client. + + The vision capability will hook to the ConversableAgent's `process_last_received_message`. + + Some technical details: + When the agent (who has the vision capability) received an message, it will: + 1. _process_received_message: + a. _append_oai_message + 2. generate_reply: if the agent is a MultimodalAgent, it will also use the image tag. + a. hook process_last_received_message (NOTE: this is where the vision capability will be hooked to.) + b. hook process_all_messages_before_reply + 3. send: + a. hook process_message_before_send + b. _append_oai_message + """ + + def __init__( + self, + lmm_config: Dict, + description_prompt: Optional[str] = DEFAULT_DESCRIPTION_PROMPT, + custom_caption_func: Callable = None, + ) -> None: + """ + Initializes a new instance, setting up the configuration for interacting with + a Language Multimodal (LMM) client and specifying optional parameters for image + description and captioning. + + Args: + lmm_config (Dict): Configuration for the LMM client, which is used to call + the LMM service for describing the image. This must be a dictionary containing + the necessary configuration parameters. If `lmm_config` is False or an empty dictionary, + it is considered invalid, and initialization will assert. + description_prompt (Optional[str], optional): The prompt to use for generating + descriptions of the image. This parameter allows customization of the + prompt passed to the LMM service. Defaults to `DEFAULT_DESCRIPTION_PROMPT` if not provided. + custom_caption_func (Callable, optional): A callable that, if provided, will be used + to generate captions for images. This allows for custom captioning logic outside + of the standard LMM service interaction. + The callable should take three parameters as input: + 1. an image URL (or local location) + 2. image_data (a PIL image) + 3. lmm_client (to call remote LMM) + and then return a description (as string). + If not provided, captioning will rely on the LMM client configured via `lmm_config`. + If provided, we will not run the default self._get_image_caption method. + + Raises: + AssertionError: If neither a valid `lmm_config` nor a `custom_caption_func` is provided, + an AssertionError is raised to indicate that the Vision Capability requires + one of these to be valid for operation. + """ + self._lmm_config = lmm_config + self._description_prompt = description_prompt + self._parent_agent = None + + if lmm_config: + self._lmm_client = OpenAIWrapper(**lmm_config) + else: + self._lmm_client = None + + self._custom_caption_func = custom_caption_func + assert ( + self._lmm_config or custom_caption_func + ), "Vision Capability requires a valid lmm_config or custom_caption_func." + + def add_to_agent(self, agent: ConversableAgent) -> None: + self._parent_agent = agent + + # Append extra info to the system message. + agent.update_system_message(agent.system_message + "\nYou've been given the ability to interpret images.") + + # Register a hook for processing the last message. + agent.register_hook(hookable_method="process_last_received_message", hook=self.process_last_received_message) + + def process_last_received_message(self, content: Union[str, List[dict]]) -> str: + """ + Processes the last received message content by normalizing and augmenting it + with descriptions of any included images. The function supports input content + as either a string or a list of dictionaries, where each dictionary represents + a content item (e.g., text, image). If the content contains image URLs, it + fetches the image data, generates a caption for each image, and inserts the + caption into the augmented content. + + The function aims to transform the content into a format compatible with GPT-4V + multimodal inputs, specifically by formatting strings into PIL-compatible + images if needed and appending text descriptions for images. This allows for + a more accessible presentation of the content, especially in contexts where + images cannot be displayed directly. + + Args: + content (Union[str, List[dict]]): The last received message content, which + can be a plain text string or a list of dictionaries representing + different types of content items (e.g., text, image_url). + + Returns: + str: The augmented message content + + Raises: + AssertionError: If an item in the content list is not a dictionary. + + Examples: + Assuming `self._get_image_caption(img_data)` returns + "A beautiful sunset over the mountains" for the image. + + - Input as String: + content = "Check out this cool photo!" + Output: "Check out this cool photo!" + (Content is a string without an image, remains unchanged.) + + - Input as String, with image location: + content = "What's weather in this cool photo: " + Output: "What's weather in this cool photo: in case you can not see, the caption of this image is: + A beautiful sunset over the mountains\n" + (Caption added after the image) + + - Input as List with Text Only: + content = [{"type": "text", "text": "Here's an interesting fact."}] + Output: "Here's an interesting fact." + (No images in the content, it remains unchanged.) + + - Input as List with Image URL: + content = [ + {"type": "text", "text": "What's weather in this cool photo:"}, + {"type": "image_url", "image_url": {"url": "http://example.com/photo.jpg"}} + ] + Output: "What's weather in this cool photo: in case you can not see, the caption of this image is: + A beautiful sunset over the mountains\n" + (Caption added after the image) + """ + copy.deepcopy(content) + # normalize the content into the gpt-4v format for multimodal + # we want to keep the URL format to keep it concise. + if isinstance(content, str): + content = gpt4v_formatter(content, img_format="url") + + aug_content: str = "" + for item in content: + assert isinstance(item, dict) + if item["type"] == "text": + aug_content += item["text"] + elif item["type"] == "image_url": + img_url = item["image_url"]["url"] + img_caption = "" + + if self._custom_caption_func: + img_caption = self._custom_caption_func(img_url, get_pil_image(img_url), self._lmm_client) + elif self._lmm_client: + img_data = get_image_data(img_url) + img_caption = self._get_image_caption(img_data) + else: + img_caption = "" + + aug_content += f" in case you can not see, the caption of this image is: {img_caption}\n" + else: + print(f"Warning: the input type should either be `test` or `image_url`. Skip {item['type']} here.") + + return aug_content + + def _get_image_caption(self, img_data: str) -> str: + """ + Args: + img_data (str): base64 encoded image data. + Returns: + str: caption for the given image. + """ + response = self._lmm_client.create( + context=None, + messages=[ + { + "role": "user", + "content": [ + {"type": "text", "text": self._description_prompt}, + { + "type": "image_url", + "image_url": { + "url": convert_base64_to_data_uri(img_data), + }, + }, + ], + } + ], + ) + description = response.choices[0].message.content + return content_str(description) diff --git a/autogen/agentchat/contrib/compressible_agent.py b/autogen/agentchat/contrib/compressible_agent.py index e196773effc9..152cc871a56a 100644 --- a/autogen/agentchat/contrib/compressible_agent.py +++ b/autogen/agentchat/contrib/compressible_agent.py @@ -7,19 +7,13 @@ import inspect from autogen.token_count_utils import count_token, get_max_token_limit, num_tokens_from_functions -try: - from termcolor import colored -except ImportError: - - def colored(x, *args, **kwargs): - return x - +from ...formatting_utils import colored logger = logging.getLogger(__name__) class CompressibleAgent(ConversableAgent): - """(Experimental) CompressibleAgent agent. While this agent retains all the default functionalities of the `AssistantAgent`, + """(CompressibleAgent will be deprecated. Refer to https://github.com/microsoft/autogen/blob/main/notebook/agentchat_capability_long_context_handling.ipynb for long context handling capability.) CompressibleAgent agent. While this agent retains all the default functionalities of the `AssistantAgent`, it also provides the added feature of compression when activated through the `compress_config` setting. `compress_config` is set to False by default, making this agent equivalent to the `AssistantAgent`. @@ -73,6 +67,7 @@ def __init__( system_message (str): system message for the ChatCompletion inference. Please override this attribute if you want to reprogram the agent. llm_config (dict): llm inference configuration. + Note: you must set `model` in llm_config. It will be used to compute the token count. Please refer to [OpenAIWrapper.create](/docs/reference/oai/client#create) for available options. is_termination_msg (function): a function that takes a message in the form of a dictionary @@ -121,6 +116,8 @@ def __init__( self.llm_compress_config = False self.compress_client = None else: + if "model" not in llm_config: + raise ValueError("llm_config must contain the 'model' field.") self.llm_compress_config = self.llm_config.copy() # remove functions if "functions" in self.llm_compress_config: diff --git a/autogen/agentchat/contrib/gpt_assistant_agent.py b/autogen/agentchat/contrib/gpt_assistant_agent.py index a6ab3372f879..20acd2b08f82 100644 --- a/autogen/agentchat/contrib/gpt_assistant_agent.py +++ b/autogen/agentchat/contrib/gpt_assistant_agent.py @@ -21,11 +21,14 @@ class GPTAssistantAgent(ConversableAgent): This agent is unique in its reliance on the OpenAI Assistant for state management, differing from other agents like ConversableAgent. """ + DEFAULT_MODEL_NAME = "gpt-4-0125-preview" + def __init__( self, name="GPT Assistant", instructions: Optional[str] = None, llm_config: Optional[Union[Dict, bool]] = None, + assistant_config: Optional[Dict] = None, overwrite_instructions: bool = False, overwrite_tools: bool = False, **kwargs, @@ -41,8 +44,9 @@ def __init__( AssistantAgent.DEFAULT_SYSTEM_MESSAGE. If the assistant exists, the system message will be set to the existing assistant instructions. llm_config (dict or False): llm inference configuration. - - assistant_id: ID of the assistant to use. If None, a new assistant will be created. - model: Model to use for the assistant (gpt-4-1106-preview, gpt-3.5-turbo-1106). + assistant_config + - assistant_id: ID of the assistant to use. If None, a new assistant will be created. - check_every_ms: check thread run status interval - tools: Give Assistants access to OpenAI-hosted tools like Code Interpreter and Knowledge Retrieval, or build your own tools using Function calling. ref https://platform.openai.com/docs/assistants/tools @@ -55,22 +59,19 @@ def __init__( """ self._verbose = kwargs.pop("verbose", False) + openai_client_cfg, openai_assistant_cfg = self._process_assistant_config(llm_config, assistant_config) + super().__init__( - name=name, system_message=instructions, human_input_mode="NEVER", llm_config=llm_config, **kwargs + name=name, system_message=instructions, human_input_mode="NEVER", llm_config=openai_client_cfg, **kwargs ) - if llm_config is False: - raise ValueError("llm_config=False is not supported for GPTAssistantAgent.") - - # Use AutoGen OpenAIWrapper to create a client - model_name = "gpt-4-0125-preview" - openai_client_cfg = copy.deepcopy(llm_config) # GPTAssistantAgent's azure_deployment param may cause NotFoundError (404) in client.beta.assistants.list() # See: https://github.com/microsoft/autogen/pull/1721 + model_name = self.DEFAULT_MODEL_NAME if openai_client_cfg.get("config_list") is not None and len(openai_client_cfg["config_list"]) > 0: - model_name = openai_client_cfg["config_list"][0].pop("model", "gpt-4-0125-preview") + model_name = openai_client_cfg["config_list"][0].pop("model", self.DEFAULT_MODEL_NAME) else: - model_name = openai_client_cfg.pop("model", "gpt-4-0125-preview") + model_name = openai_client_cfg.pop("model", self.DEFAULT_MODEL_NAME) logger.warning("OpenAI client config of GPTAssistantAgent(%s) - model: %s", name, model_name) @@ -79,14 +80,17 @@ def __init__( logger.warning("GPT Assistant only supports one OpenAI client. Using the first client in the list.") self._openai_client = oai_wrapper._clients[0]._oai_client - openai_assistant_id = llm_config.get("assistant_id", None) + openai_assistant_id = openai_assistant_cfg.get("assistant_id", None) if openai_assistant_id is None: # try to find assistant by name first candidate_assistants = retrieve_assistants_by_name(self._openai_client, name) if len(candidate_assistants) > 0: # Filter out candidates with the same name but different instructions, file IDs, and function names. candidate_assistants = self.find_matching_assistant( - candidate_assistants, instructions, llm_config.get("tools", []), llm_config.get("file_ids", []) + candidate_assistants, + instructions, + openai_assistant_cfg.get("tools", []), + openai_assistant_cfg.get("file_ids", []), ) if len(candidate_assistants) == 0: @@ -100,9 +104,9 @@ def __init__( self._openai_assistant = self._openai_client.beta.assistants.create( name=name, instructions=instructions, - tools=llm_config.get("tools", []), + tools=openai_assistant_cfg.get("tools", []), model=model_name, - file_ids=llm_config.get("file_ids", []), + file_ids=openai_assistant_cfg.get("file_ids", []), ) else: logger.warning( @@ -132,8 +136,8 @@ def __init__( "overwrite_instructions is False. Provided instructions will be used without permanently modifying the assistant in the API." ) - # Check if tools are specified in llm_config - specified_tools = llm_config.get("tools", None) + # Check if tools are specified in assistant_config + specified_tools = openai_assistant_cfg.get("tools", None) if specified_tools is None: # Check if the current assistant has tools defined @@ -152,7 +156,7 @@ def __init__( ) self._openai_assistant = self._openai_client.beta.assistants.update( assistant_id=openai_assistant_id, - tools=llm_config.get("tools", []), + tools=openai_assistant_cfg.get("tools", []), ) else: # Tools are specified but overwrite_tools is False; do not update the assistant's tools @@ -161,9 +165,7 @@ def __init__( # lazily create threads self._openai_threads = {} self._unread_index = defaultdict(int) - self.register_reply(Agent, GPTAssistantAgent._invoke_assistant) - self.register_reply(Agent, GPTAssistantAgent.check_termination_and_human_reply) - self.register_reply(Agent, GPTAssistantAgent.a_check_termination_and_human_reply) + self.register_reply(Agent, GPTAssistantAgent._invoke_assistant, position=2) def _invoke_assistant( self, @@ -411,6 +413,10 @@ def assistant_id(self): def openai_client(self): return self._openai_client + @property + def openai_assistant(self): + return self._openai_assistant + def get_assistant_instructions(self): """Return the assistant instructions from OAI assistant API""" return self._openai_assistant.instructions @@ -469,3 +475,31 @@ def find_matching_assistant(self, candidate_assistants, instructions, tools, fil matching_assistants.append(assistant) return matching_assistants + + def _process_assistant_config(self, llm_config, assistant_config): + """ + Process the llm_config and assistant_config to extract the model name and assistant related configurations. + """ + + if llm_config is False: + raise ValueError("llm_config=False is not supported for GPTAssistantAgent.") + + if llm_config is None: + openai_client_cfg = {} + else: + openai_client_cfg = copy.deepcopy(llm_config) + + if assistant_config is None: + openai_assistant_cfg = {} + else: + openai_assistant_cfg = copy.deepcopy(assistant_config) + + # Move the assistant related configurations to assistant_config + # It's important to keep forward compatibility + assistant_config_items = ["assistant_id", "tools", "file_ids", "check_every_ms"] + for item in assistant_config_items: + if openai_client_cfg.get(item) is not None and openai_assistant_cfg.get(item) is None: + openai_assistant_cfg[item] = openai_client_cfg[item] + openai_client_cfg.pop(item, None) + + return openai_client_cfg, openai_assistant_cfg diff --git a/autogen/agentchat/contrib/img_utils.py b/autogen/agentchat/contrib/img_utils.py index 6062f3b05530..2d2592418747 100644 --- a/autogen/agentchat/contrib/img_utils.py +++ b/autogen/agentchat/contrib/img_utils.py @@ -24,6 +24,12 @@ def get_pil_image(image_file: Union[str, Image.Image]) -> Image.Image: # Already a PIL Image object return image_file + # Remove quotes if existed + if image_file.startswith('"') and image_file.endswith('"'): + image_file = image_file[1:-1] + if image_file.startswith("'") and image_file.endswith("'"): + image_file = image_file[1:-1] + if image_file.startswith("http://") or image_file.startswith("https://"): # A URL file response = requests.get(image_file) diff --git a/autogen/agentchat/contrib/llava_agent.py b/autogen/agentchat/contrib/llava_agent.py index 376c6c88f249..182f72837b75 100644 --- a/autogen/agentchat/contrib/llava_agent.py +++ b/autogen/agentchat/contrib/llava_agent.py @@ -1,25 +1,14 @@ import json import logging -import os -import pdb -import re -from typing import Any, Dict, List, Optional, Tuple, Union - +from typing import List, Optional, Tuple import replicate import requests -from regex import R from autogen.agentchat.agent import Agent from autogen.agentchat.contrib.img_utils import get_image_data, llava_formatter from autogen.agentchat.contrib.multimodal_conversable_agent import MultimodalConversableAgent from autogen.code_utils import content_str - -try: - from termcolor import colored -except ImportError: - - def colored(x, *args, **kwargs): - return x +from ...formatting_utils import colored logger = logging.getLogger(__name__) diff --git a/autogen/agentchat/contrib/math_user_proxy_agent.py b/autogen/agentchat/contrib/math_user_proxy_agent.py index 67c86daf05d1..70f365ef9fef 100644 --- a/autogen/agentchat/contrib/math_user_proxy_agent.py +++ b/autogen/agentchat/contrib/math_user_proxy_agent.py @@ -177,28 +177,35 @@ def __init__( self._previous_code = "" self.last_reply = None - def generate_init_message(self, problem, prompt_type="default", customized_prompt=None): + @staticmethod + def message_generator(sender, recipient, context): """Generate a prompt for the assistant agent with the given problem and prompt. Args: - problem (str): the problem to be solved. - prompt_type (str): the type of the prompt. Possible values are "default", "python", "wolfram". - (1) "default": the prompt that allows the agent to choose between 3 ways to solve a problem: - 1. write a python program to solve it directly. - 2. solve it directly without python. - 3. solve it step by step with python. - (2) "python": - a simplified prompt from the third way of the "default" prompt, that asks the assistant - to solve the problem step by step with python. - (3) "two_tools": - a simplified prompt similar to the "python" prompt, but allows the model to choose between - Python and Wolfram Alpha to solve the problem. - customized_prompt (str): a customized prompt to be used. If it is not None, the prompt_type will be ignored. + sender (Agent): the sender of the message. + recipient (Agent): the recipient of the message. + context (dict): a dictionary with the following fields: + problem (str): the problem to be solved. + prompt_type (str, Optional): the type of the prompt. Possible values are "default", "python", "wolfram". + (1) "default": the prompt that allows the agent to choose between 3 ways to solve a problem: + 1. write a python program to solve it directly. + 2. solve it directly without python. + 3. solve it step by step with python. + (2) "python": + a simplified prompt from the third way of the "default" prompt, that asks the assistant + to solve the problem step by step with python. + (3) "two_tools": + a simplified prompt similar to the "python" prompt, but allows the model to choose between + Python and Wolfram Alpha to solve the problem. + customized_prompt (str, Optional): a customized prompt to be used. If it is not None, the prompt_type will be ignored. Returns: str: the generated prompt ready to be sent to the assistant agent. """ - self._reset() + sender._reset() + problem = context.get("problem") + prompt_type = context.get("prompt_type", "default") + customized_prompt = context.get("customized_prompt", None) if customized_prompt is not None: return customized_prompt + problem return PROMPTS[prompt_type] + problem diff --git a/autogen/agentchat/contrib/multimodal_conversable_agent.py b/autogen/agentchat/contrib/multimodal_conversable_agent.py index a978e8fb722d..2a016bcffba3 100644 --- a/autogen/agentchat/contrib/multimodal_conversable_agent.py +++ b/autogen/agentchat/contrib/multimodal_conversable_agent.py @@ -1,26 +1,16 @@ import copy -from typing import Any, Callable, Dict, List, Optional, Tuple, Union +from typing import Dict, List, Optional, Tuple, Union from autogen import OpenAIWrapper from autogen.agentchat import Agent, ConversableAgent from autogen.agentchat.contrib.img_utils import ( - convert_base64_to_data_uri, gpt4v_formatter, message_formatter_pil_to_b64, - pil_to_data_uri, ) +from autogen.code_utils import content_str from ..._pydantic import model_dump -try: - from termcolor import colored -except ImportError: - - def colored(x, *args, **kwargs): - return x - - -from autogen.code_utils import content_str DEFAULT_LMM_SYS_MSG = """You are a helpful AI assistant.""" DEFAULT_MODEL = "gpt-4-vision-preview" @@ -63,16 +53,8 @@ def __init__( ) # Override the `generate_oai_reply` - def _replace_reply_func(arr, x, y): - for item in arr: - if item["reply_func"] is x: - item["reply_func"] = y - - _replace_reply_func( - self._reply_func_list, ConversableAgent.generate_oai_reply, MultimodalConversableAgent.generate_oai_reply - ) - _replace_reply_func( - self._reply_func_list, + self.replace_reply_func(ConversableAgent.generate_oai_reply, MultimodalConversableAgent.generate_oai_reply) + self.replace_reply_func( ConversableAgent.a_generate_oai_reply, MultimodalConversableAgent.a_generate_oai_reply, ) diff --git a/autogen/agentchat/contrib/qdrant_retrieve_user_proxy_agent.py b/autogen/agentchat/contrib/qdrant_retrieve_user_proxy_agent.py index 01b51362374d..c539c716ab81 100644 --- a/autogen/agentchat/contrib/qdrant_retrieve_user_proxy_agent.py +++ b/autogen/agentchat/contrib/qdrant_retrieve_user_proxy_agent.py @@ -281,16 +281,18 @@ class QueryResponse(BaseModel, extra="forbid"): # type: ignore collection_name, query_texts, limit=n_results, - query_filter=models.Filter( - must=[ - models.FieldCondition( - key="document", - match=models.MatchText(text=search_string), - ) - ] - ) - if search_string - else None, + query_filter=( + models.Filter( + must=[ + models.FieldCondition( + key="document", + match=models.MatchText(text=search_string), + ) + ] + ) + if search_string + else None + ), ) data = { diff --git a/autogen/agentchat/contrib/retrieve_user_proxy_agent.py b/autogen/agentchat/contrib/retrieve_user_proxy_agent.py index facb64d07efa..f252f60e5ec1 100644 --- a/autogen/agentchat/contrib/retrieve_user_proxy_agent.py +++ b/autogen/agentchat/contrib/retrieve_user_proxy_agent.py @@ -1,4 +1,6 @@ import re +from typing import Callable, Dict, Optional, Union, List, Tuple, Any +from IPython import get_ipython try: import chromadb @@ -10,16 +12,7 @@ from autogen.token_count_utils import count_token from autogen.code_utils import extract_code from autogen import logger - -from typing import Callable, Dict, Optional, Union, List, Tuple, Any -from IPython import get_ipython - -try: - from termcolor import colored -except ImportError: - - def colored(x, *args, **kwargs): - return x +from ...formatting_utils import colored PROMPT_DEFAULT = """You're a retrieve augmented chatbot. You answer user's questions based on your own knowledge and the @@ -415,23 +408,31 @@ def retrieve_docs(self, problem: str, n_results: int = 20, search_string: str = self._results = results print("doc_ids: ", results["ids"]) - def generate_init_message(self, problem: str, n_results: int = 20, search_string: str = ""): - """Generate an initial message with the given problem and prompt. - + @staticmethod + def message_generator(sender, recipient, context): + """ + Generate an initial message with the given context for the RetrieveUserProxyAgent. Args: - problem (str): the problem to be solved. - n_results (int): the number of results to be retrieved. - search_string (str): only docs containing this string will be retrieved. - + sender (Agent): the sender agent. It should be the instance of RetrieveUserProxyAgent. + recipient (Agent): the recipient agent. Usually it's the assistant agent. + context (dict): the context for the message generation. It should contain the following keys: + - problem (str): the problem to be solved. + - n_results (int): the number of results to be retrieved. Default is 20. + - search_string (str): only docs that contain an exact match of this string will be retrieved. Default is "". Returns: - str: the generated prompt ready to be sent to the assistant agent. + str: the generated message ready to be sent to the recipient agent. """ - self._reset() - self.retrieve_docs(problem, n_results, search_string) - self.problem = problem - self.n_results = n_results - doc_contents = self._get_context(self._results) - message = self._generate_message(doc_contents, self._task) + sender._reset() + + problem = context.get("problem", "") + n_results = context.get("n_results", 20) + search_string = context.get("search_string", "") + + sender.retrieve_docs(problem, n_results, search_string) + sender.problem = problem + sender.n_results = n_results + doc_contents = sender._get_context(sender._results) + message = sender._generate_message(doc_contents, sender._task) return message def run_code(self, code, **kwargs): diff --git a/autogen/agentchat/contrib/web_surfer.py b/autogen/agentchat/contrib/web_surfer.py index 371fc90d2bc6..e51dffdfd1c2 100644 --- a/autogen/agentchat/contrib/web_surfer.py +++ b/autogen/agentchat/contrib/web_surfer.py @@ -100,8 +100,7 @@ def __init__( if inner_llm_config not in [None, False]: self._register_functions() - self._reply_func_list = [] - self.register_reply([Agent, None], WebSurferAgent.generate_surfer_reply) + self.register_reply([Agent, None], WebSurferAgent.generate_surfer_reply, remove_other_reply_funcs=True) self.register_reply([Agent, None], ConversableAgent.generate_code_execution_reply) self.register_reply([Agent, None], ConversableAgent.generate_function_call_reply) self.register_reply([Agent, None], ConversableAgent.check_termination_and_human_reply) diff --git a/autogen/agentchat/conversable_agent.py b/autogen/agentchat/conversable_agent.py index b31c8ce786d3..54206b550521 100644 --- a/autogen/agentchat/conversable_agent.py +++ b/autogen/agentchat/conversable_agent.py @@ -5,41 +5,35 @@ import json import logging import re +import warnings from collections import defaultdict +from functools import partial from typing import Any, Callable, Dict, List, Literal, Optional, Tuple, Type, TypeVar, Union -import warnings + from openai import BadRequestError -from ..coding.base import CodeExecutor -from ..coding.factory import CodeExecutorFactory +from autogen.exception_utils import InvalidCarryOverType, SenderRequired -from ..oai.client import OpenAIWrapper, ModelClient -from ..runtime_logging import logging_enabled, log_new_agent +from .._pydantic import model_dump from ..cache.cache import Cache from ..code_utils import ( UNKNOWN, - content_str, check_can_use_docker_or_throw, + content_str, decide_use_docker, execute_code, extract_code, infer_lang, ) -from .utils import gather_usage_summary, consolidate_chat_info -from .chat import ChatResult, initiate_chats, a_initiate_chats - - +from ..coding.base import CodeExecutor +from ..coding.factory import CodeExecutorFactory +from ..formatting_utils import colored from ..function_utils import get_function_schema, load_basemodels_if_needed, serialize_to_str +from ..oai.client import ModelClient, OpenAIWrapper +from ..runtime_logging import log_new_agent, logging_enabled from .agent import Agent, LLMAgent -from .._pydantic import model_dump - -try: - from termcolor import colored -except ImportError: - - def colored(x, *args, **kwargs): - return x - +from .chat import ChatResult, a_initiate_chats, initiate_chats +from .utils import consolidate_chat_info, gather_usage_summary __all__ = ("ConversableAgent",) @@ -60,14 +54,13 @@ class ConversableAgent(LLMAgent): To modify the way to get human input, override `get_human_input` method. To modify the way to execute code blocks, single code block, or function call, override `execute_code_blocks`, `run_code`, and `execute_function` methods respectively. - To customize the initial message when a conversation starts, override `generate_init_message` method. """ - DEFAULT_CONFIG = {} # An empty configuration + DEFAULT_CONFIG = False # False or dict, the default config for llm inference MAX_CONSECUTIVE_AUTO_REPLY = 100 # maximum number of consecutive auto replies (subject to future change) - DEFAULT_summary_prompt = "Summarize the takeaway from the conversation. Do not add any introductory phrases." - DEFAULT_summary_method = "last_msg" + DEFAULT_SUMMARY_PROMPT = "Summarize the takeaway from the conversation. Do not add any introductory phrases." + DEFAULT_SUMMARY_METHOD = "last_msg" llm_config: Union[Dict, Literal[False]] def __init__( @@ -76,7 +69,7 @@ def __init__( system_message: Optional[Union[str, List]] = "You are a helpful AI Assistant.", is_termination_msg: Optional[Callable[[Dict], bool]] = None, max_consecutive_auto_reply: Optional[int] = None, - human_input_mode: Optional[str] = "TERMINATE", + human_input_mode: Literal["ALWAYS", "NEVER", "TERMINATE"] = "TERMINATE", function_map: Optional[Dict[str, Callable]] = None, code_execution_config: Union[Dict, Literal[False]] = False, llm_config: Optional[Union[Dict, Literal[False]]] = None, @@ -121,11 +114,19 @@ def __init__( llm_config (dict or False or None): llm inference configuration. Please refer to [OpenAIWrapper.create](/docs/reference/oai/client#create) for available options. + When using OpenAI or Azure OpenAI endpoints, please specify a non-empty 'model' either in `llm_config` or in each config of 'config_list' in `llm_config`. To disable llm-based auto reply, set to False. + When set to None, will use self.DEFAULT_CONFIG, which defaults to False. default_auto_reply (str or dict): default auto reply when no code execution or llm-based reply is generated. description (str): a short description of the agent. This description is used by other agents (e.g. the GroupChatManager) to decide when to call upon this agent. (Default: system_message) """ + # we change code_execution_config below and we have to make sure we don't change the input + # in case of UserProxyAgent, without this we could even change the default value {} + code_execution_config = ( + code_execution_config.copy() if hasattr(code_execution_config, "copy") else code_execution_config + ) + self._name = name # a dictionary of conversations, default value is list self._oai_messages = defaultdict(list) @@ -137,21 +138,7 @@ def __init__( else (lambda x: content_str(x.get("content")) == "TERMINATE") ) - if llm_config is False: - self.llm_config = False - self.client = None - else: - self.llm_config = self.DEFAULT_CONFIG.copy() - if isinstance(llm_config, dict): - self.llm_config.update(llm_config) - if "model" not in self.llm_config and ( - not self.llm_config.get("config_list") - or any(not config.get("model") for config in self.llm_config["config_list"]) - ): - raise ValueError( - "Please either set llm_config to False, or specify a non-empty 'model' either in 'llm_config' or in each config of 'config_list'." - ) - self.client = OpenAIWrapper(**self.llm_config) + self._validate_llm_config(llm_config) if logging_enabled(): log_new_agent(self, locals()) @@ -172,7 +159,6 @@ def __init__( ) self._default_auto_reply = default_auto_reply self._reply_func_list = [] - self._ignore_async_func_in_sync_chat_list = [] self._human_input = [] self.reply_at_receive = defaultdict(bool) self.register_reply([Agent, None], ConversableAgent.generate_oai_reply) @@ -196,6 +182,21 @@ def __init__( self._code_execution_config = code_execution_config if self._code_execution_config.get("executor") is not None: + if "use_docker" in self._code_execution_config: + raise ValueError( + "'use_docker' in code_execution_config is not valid when 'executor' is set. Use the appropriate arg in the chosen executor instead." + ) + + if "work_dir" in self._code_execution_config: + raise ValueError( + "'work_dir' in code_execution_config is not valid when 'executor' is set. Use the appropriate arg in the chosen executor instead." + ) + + if "timeout" in self._code_execution_config: + raise ValueError( + "'timeout' in code_execution_config is not valid when 'executor' is set. Use the appropriate arg in the chosen executor instead." + ) + # Use the new code executor. self._code_executor = CodeExecutorFactory.create(self._code_execution_config) self.register_reply([Agent, None], ConversableAgent._generate_code_execution_reply_using_executor) @@ -229,6 +230,20 @@ def __init__( "process_message_before_send": [], } + def _validate_llm_config(self, llm_config): + assert llm_config in (None, False) or isinstance( + llm_config, dict + ), "llm_config must be a dict or False or None." + if llm_config is None: + llm_config = self.DEFAULT_CONFIG + self.llm_config = self.DEFAULT_CONFIG if llm_config is None else llm_config + # TODO: more complete validity check + if self.llm_config in [{}, {"config_list": []}, {"config_list": [{"model": ""}]}]: + raise ValueError( + "When using OpenAI or Azure OpenAI endpoints, specify a non-empty 'model' either in 'llm_config' or in each config of 'config_list'." + ) + self.client = None if self.llm_config is False else OpenAIWrapper(**self.llm_config) + @property def name(self) -> str: """Get the name of the agent.""" @@ -245,13 +260,10 @@ def description(self, description: str): self._description = description @property - def code_executor(self) -> CodeExecutor: - """The code executor used by this agent. Raise if code execution is disabled.""" + def code_executor(self) -> Optional[CodeExecutor]: + """The code executor used by this agent. Returns None if code execution is disabled.""" if not hasattr(self, "_code_executor"): - raise ValueError( - "No code executor as code execution is disabled. " - "To enable code execution, set code_execution_config." - ) + return None return self._code_executor def register_reply( @@ -263,6 +275,7 @@ def register_reply( reset_config: Optional[Callable] = None, *, ignore_async_in_sync_chat: bool = False, + remove_other_reply_funcs: bool = False, ): """Register a reply function. @@ -274,34 +287,29 @@ def register_reply( from both sync and async chats. However, an async reply function will only be triggered from async chats (initiated with `ConversableAgent.a_initiate_chat`). If an `async` reply function is registered and a chat is initialized with a sync function, `ignore_async_in_sync_chat` determines the behaviour as follows: - - if `ignore_async_in_sync_chat` is set to `False` (default value), an exception will be raised, and - - if `ignore_async_in_sync_chat` is set to `True`, the reply function will be ignored. + if `ignore_async_in_sync_chat` is set to `False` (default value), an exception will be raised, and + if `ignore_async_in_sync_chat` is set to `True`, the reply function will be ignored. Args: trigger (Agent class, str, Agent instance, callable, or list): the trigger. - - If a class is provided, the reply function will be called when the sender is an instance of the class. - - If a string is provided, the reply function will be called when the sender's name matches the string. - - If an agent instance is provided, the reply function will be called when the sender is the agent instance. - - If a callable is provided, the reply function will be called when the callable returns True. - - If a list is provided, the reply function will be called when any of the triggers in the list is activated. - - If None is provided, the reply function will be called only when the sender is None. - Note: Be sure to register `None` as a trigger if you would like to trigger an auto-reply function with non-empty messages and `sender=None`. + If a class is provided, the reply function will be called when the sender is an instance of the class. + If a string is provided, the reply function will be called when the sender's name matches the string. + If an agent instance is provided, the reply function will be called when the sender is the agent instance. + If a callable is provided, the reply function will be called when the callable returns True. + If a list is provided, the reply function will be called when any of the triggers in the list is activated. + If None is provided, the reply function will be called only when the sender is None. + Note: Be sure to register `None` as a trigger if you would like to trigger an auto-reply function with non-empty messages and `sender=None`. reply_func (Callable): the reply function. The function takes a recipient agent, a list of messages, a sender agent and a config as input and returns a reply message. - position: the position of the reply function in the reply function list. - config: the config to be passed to the reply function, see below. - reset_config: the function to reset the config, see below. - ignore_async_in_sync_chat: whether to ignore the async reply function in sync chats. If `False`, an exception - will be raised if an async reply function is registered and a chat is initialized with a sync - function. - ```python - def reply_func( - recipient: ConversableAgent, - messages: Optional[List[Dict]] = None, - sender: Optional[Agent] = None, - config: Optional[Any] = None, - ) -> Tuple[bool, Union[str, Dict, None]]: - ``` + + ```python + def reply_func( + recipient: ConversableAgent, + messages: Optional[List[Dict]] = None, + sender: Optional[Agent] = None, + config: Optional[Any] = None, + ) -> Tuple[bool, Union[str, Dict, None]]: + ``` position (int): the position of the reply function in the reply function list. The function registered later will be checked earlier by default. To change the order, set the position to a positive integer. @@ -309,9 +317,15 @@ def reply_func( When an agent is reset, the config will be reset to the original value. reset_config (Callable): the function to reset the config. The function returns None. Signature: ```def reset_config(config: Any)``` + ignore_async_in_sync_chat (bool): whether to ignore the async reply function in sync chats. If `False`, an exception + will be raised if an async reply function is registered and a chat is initialized with a sync + function. + remove_other_reply_funcs (bool): whether to remove other reply functions when registering this reply function. """ if not isinstance(trigger, (type, str, Agent, Callable, list)): raise ValueError("trigger must be a class, a string, an agent, a callable or a list.") + if remove_other_reply_funcs: + self._reply_func_list.clear() self._reply_func_list.insert( position, { @@ -320,10 +334,96 @@ def reply_func( "config": copy.copy(config), "init_config": config, "reset_config": reset_config, + "ignore_async_in_sync_chat": ignore_async_in_sync_chat and inspect.iscoroutinefunction(reply_func), }, ) - if ignore_async_in_sync_chat and inspect.iscoroutinefunction(reply_func): - self._ignore_async_func_in_sync_chat_list.append(reply_func) + + def replace_reply_func(self, old_reply_func: Callable, new_reply_func: Callable): + """Replace a registered reply function with a new one. + + Args: + old_reply_func (Callable): the old reply function to be replaced. + new_reply_func (Callable): the new reply function to replace the old one. + """ + for f in self._reply_func_list: + if f["reply_func"] == old_reply_func: + f["reply_func"] = new_reply_func + + @staticmethod + def _summary_from_nested_chats( + chat_queue: List[Dict[str, Any]], recipient: Agent, messages: Union[str, Callable], sender: Agent, config: Any + ) -> Tuple[bool, str]: + """A simple chat reply function. + This function initiate one or a sequence of chats between the "recipient" and the agents in the + chat_queue. + + It extracts and returns a summary from the nested chat based on the "summary_method" in each chat in chat_queue. + + Returns: + Tuple[bool, str]: A tuple where the first element indicates the completion of the chat, and the second element contains the summary of the last chat if any chats were initiated. + """ + last_msg = messages[-1].get("content") + chat_to_run = [] + for i, c in enumerate(chat_queue): + current_c = c.copy() + if current_c.get("sender") is None: + current_c["sender"] = recipient + message = current_c.get("message") + # If message is not provided in chat_queue, we by default use the last message from the original chat history as the first message in this nested chat (for the first chat in the chat queue). + # NOTE: This setting is prone to change. + if message is None and i == 0: + message = last_msg + if callable(message): + message = message(recipient, messages, sender, config) + # We only run chat that has a valid message. NOTE: This is prone to change dependin on applications. + if message: + current_c["message"] = message + chat_to_run.append(current_c) + if not chat_to_run: + return True, None + res = initiate_chats(chat_to_run) + return True, res[-1].summary + + def register_nested_chats( + self, + chat_queue: List[Dict[str, Any]], + trigger: Union[Type[Agent], str, Agent, Callable[[Agent], bool], List], + reply_func_from_nested_chats: Union[str, Callable] = "summary_from_nested_chats", + position: int = 2, + **kwargs, + ) -> None: + """Register a nested chat reply function. + Args: + chat_queue (list): a list of chat objects to be initiated. + trigger (Agent class, str, Agent instance, callable, or list): refer to `register_reply` for details. + reply_func_from_nested_chats (Callable, str): the reply function for the nested chat. + The function takes a chat_queue for nested chat, recipient agent, a list of messages, a sender agent and a config as input and returns a reply message. + Default to "summary_from_nested_chats", which corresponds to a built-in reply function that get summary from the nested chat_queue. + ```python + def reply_func_from_nested_chats( + chat_queue: List[Dict], + recipient: ConversableAgent, + messages: Optional[List[Dict]] = None, + sender: Optional[Agent] = None, + config: Optional[Any] = None, + ) -> Tuple[bool, Union[str, Dict, None]]: + ``` + position (int): Ref to `register_reply` for details. Default to 2. It means we first check the termination and human reply, then check the registered nested chat reply. + kwargs: Ref to `register_reply` for details. + """ + if reply_func_from_nested_chats == "summary_from_nested_chats": + reply_func_from_nested_chats = self._summary_from_nested_chats + if not callable(reply_func_from_nested_chats): + raise ValueError("reply_func_from_nested_chats must be a callable") + reply_func = partial(reply_func_from_nested_chats, chat_queue) + self.register_reply( + trigger, + reply_func, + position, + kwargs.get("config"), + kwargs.get("reset_config"), + ignore_async_in_sync_chat=kwargs.get("ignore_async_in_sync_chat"), + ) @property def system_message(self) -> str: @@ -477,7 +577,7 @@ def _process_message_before_send( """Process the message before sending it to the recipient.""" hook_list = self.hook_lists["process_message_before_send"] for hook in hook_list: - message = hook(message, recipient, silent) + message = hook(sender=self, message=message, recipient=recipient, silent=silent) return message def send( @@ -486,7 +586,7 @@ def send( recipient: Agent, request_reply: Optional[bool] = None, silent: Optional[bool] = False, - ) -> ChatResult: + ): """Send a message to another agent. Args: @@ -518,9 +618,6 @@ def send( Raises: ValueError: if the message can't be converted into a valid ChatCompletion message. - - Returns: - ChatResult: a ChatResult object. """ message = self._process_message_before_send(message, recipient, silent) # When the agent composes and sends the message, the role of the message is "assistant" @@ -539,7 +636,7 @@ async def a_send( recipient: Agent, request_reply: Optional[bool] = None, silent: Optional[bool] = False, - ) -> ChatResult: + ): """(async) Send a message to another agent. Args: @@ -571,9 +668,6 @@ async def a_send( Raises: ValueError: if the message can't be converted into a valid ChatCompletion message. - - Returns: - ChatResult: an ChatResult object. """ message = self._process_message_before_send(message, recipient, silent) # When the agent composes and sends the message, the role of the message is "assistant" @@ -602,8 +696,8 @@ def _print_received_message(self, message: Union[Dict, str], sender: Agent): id_key = "name" else: id_key = "tool_call_id" - - func_print = f"***** Response from calling {message['role']} \"{message[id_key]}\" *****" + id = message.get(id_key, "No id found") + func_print = f"***** Response from calling {message['role']} ({id}) *****" print(colored(func_print, "green"), flush=True) print(message["content"], flush=True) print(colored("*" * len(func_print), "green"), flush=True) @@ -620,7 +714,7 @@ def _print_received_message(self, message: Union[Dict, str], sender: Agent): if "function_call" in message and message["function_call"]: function_call = dict(message["function_call"]) func_print = ( - f"***** Suggested function Call: {function_call.get('name', '(No function name found)')} *****" + f"***** Suggested function call: {function_call.get('name', '(No function name found)')} *****" ) print(colored(func_print, "green"), flush=True) print( @@ -632,9 +726,9 @@ def _print_received_message(self, message: Union[Dict, str], sender: Agent): print(colored("*" * len(func_print), "green"), flush=True) if "tool_calls" in message and message["tool_calls"]: for tool_call in message["tool_calls"]: - id = tool_call.get("id", "(No id found)") + id = tool_call.get("id", "No tool call id found") function_call = dict(tool_call.get("function", {})) - func_print = f"***** Suggested tool Call ({id}): {function_call.get('name', '(No function name found)')} *****" + func_print = f"***** Suggested tool call ({id}): {function_call.get('name', '(No function name found)')} *****" print(colored(func_print, "green"), flush=True) print( "Arguments: \n", @@ -751,12 +845,12 @@ def _raise_exception_on_async_reply_functions(self) -> None: Raises: RuntimeError: if any async reply functions are registered. """ - reply_functions = {f["reply_func"] for f in self._reply_func_list}.difference( - self._ignore_async_func_in_sync_chat_list - ) + reply_functions = { + f["reply_func"] for f in self._reply_func_list if not f.get("ignore_async_in_sync_chat", False) + } async_reply_functions = [f for f in reply_functions if inspect.iscoroutinefunction(f)] - if async_reply_functions != []: + if async_reply_functions: msg = ( "Async reply functions can only be used with ConversableAgent.a_initiate_chat(). The following async reply functions are found: " + ", ".join([f.__name__ for f in async_reply_functions]) @@ -767,17 +861,20 @@ def _raise_exception_on_async_reply_functions(self) -> None: def initiate_chat( self, recipient: "ConversableAgent", - clear_history: Optional[bool] = True, + clear_history: bool = True, silent: Optional[bool] = False, cache: Optional[Cache] = None, max_turns: Optional[int] = None, + summary_method: Optional[Union[str, Callable]] = DEFAULT_SUMMARY_METHOD, + summary_args: Optional[dict] = {}, + message: Optional[Union[Dict, str, Callable]] = None, **context, ) -> ChatResult: """Initiate a chat with the recipient agent. Reset the consecutive auto reply counter. If `clear_history` is True, the chat history with the recipient agent will be cleared. - `generate_init_message` is called to generate the initial message for the agent. + Args: recipient: the recipient agent. @@ -785,29 +882,71 @@ def initiate_chat( silent (bool or None): (Experimental) whether to print the messages for this conversation. Default is False. cache (Cache or None): the cache client to be used for this conversation. Default is None. max_turns (int or None): the maximum number of turns for the chat between the two agents. One turn means one conversation round trip. Note that this is different from - [max_consecutive_auto_reply](#max_consecutive_auto_reply) which is the maximum number of consecutive auto replies; and it is also different from [max_rounds in GroupChat](./groupchat#groupchat-objects) which is the maximum number of rounds in a group chat session. - If max_turns is set to None, the chat will continue until a termination condition is met. Default is None. + [max_consecutive_auto_reply](#max_consecutive_auto_reply) which is the maximum number of consecutive auto replies; and it is also different from [max_rounds in GroupChat](./groupchat#groupchat-objects) which is the maximum number of rounds in a group chat session. + If max_turns is set to None, the chat will continue until a termination condition is met. Default is None. + summary_method (str or callable): a method to get a summary from the chat. Default is DEFAULT_SUMMARY_METHOD, i.e., "last_msg". + + Supported strings are "last_msg" and "reflection_with_llm": + - when set to "last_msg", it returns the last message of the dialog as the summary. + - when set to "reflection_with_llm", it returns a summary extracted using an llm client. + `llm_config` must be set in either the recipient or sender. + + A callable summary_method should take the recipient and sender agent in a chat as input and return a string of summary. E.g., + + ```python + def my_summary_method( + sender: ConversableAgent, + recipient: ConversableAgent, + summary_args: dict, + ): + return recipient.last_message(sender)["content"] + ``` + summary_args (dict): a dictionary of arguments to be passed to the summary_method. + One example key is "summary_prompt", and value is a string of text used to prompt a LLM-based agent (the sender or receiver agent) to reflect + on the conversation and extract a summary when summary_method is "reflection_with_llm". + The default summary_prompt is DEFAULT_SUMMARY_PROMPT, i.e., "Summarize takeaway from the conversation. Do not add any introductory phrases. If the intended request is NOT properly addressed, please point it out." + message (str, dict or Callable): the initial message to be sent to the recipient. Needs to be provided. Otherwise, input() will be called to get the initial message. + - If a string or a dict is provided, it will be used as the initial message. `generate_init_message` is called to generate the initial message for the agent based on this string and the context. + If dict, it may contain the following reserved fields (either content or tool_calls need to be provided). + + 1. "content": content of the message, can be None. + 2. "function_call": a dictionary containing the function name and arguments. (deprecated in favor of "tool_calls") + 3. "tool_calls": a list of dictionaries containing the function name and arguments. + 4. "role": role of the message, can be "assistant", "user", "function". + This field is only needed to distinguish between "function" or "assistant"/"user". + 5. "name": In most cases, this field is not needed. When the role is "function", this field is needed to indicate the function name. + 6. "context" (dict): the context of the message, which will be passed to + [OpenAIWrapper.create](../oai/client#create). + + - If a callable is provided, it will be called to get the initial message in the form of a string or a dict. + If the returned type is dict, it may contain the reserved fields mentioned above. + + Example of a callable message (returning a string): + + ```python + def my_message(sender: ConversableAgent, recipient: ConversableAgent, context: dict) -> Union[str, Dict]: + carryover = context.get("carryover", "") + if isinstance(message, list): + carryover = carryover[-1] + final_msg = "Write a blogpost." + "\\nContext: \\n" + carryover + return final_msg + ``` + + Example of a callable message (returning a dict): + + ```python + def my_message(sender: ConversableAgent, recipient: ConversableAgent, context: dict) -> Union[str, Dict]: + final_msg = {} + carryover = context.get("carryover", "") + if isinstance(message, list): + carryover = carryover[-1] + final_msg["content"] = "Write a blogpost." + "\\nContext: \\n" + carryover + final_msg["context"] = {"prefix": "Today I feel"} + return final_msg + ``` **context: any context information. It has the following reserved fields: - "message": a str of message. Needs to be provided. Otherwise, input() will be called to get the initial message. - "summary_method": a string or callable specifying the method to get a summary from the chat. Default is DEFAULT_summary_method, i.e., "last_msg". - - Supported string are "last_msg" and "reflection_with_llm": - when set "last_msg", it returns the last message of the dialog as the summary. - when set "reflection_with_llm", it returns a summary extracted using an llm client. - `llm_config` must be set in either the recipient or sender. - "reflection_with_llm" requires the llm_config to be set in either the sender or the recipient. - - A callable summary_method should take the recipient and sender agent in a chat as input and return a string of summary. E.g, - ```python - def my_summary_method( - sender: ConversableAgent, - recipient: ConversableAgent, - ): - return recipient.last_message(sender)["content"] - ``` - "summary_prompt": a string of text used to prompt a LLM-based agent (the sender or receiver agent) to reflext - on the conversation and extract a summary when summary_method is "reflection_with_llm". - Default is DEFAULT_summary_prompt, i.e., "Summarize takeaway from the conversation. Do not add any introductory phrases. If the intended request is NOT properly addressed, please point it out." - "carryover": a string or a list of string to specify the carryover information to be passed to this chat. It can be a string or a list of string. - If provided, we will combine this carryover with the "message" content when generating the initial chat + - "carryover": a string or a list of string to specify the carryover information to be passed to this chat. + If provided, we will combine this carryover (by attaching a "context: " string and the carryover content after the message content) with the "message" content when generating the initial chat message in `generate_init_message`. Raises: @@ -818,6 +957,7 @@ def my_summary_method( """ _chat_info = context.copy() _chat_info["recipient"] = recipient + _chat_info["sender"] = self consolidate_chat_info(_chat_info, uniform_sender=self) for agent in [self, recipient]: agent._raise_exception_on_async_reply_functions() @@ -827,7 +967,10 @@ def my_summary_method( self._prepare_chat(recipient, clear_history, reply_at_receive=False) for _ in range(max_turns): if _ == 0: - msg2send = self.generate_init_message(**context) + if isinstance(message, Callable): + msg2send = message(_chat_info["sender"], _chat_info["recipient"], context) + else: + msg2send = self.generate_init_message(message, **context) else: msg2send = self.generate_reply(messages=self.chat_messages[recipient], sender=recipient) if msg2send is None: @@ -835,11 +978,15 @@ def my_summary_method( self.send(msg2send, recipient, request_reply=True, silent=silent) else: self._prepare_chat(recipient, clear_history) - self.send(self.generate_init_message(**context), recipient, silent=silent) + if isinstance(message, Callable): + msg2send = message(_chat_info["sender"], _chat_info["recipient"], context) + else: + msg2send = self.generate_init_message(message, **context) + self.send(msg2send, recipient, silent=silent) summary = self._summarize_chat( - context.get("summary_method", ConversableAgent.DEFAULT_summary_method), + summary_method, + summary_args, recipient, - prompt=context.get("summary_prompt"), cache=cache, ) for agent in [self, recipient]: @@ -856,10 +1003,13 @@ def my_summary_method( async def a_initiate_chat( self, recipient: "ConversableAgent", - clear_history: Optional[bool] = True, + clear_history: bool = True, silent: Optional[bool] = False, cache: Optional[Cache] = None, max_turns: Optional[int] = None, + summary_method: Optional[Union[str, Callable]] = DEFAULT_SUMMARY_METHOD, + summary_args: Optional[dict] = {}, + message: Optional[Union[str, Callable]] = None, **context, ) -> ChatResult: """(async) Initiate a chat with the recipient agent. @@ -875,6 +1025,7 @@ async def a_initiate_chat( """ _chat_info = context.copy() _chat_info["recipient"] = recipient + _chat_info["sender"] = self consolidate_chat_info(_chat_info, uniform_sender=self) for agent in [self, recipient]: agent.previous_cache = agent.client_cache @@ -883,7 +1034,10 @@ async def a_initiate_chat( self._prepare_chat(recipient, clear_history, reply_at_receive=False) for _ in range(max_turns): if _ == 0: - msg2send = await self.a_generate_init_message(**context) + if isinstance(message, Callable): + msg2send = message(_chat_info["sender"], _chat_info["recipient"], context) + else: + msg2send = await self.a_generate_init_message(message, **context) else: msg2send = await self.a_generate_reply(messages=self.chat_messages[recipient], sender=recipient) if msg2send is None: @@ -891,11 +1045,15 @@ async def a_initiate_chat( await self.a_send(msg2send, recipient, request_reply=True, silent=silent) else: self._prepare_chat(recipient, clear_history) - await self.a_send(await self.a_generate_init_message(**context), recipient, silent=silent) + if isinstance(message, Callable): + msg2send = message(_chat_info["sender"], _chat_info["recipient"], context) + else: + msg2send = await self.a_generate_init_message(message, **context) + await self.a_send(msg2send, recipient, silent=silent) summary = self._summarize_chat( - context.get("summary_method", ConversableAgent.DEFAULT_summary_method), + summary_method, + summary_args, recipient, - prompt=context.get("summary_prompt"), cache=cache, ) for agent in [self, recipient]: @@ -912,8 +1070,8 @@ async def a_initiate_chat( def _summarize_chat( self, summary_method, + summary_args, recipient: Optional[Agent] = None, - prompt: Optional[str] = None, cache: Optional[Cache] = None, ) -> str: """Get a chat summary from an agent participating in a chat. @@ -925,35 +1083,60 @@ def _summarize_chat( def my_summary_method( sender: ConversableAgent, recipient: ConversableAgent, + summary_args: dict, ): return recipient.last_message(sender)["content"] ``` + summary_args (dict): a dictionary of arguments to be passed to the summary_method. recipient: the recipient agent in a chat. prompt (str): the prompt used to get a summary when summary_method is "reflection_with_llm". Returns: str: a chat summary from the agent. """ - agent = self if recipient is None else recipient summary = "" if summary_method is None: return summary + if "cache" not in summary_args: + summary_args["cache"] = cache if summary_method == "reflection_with_llm": - prompt = ConversableAgent.DEFAULT_summary_prompt if prompt is None else prompt - if not isinstance(prompt, str): - raise ValueError("The summary_prompt must be a string.") - msg_list = agent.chat_messages_for_summary(self) - try: - summary = self._reflection_with_llm(prompt, msg_list, llm_agent=agent, cache=cache) - except BadRequestError as e: - warnings.warn(f"Cannot extract summary using reflection_with_llm: {e}", UserWarning) - elif summary_method == "last_msg" or summary_method is None: - try: - summary = agent.last_message(self)["content"].replace("TERMINATE", "") - except (IndexError, AttributeError) as e: - warnings.warn(f"Cannot extract summary using last_msg: {e}", UserWarning) - elif isinstance(summary_method, Callable): - summary = summary_method(recipient, self) + summary_method = self._relfection_with_llm_as_summary + elif summary_method == "last_msg": + summary_method = self._last_msg_as_summary + + if isinstance(summary_method, Callable): + summary = summary_method(self, recipient, summary_args) + else: + raise ValueError( + "If not None, the summary_method must be a string from [`reflection_with_llm`, `last_msg`] or a callable." + ) + return summary + + @staticmethod + def _last_msg_as_summary(sender, recipient, summary_args) -> str: + """Get a chat summary from the last message of the recipient.""" + try: + summary = recipient.last_message(sender)["content"].replace("TERMINATE", "") + except (IndexError, AttributeError) as e: + warnings.warn(f"Cannot extract summary using last_msg: {e}. Using an empty str as summary.", UserWarning) + summary = "" + return summary + + @staticmethod + def _relfection_with_llm_as_summary(sender, recipient, summary_args): + prompt = summary_args.get("summary_prompt") + prompt = ConversableAgent.DEFAULT_SUMMARY_PROMPT if prompt is None else prompt + if not isinstance(prompt, str): + raise ValueError("The summary_prompt must be a string.") + msg_list = recipient.chat_messages_for_summary(sender) + agent = sender if recipient is None else recipient + try: + summary = sender._reflection_with_llm(prompt, msg_list, llm_agent=agent, cache=summary_args.get("cache")) + except BadRequestError as e: + warnings.warn( + f"Cannot extract summary using reflection_with_llm: {e}. Using an empty str as summary.", UserWarning + ) + summary = "" return summary def _reflection_with_llm( @@ -986,7 +1169,6 @@ def _reflection_with_llm( def initiate_chats(self, chat_queue: List[Dict[str, Any]]) -> List[ChatResult]: """(Experimental) Initiate chats with multiple agents. - TODO: add async version of this method. Args: chat_queue (List[Dict]): a list of dictionaries containing the information of the chats. @@ -1051,8 +1233,18 @@ def clear_history(self, recipient: Optional[Agent] = None, nr_messages_to_preser if recipient is None: if nr_messages_to_preserve: for key in self._oai_messages: + nr_messages_to_preserve_internal = nr_messages_to_preserve + # if breaking history between function call and function response, save function call message + # additionally, otherwise openai will return error + first_msg_to_save = self._oai_messages[key][-nr_messages_to_preserve_internal] + if "tool_responses" in first_msg_to_save: + nr_messages_to_preserve_internal += 1 + print( + f"Preserving one more message for {self.name} to not divide history between tool call and " + f"tool response." + ) # Remove messages from history except last `nr_messages_to_preserve` messages. - self._oai_messages[key] = self._oai_messages[key][-nr_messages_to_preserve:] + self._oai_messages[key] = self._oai_messages[key][-nr_messages_to_preserve_internal:] else: self._oai_messages.clear() else: @@ -1117,6 +1309,12 @@ def _generate_oai_reply_from_client(self, llm_client, messages, cache) -> Union[ ) for tool_call in extracted_response.get("tool_calls") or []: tool_call["function"]["name"] = self._normalize_name(tool_call["function"]["name"]) + # Remove id and type if they are not present. + # This is to make the tool call object compatible with Mistral API. + if tool_call.get("id") is None: + tool_call.pop("id") + if tool_call.get("type") is None: + tool_call.pop("type") return extracted_response async def a_generate_oai_reply( @@ -1171,6 +1369,25 @@ def _generate_code_execution_reply_using_executor( code_blocks = self._code_executor.code_extractor.extract_code_blocks(message["content"]) if len(code_blocks) == 0: continue + + num_code_blocks = len(code_blocks) + if num_code_blocks == 1: + print( + colored( + f"\n>>>>>>>> EXECUTING CODE BLOCK (inferred language is {code_blocks[0].language})...", + "red", + ), + flush=True, + ) + else: + print( + colored( + f"\n>>>>>>>> EXECUTING {num_code_blocks} CODE BLOCKS (inferred languages are [{', '.join([x.language for x in code_blocks])}])...", + "red", + ), + flush=True, + ) + # found code blocks, execute code. code_result = self._code_executor.execute_code_blocks(code_blocks) exitcode2str = "execution succeeded" if code_result.exit_code == 0 else "execution failed" @@ -1314,7 +1531,6 @@ def generate_tool_calls_reply( message = messages[-1] tool_returns = [] for tool_call in message.get("tool_calls", []): - id = tool_call["id"] function_call = tool_call.get("function", {}) func = self._function_map.get(function_call.get("name", None), None) if inspect.iscoroutinefunction(func): @@ -1332,13 +1548,24 @@ def generate_tool_calls_reply( loop.close() else: _, func_return = self.execute_function(function_call) - tool_returns.append( - { - "tool_call_id": id, + content = func_return.get("content", "") + if content is None: + content = "" + tool_call_id = tool_call.get("id", None) + if tool_call_id is not None: + tool_call_response = { + "tool_call_id": tool_call_id, "role": "tool", - "content": func_return.get("content", ""), + "content": content, } - ) + else: + # Do not include tool_call_id if it is not present. + # This is to make the tool call object compatible with Mistral API. + tool_call_response = { + "role": "tool", + "content": content, + } + tool_returns.append(tool_call_response) if tool_returns: return True, { "role": "tool", @@ -1405,8 +1632,6 @@ def check_termination_and_human_reply( - Tuple[bool, Union[str, Dict, None]]: A tuple containing a boolean indicating if the conversation should be terminated, and a human reply which can be a string, a dictionary, or None. """ - # Function implementation... - if config is None: config = self if messages is None: @@ -1647,14 +1872,14 @@ def generate_reply( if messages is None: messages = self._oai_messages[sender] - # Call the hookable method that gives registered hooks a chance to process all messages. - # Message modifications do not affect the incoming messages or self._oai_messages. - messages = self.process_all_messages_before_reply(messages) - # Call the hookable method that gives registered hooks a chance to process the last message. # Message modifications do not affect the incoming messages or self._oai_messages. messages = self.process_last_received_message(messages) + # Call the hookable method that gives registered hooks a chance to process all messages. + # Message modifications do not affect the incoming messages or self._oai_messages. + messages = self.process_all_messages_before_reply(messages) + for reply_func_tuple in self._reply_func_list: reply_func = reply_func_tuple["reply_func"] if "exclude" in kwargs and reply_func in kwargs["exclude"]: @@ -1720,6 +1945,7 @@ async def a_generate_reply( reply_func = reply_func_tuple["reply_func"] if "exclude" in kwargs and reply_func in kwargs["exclude"]: continue + if self._match_trigger(reply_func_tuple["trigger"], sender): if inspect.iscoroutinefunction(reply_func): final, reply = await reply_func( @@ -1731,7 +1957,7 @@ async def a_generate_reply( return reply return self._default_auto_reply - def _match_trigger(self, trigger: Union[None, str, type, Agent, Callable, List], sender: Agent) -> bool: + def _match_trigger(self, trigger: Union[None, str, type, Agent, Callable, List], sender: Optional[Agent]) -> bool: """Check if the sender matches the trigger. Args: @@ -1748,6 +1974,8 @@ def _match_trigger(self, trigger: Union[None, str, type, Agent, Callable, List], if trigger is None: return sender is None elif isinstance(trigger, str): + if sender is None: + raise SenderRequired() return trigger == sender.name elif isinstance(trigger, type): return isinstance(sender, trigger) @@ -1756,7 +1984,7 @@ def _match_trigger(self, trigger: Union[None, str, type, Agent, Callable, List], return trigger == sender elif isinstance(trigger, Callable): rst = trigger(sender) - assert rst in [True, False], f"trigger {trigger} must return a boolean value." + assert isinstance(rst, bool), f"trigger {trigger} must return a boolean value." return rst elif isinstance(trigger, list): return any(self._match_trigger(t, sender) for t in trigger) @@ -1989,80 +2217,76 @@ async def a_execute_function(self, func_call): "content": str(content), } - def generate_init_message(self, **context) -> Union[str, Dict]: + def generate_init_message(self, message: Union[Dict, str, None], **context) -> Union[str, Dict]: """Generate the initial message for the agent. - TODO: offer a way to customize initial message without overriding this function. - - Override this function to customize the initial message based on user's request. - If not overridden, "message" needs to be provided in the context, or input() will be called to get the initial message. + If message is None, input() will be called to get the initial message. Args: + message (str or None): the message to be processed. **context: any context information. It has the following reserved fields: - "message": a str of message. - "summary_method": a string or callable specifying the method to get a summary from the chat. Default is DEFAULT_summary_method, i.e., "last_msg". - - Supported string are "last_msg" and "reflection_with_llm": - when set "last_msg", it returns the last message of the dialog as the summary. - when set "reflection_with_llm", it returns a summary extracted using an llm client. - `llm_config` must be set in either the recipient or sender. - "reflection_with_llm" requires the llm_config to be set in either the sender or the recipient. - - A callable summary_method should take the recipient and sender agent in a chat as input and return a string of summary. E.g, - ```python - def my_summary_method( - sender: ConversableAgent, - recipient: ConversableAgent, - ): - return recipient.last_message(sender)["content"] - ``` - When both the sender and the recipient have an llm client, the recipient's llm client will be used. - "summary_prompt": a string of text used to prompt a LLM-based agent (the sender or receiver agent) to reflext - on the conversation and extract a summary when summary_method is "reflection_with_llm". - Default is DEFAULT_summary_prompt, i.e., "Summarize takeaway from the conversation. Do not add any introductory phrases. If the intended request is NOT properly addressed, please point it out." "carryover": a string or a list of string to specify the carryover information to be passed to this chat. It can be a string or a list of string. If provided, we will combine this carryover with the "message" content when generating the initial chat message. + Returns: + str or dict: the processed message. """ - if "message" not in context: - context["message"] = self.get_human_input(">") - self._process_carryover(context) - return context["message"] + if message is None: + message = self.get_human_input(">") + if isinstance(message, str): + return self._process_carryover(message, context) + elif isinstance(message, dict): + message = message.copy() + # TODO: Do we need to do the following? + # if message.get("content") is None: + # message["content"] = self.get_human_input(">") + message["content"] = self._process_carryover(message.get("content", ""), context) + return message - def _process_carryover(self, context): - carryover = context.get("carryover", "") + def _process_carryover(self, message: str, context: dict) -> str: + carryover = context.get("carryover") if carryover: # if carryover is string if isinstance(carryover, str): - context["message"] = context["message"] + "\nContext: \n" + carryover + message += "\nContext: \n" + carryover elif isinstance(carryover, list): - context["message"] = context["message"] + "\nContext: \n" + ("\n").join([t for t in carryover]) + message += "\nContext: \n" + ("\n").join([t for t in carryover]) else: - raise warnings.warn( + raise InvalidCarryOverType( "Carryover should be a string or a list of strings. Not adding carryover to the message." ) + return message - async def a_generate_init_message(self, **context) -> Union[str, Dict]: + async def a_generate_init_message(self, message: Union[Dict, str, None], **context) -> Union[str, Dict]: """Generate the initial message for the agent. - TODO: offer a way to customize initial message without overriding this function. - - Override this function to customize the initial message based on user's request. - If not overridden, "message" needs to be provided in the context, or input() will be called to get the initial message. + If message is None, input() will be called to get the initial message. Args: Please refer to `generate_init_message` for the description of the arguments. + + Returns: + str or dict: the processed message. """ - if "message" not in context: - context["message"] = await self.a_get_human_input(">") - self._process_carryover(context) - return context["message"] + if message is None: + message = await self.a_get_human_input(">") + if isinstance(message, str): + return self._process_carryover(message, context) + elif isinstance(message, dict): + message = message.copy() + message["content"] = self._process_carryover(message["content"], context) + return message - def register_function(self, function_map: Dict[str, Callable]): + def register_function(self, function_map: Dict[str, Union[Callable, None]]): """Register functions to the agent. Args: - function_map: a dictionary mapping function names to functions. + function_map: a dictionary mapping function names to functions. if function_map[name] is None, the function will be removed from the function_map. """ - for name in function_map.keys(): + for name, func in function_map.items(): self._assert_valid_name(name) + if func is None and name not in self._function_map.keys(): + warnings.warn(f"The function {name} to remove doesn't exist", name) self._function_map.update(function_map) + self._function_map = {k: v for k, v in self._function_map.items() if v is not None} def update_function_signature(self, func_sig: Union[str, Dict], is_remove: None): """update a function_signature in the LLM configuration for function_call. @@ -2090,6 +2314,11 @@ def update_function_signature(self, func_sig: Union[str, Dict], is_remove: None) func for func in self.llm_config["functions"] if func["name"] != func_sig ] else: + if not isinstance(func_sig, dict): + raise ValueError( + f"The function signature must be of the type dict. Received function signature type {type(func_sig)}" + ) + self._assert_valid_name(func_sig["name"]) if "functions" in self.llm_config.keys(): self.llm_config["functions"] = [ @@ -2126,6 +2355,10 @@ def update_tool_signature(self, tool_sig: Union[str, Dict], is_remove: None): tool for tool in self.llm_config["tools"] if tool["function"]["name"] != tool_sig ] else: + if not isinstance(tool_sig, dict): + raise ValueError( + f"The tool signature must be of the type dict. Received tool signature type {type(tool_sig)}" + ) self._assert_valid_name(tool_sig["function"]["name"]) if "tools" in self.llm_config.keys(): self.llm_config["tools"] = [ @@ -2384,22 +2617,25 @@ def process_last_received_message(self, messages): return messages # Last message contains a context key. if "content" not in last_message: return messages # Last message has no content. - user_text = last_message["content"] - if not isinstance(user_text, str): - return messages # Last message content is not a string. TODO: Multimodal agents will use a dict here. - if user_text == "exit": + + user_content = last_message["content"] + if not isinstance(user_content, str) and not isinstance(user_content, list): + # if the user_content is a string, it is for regular LLM + # if the user_content is a list, it should follow the multimodal LMM format. + return messages + if user_content == "exit": return messages # Last message is an exit command. # Call each hook (in order of registration) to process the user's message. - processed_user_text = user_text + processed_user_content = user_content for hook in hook_list: - processed_user_text = hook(processed_user_text) - if processed_user_text == user_text: + processed_user_content = hook(processed_user_content) + if processed_user_content == user_content: return messages # No hooks actually modified the user's message. # Replace the last user message with the expanded one. messages = messages.copy() - messages[-1]["content"] = processed_user_text + messages[-1]["content"] = processed_user_content return messages def print_usage_summary(self, mode: Union[str, List[str]] = ["actual", "total"]) -> None: diff --git a/autogen/agentchat/groupchat.py b/autogen/agentchat/groupchat.py index 5997b093a362..3db9b72cce34 100644 --- a/autogen/agentchat/groupchat.py +++ b/autogen/agentchat/groupchat.py @@ -3,27 +3,19 @@ import re import sys from dataclasses import dataclass, field -from typing import Dict, List, Optional, Union, Tuple +from typing import Callable, Dict, List, Literal, Optional, Tuple, Union +from autogen.agentchat.agent import Agent +from autogen.agentchat.conversable_agent import ConversableAgent from ..code_utils import content_str -from ..exception_utils import AgentNameConflict -from .agent import Agent -from .conversable_agent import ConversableAgent -from ..runtime_logging import logging_enabled, log_new_agent +from ..exception_utils import AgentNameConflict, NoEligibleSpeaker, UndefinedNextAgent from ..graph_utils import check_graph_validity, invert_disallowed_to_allowed +from ..runtime_logging import log_new_agent, logging_enabled logger = logging.getLogger(__name__) -class NoEligibleSpeakerException(Exception): - """Exception raised for early termination of a GroupChat.""" - - def __init__(self, message="No eligible speakers."): - self.message = message - super().__init__(self.message) - - @dataclass class GroupChat: """(In preview) A group chat class that contains the following data fields: @@ -42,7 +34,16 @@ class GroupChat: - "manual": the next speaker is selected manually by user input. - "random": the next speaker is selected randomly. - "round_robin": the next speaker is selected in a round robin fashion, i.e., iterating in the same order as provided in `agents`. - + - a customized speaker selection function (Callable): the function will be called to select the next speaker. + The function should take the last speaker and the group chat as input and return one of the following: + 1. an `Agent` class, it must be one of the agents in the group chat. + 2. a string from ['auto', 'manual', 'random', 'round_robin'] to select a default method to use. + 3. None, which would terminate the conversation gracefully. + ```python + def custom_speaker_selection_func( + last_speaker: Agent, groupchat: GroupChat + ) -> Union[Agent, str, None]: + ``` - allow_repeat_speaker: whether to allow the same speaker to speak consecutively. Default is True, in which case all speakers are allowed to speak consecutively. If `allow_repeat_speaker` is a list of Agents, then only those listed agents are allowed to repeat. @@ -67,16 +68,21 @@ class GroupChat: max_round: Optional[int] = 10 admin_name: Optional[str] = "Admin" func_call_filter: Optional[bool] = True - speaker_selection_method: Optional[str] = "auto" + speaker_selection_method: Union[Literal["auto", "manual", "random", "round_robin"], Callable] = "auto" allow_repeat_speaker: Optional[Union[bool, List[Agent]]] = None allowed_or_disallowed_speaker_transitions: Optional[Dict] = None - speaker_transitions_type: Optional[str] = None + speaker_transitions_type: Literal["allowed", "disallowed", None] = None enable_clear_history: Optional[bool] = False - send_introductions: Optional[bool] = False + send_introductions: bool = False _VALID_SPEAKER_SELECTION_METHODS = ["auto", "manual", "random", "round_robin"] _VALID_SPEAKER_TRANSITIONS_TYPE = ["allowed", "disallowed", None] + # Define a class attribute for the default introduction message + DEFAULT_INTRO_MSG = ( + "Hello everyone. We have assembled a great team today to answer questions and solve tasks. In attendance are:" + ) + allowed_speaker_transitions_dict: Dict = field(init=False) def __post_init__(self): @@ -203,6 +209,10 @@ def next_agent(self, agent: Agent, agents: Optional[List[Agent]] = None) -> Agen if agents is None: agents = self.agents + # Ensure the provided list of agents is a subset of self.agents + if not set(agents).issubset(set(self.agents)): + raise UndefinedNextAgent() + # What index is the agent? (-1 if not present) idx = self.agent_names.index(agent.name) if agent.name in self.agent_names else -1 @@ -215,6 +225,9 @@ def next_agent(self, agent: Agent, agents: Optional[List[Agent]] = None) -> Agen if self.agents[(offset + i) % len(self.agents)] in agents: return self.agents[(offset + i) % len(self.agents)] + # Explicitly handle cases where no valid next agent exists in the provided subset. + raise UndefinedNextAgent() + def select_speaker_msg(self, agents: Optional[List[Agent]] = None) -> str: """Return the system message for selecting the next speaker. This is always the *first* message in the context.""" if agents is None: @@ -236,10 +249,11 @@ def introductions_msg(self, agents: Optional[List[Agent]] = None) -> str: if agents is None: agents = self.agents - return f"""Hello everyone. We have assembled a great team today to answer questions and solve tasks. In attendance are: + # Use the class attribute instead of a hardcoded string + intro_msg = self.DEFAULT_INTRO_MSG + participant_roles = self._participant_roles(agents) -{self._participant_roles(agents)} -""" + return f"{intro_msg}\n\n{participant_roles}" def manual_select_speaker(self, agents: Optional[List[Agent]] = None) -> Union[Agent, None]: """Manually select the next speaker.""" @@ -277,11 +291,34 @@ def random_select_speaker(self, agents: Optional[List[Agent]] = None) -> Union[A return random.choice(agents) def _prepare_and_select_agents( - self, last_speaker: Agent + self, + last_speaker: Agent, ) -> Tuple[Optional[Agent], List[Agent], Optional[List[Dict]]]: - if self.speaker_selection_method.lower() not in self._VALID_SPEAKER_SELECTION_METHODS: + # If self.speaker_selection_method is a callable, call it to get the next speaker. + # If self.speaker_selection_method is a string, return it. + speaker_selection_method = self.speaker_selection_method + if isinstance(self.speaker_selection_method, Callable): + selected_agent = self.speaker_selection_method(last_speaker, self) + if selected_agent is None: + raise NoEligibleSpeaker("Custom speaker selection function returned None. Terminating conversation.") + elif isinstance(selected_agent, Agent): + if selected_agent in self.agents: + return selected_agent, self.agents, None + else: + raise ValueError( + f"Custom speaker selection function returned an agent {selected_agent.name} not in the group chat." + ) + elif isinstance(selected_agent, str): + # If returned a string, assume it is a speaker selection method + speaker_selection_method = selected_agent + else: + raise ValueError( + f"Custom speaker selection function returned an object of type {type(selected_agent)} instead of Agent or str." + ) + + if speaker_selection_method.lower() not in self._VALID_SPEAKER_SELECTION_METHODS: raise ValueError( - f"GroupChat speaker_selection_method is set to '{self.speaker_selection_method}'. " + f"GroupChat speaker_selection_method is set to '{speaker_selection_method}'. " f"It should be one of {self._VALID_SPEAKER_SELECTION_METHODS} (case insensitive). " ) @@ -300,7 +337,7 @@ def _prepare_and_select_agents( f"GroupChat is underpopulated with {n_agents} agents. " "Please add more agents to the GroupChat or use direct communication instead." ) - elif n_agents == 2 and self.speaker_selection_method.lower() != "round_robin" and allow_repeat_speaker: + elif n_agents == 2 and speaker_selection_method.lower() != "round_robin" and allow_repeat_speaker: logger.warning( f"GroupChat is underpopulated with {n_agents} agents. " "Consider setting speaker_selection_method to 'round_robin' or allow_repeat_speaker to False, " @@ -344,9 +381,7 @@ def _prepare_and_select_agents( # this condition means last_speaker is a sink in the graph, then no agents are eligible if last_speaker not in self.allowed_speaker_transitions_dict and is_last_speaker_in_group: - raise NoEligibleSpeakerException( - f"Last speaker {last_speaker.name} is not in the allowed_speaker_transitions_dict." - ) + raise NoEligibleSpeaker(f"Last speaker {last_speaker.name} is not in the allowed_speaker_transitions_dict.") # last_speaker is not in the group, so all agents are eligible elif last_speaker not in self.allowed_speaker_transitions_dict and not is_last_speaker_in_group: graph_eligible_agents = [] @@ -366,11 +401,11 @@ def _prepare_and_select_agents( # Use the selected speaker selection method select_speaker_messages = None - if self.speaker_selection_method.lower() == "manual": + if speaker_selection_method.lower() == "manual": selected_agent = self.manual_select_speaker(graph_eligible_agents) - elif self.speaker_selection_method.lower() == "round_robin": + elif speaker_selection_method.lower() == "round_robin": selected_agent = self.next_agent(last_speaker, graph_eligible_agents) - elif self.speaker_selection_method.lower() == "random": + elif speaker_selection_method.lower() == "random": selected_agent = self.random_select_speaker(graph_eligible_agents) else: selected_agent = None @@ -479,7 +514,11 @@ def __init__( system_message: Optional[Union[str, List]] = "Group chat manager.", **kwargs, ): - if kwargs.get("llm_config") and (kwargs["llm_config"].get("functions") or kwargs["llm_config"].get("tools")): + if ( + kwargs.get("llm_config") + and isinstance(kwargs["llm_config"], dict) + and (kwargs["llm_config"].get("functions") or kwargs["llm_config"].get("tools")) + ): raise ValueError( "GroupChatManager is not allowed to make function/tool calls. Please remove the 'functions' or 'tools' config in 'llm_config' you passed in." ) @@ -584,7 +623,7 @@ def run_chat( else: # admin agent is not found in the participants raise - except NoEligibleSpeakerException: + except NoEligibleSpeaker: # No eligible speaker, terminate the conversation break @@ -596,9 +635,11 @@ def run_chat( if ( groupchat.enable_clear_history and isinstance(reply, dict) + and reply["content"] and "CLEAR HISTORY" in reply["content"].upper() ): - reply["content"] = self.clear_agents_history(reply["content"], groupchat) + reply["content"] = self.clear_agents_history(reply, groupchat) + # The speaker sends the message without requesting a reply speaker.send(reply, self, request_reply=False) message = self.last_message(speaker) @@ -626,7 +667,7 @@ async def a_run_chat( # Broadcast the intro intro = groupchat.introductions_msg() for agent in groupchat.agents: - self.a_send(intro, agent, request_reply=False, silent=True) + await self.a_send(intro, agent, request_reply=False, silent=True) # NOTE: We do not also append to groupchat.messages, # since groupchat handles its own introductions @@ -684,7 +725,7 @@ def _raise_exception_on_async_reply_functions(self) -> None: for agent in self._groupchat.agents: agent._raise_exception_on_async_reply_functions() - def clear_agents_history(self, reply: str, groupchat: GroupChat) -> str: + def clear_agents_history(self, reply: dict, groupchat: GroupChat) -> str: """Clears history of messages for all agents or selected one. Can preserve selected number of last messages. That function is called when user manually provide "clear history" phrase in his reply. When "clear history" is provided, the history of messages for all agents is cleared. @@ -696,23 +737,27 @@ def clear_agents_history(self, reply: str, groupchat: GroupChat) -> str: Phrase "clear history" and optional arguments are cut out from the reply before it passed to the chat. Args: - reply (str): Admin reply to analyse. + reply (dict): reply message dict to analyze. groupchat (GroupChat): GroupChat object. """ + reply_content = reply["content"] # Split the reply into words - words = reply.split() + words = reply_content.split() # Find the position of "clear" to determine where to start processing clear_word_index = next(i for i in reversed(range(len(words))) if words[i].upper() == "CLEAR") # Extract potential agent name and steps words_to_check = words[clear_word_index + 2 : clear_word_index + 4] nr_messages_to_preserve = None + nr_messages_to_preserve_provided = False agent_to_memory_clear = None for word in words_to_check: if word.isdigit(): nr_messages_to_preserve = int(word) + nr_messages_to_preserve_provided = True elif word[:-1].isdigit(): # for the case when number of messages is followed by dot or other sign nr_messages_to_preserve = int(word[:-1]) + nr_messages_to_preserve_provided = True else: for agent in groupchat.agents: if agent.name == word: @@ -721,6 +766,12 @@ def clear_agents_history(self, reply: str, groupchat: GroupChat) -> str: elif agent.name == word[:-1]: # for the case when agent name is followed by dot or other sign agent_to_memory_clear = agent break + # preserve last tool call message if clear history called inside of tool response + if "tool_responses" in reply and not nr_messages_to_preserve: + nr_messages_to_preserve = 1 + logger.warning( + "The last tool call message will be saved to prevent errors caused by tool response without tool call." + ) # clear history if agent_to_memory_clear: if nr_messages_to_preserve: @@ -746,7 +797,7 @@ def clear_agents_history(self, reply: str, groupchat: GroupChat) -> str: agent.clear_history(nr_messages_to_preserve=nr_messages_to_preserve) # Reconstruct the reply without the "clear history" command and parameters - skip_words_number = 2 + int(bool(agent_to_memory_clear)) + int(bool(nr_messages_to_preserve)) - reply = " ".join(words[:clear_word_index] + words[clear_word_index + skip_words_number :]) + skip_words_number = 2 + int(bool(agent_to_memory_clear)) + int(nr_messages_to_preserve_provided) + reply_content = " ".join(words[:clear_word_index] + words[clear_word_index + skip_words_number :]) - return reply + return reply_content diff --git a/autogen/agentchat/user_proxy_agent.py b/autogen/agentchat/user_proxy_agent.py index dc68c6ec6d0a..d1d7f89ab2b3 100644 --- a/autogen/agentchat/user_proxy_agent.py +++ b/autogen/agentchat/user_proxy_agent.py @@ -14,7 +14,6 @@ class UserProxyAgent(ConversableAgent): To modify the way to get human input, override `get_human_input` method. To modify the way to execute code blocks, single code block, or function call, override `execute_code_blocks`, `run_code`, and `execute_function` methods respectively. - To customize the initial message when a conversation starts, override `generate_init_message` method. """ # Default UserProxyAgent.description values, based on human_input_mode @@ -29,9 +28,9 @@ def __init__( name: str, is_termination_msg: Optional[Callable[[Dict], bool]] = None, max_consecutive_auto_reply: Optional[int] = None, - human_input_mode: Optional[str] = "ALWAYS", + human_input_mode: Literal["ALWAYS", "TERMINATE", "NEVER"] = "ALWAYS", function_map: Optional[Dict[str, Callable]] = None, - code_execution_config: Optional[Union[Dict, Literal[False]]] = None, + code_execution_config: Union[Dict, Literal[False]] = {}, default_auto_reply: Optional[Union[str, Dict, None]] = "", llm_config: Optional[Union[Dict, Literal[False]]] = False, system_message: Optional[Union[str, List]] = "", @@ -71,10 +70,11 @@ def __init__( - timeout (Optional, int): The maximum execution time in seconds. - last_n_messages (Experimental, Optional, int): The number of messages to look back for code execution. Default to 1. default_auto_reply (str or dict or None): the default auto reply message when no code execution or llm based reply is generated. - llm_config (dict or False): llm inference configuration. + llm_config (dict or False or None): llm inference configuration. Please refer to [OpenAIWrapper.create](/docs/reference/oai/client#create) for available options. - Default to false, which disables llm-based auto reply. + Default to False, which disables llm-based auto reply. + When set to None, will use self.DEFAULT_CONFIG, which defaults to False. system_message (str or List): system message for ChatCompletion inference. Only used when llm_config is not False. Use it to reprogram the agent. description (str): a short description of the agent. This description is used by other agents @@ -90,9 +90,9 @@ def __init__( code_execution_config=code_execution_config, llm_config=llm_config, default_auto_reply=default_auto_reply, - description=description - if description is not None - else self.DEFAULT_USER_PROXY_AGENT_DESCRIPTIONS[human_input_mode], + description=( + description if description is not None else self.DEFAULT_USER_PROXY_AGENT_DESCRIPTIONS[human_input_mode] + ), ) if logging_enabled(): diff --git a/autogen/agentchat/utils.py b/autogen/agentchat/utils.py index 07982d03768a..fde0b0b88b3a 100644 --- a/autogen/agentchat/utils.py +++ b/autogen/agentchat/utils.py @@ -1,4 +1,4 @@ -from typing import List, Dict, Tuple, Callable +from typing import Any, List, Dict, Tuple, Callable from .agent import Agent @@ -53,7 +53,7 @@ def gather_usage_summary(agents: List[Agent]) -> Tuple[Dict[str, any], Dict[str, If none of the agents incurred any cost (not having a client), then the total_usage_summary and actual_usage_summary will be `{'total_cost': 0}`. """ - def aggregate_summary(usage_summary: Dict[str, any], agent_summary: Dict[str, any]) -> None: + def aggregate_summary(usage_summary: Dict[str, Any], agent_summary: Dict[str, Any]) -> None: if agent_summary is None: return usage_summary["total_cost"] += agent_summary.get("total_cost", 0) diff --git a/autogen/cache/abstract_cache_base.py b/autogen/cache/abstract_cache_base.py index 846d929840b9..233702e777ac 100644 --- a/autogen/cache/abstract_cache_base.py +++ b/autogen/cache/abstract_cache_base.py @@ -1,4 +1,12 @@ from abc import ABC, abstractmethod +from types import TracebackType +from typing import Any, Optional, Type +import sys + +if sys.version_info >= (3, 11): + from typing import Self +else: + from typing_extensions import Self class AbstractCache(ABC): @@ -11,7 +19,7 @@ class AbstractCache(ABC): """ @abstractmethod - def get(self, key, default=None): + def get(self, key: str, default: Optional[Any] = None) -> Optional[Any]: """ Retrieve an item from the cache. @@ -31,7 +39,7 @@ def get(self, key, default=None): """ @abstractmethod - def set(self, key, value): + def set(self, key: str, value: Any) -> None: """ Set an item in the cache. @@ -47,7 +55,7 @@ def set(self, key, value): """ @abstractmethod - def close(self): + def close(self) -> None: """ Close the cache. @@ -60,7 +68,7 @@ def close(self): """ @abstractmethod - def __enter__(self): + def __enter__(self) -> Self: """ Enter the runtime context related to this object. @@ -72,7 +80,12 @@ def __enter__(self): """ @abstractmethod - def __exit__(self, exc_type, exc_value, traceback): + def __exit__( + self, + exc_type: Optional[Type[BaseException]], + exc_value: Optional[BaseException], + traceback: Optional[TracebackType], + ) -> None: """ Exit the runtime context and close the cache. diff --git a/autogen/cache/cache.py b/autogen/cache/cache.py index 9fd7f7fbebe8..cea7b87f70e1 100644 --- a/autogen/cache/cache.py +++ b/autogen/cache/cache.py @@ -1,6 +1,17 @@ -from typing import Dict, Any +from __future__ import annotations +from types import TracebackType +from typing import Dict, Any, Optional, Type, Union -from autogen.cache.cache_factory import CacheFactory +from .abstract_cache_base import AbstractCache + +from .cache_factory import CacheFactory + +import sys + +if sys.version_info >= (3, 11): + from typing import Self +else: + from typing_extensions import Self class Cache: @@ -19,12 +30,12 @@ class Cache: ALLOWED_CONFIG_KEYS = ["cache_seed", "redis_url", "cache_path_root"] @staticmethod - def redis(cache_seed=42, redis_url="redis://localhost:6379/0"): + def redis(cache_seed: Union[str, int] = 42, redis_url: str = "redis://localhost:6379/0") -> Cache: """ Create a Redis cache instance. Args: - cache_seed (int, optional): A seed for the cache. Defaults to 42. + cache_seed (Union[str, int], optional): A seed for the cache. Defaults to 42. redis_url (str, optional): The URL for the Redis server. Defaults to "redis://localhost:6379/0". Returns: @@ -33,12 +44,12 @@ def redis(cache_seed=42, redis_url="redis://localhost:6379/0"): return Cache({"cache_seed": cache_seed, "redis_url": redis_url}) @staticmethod - def disk(cache_seed=42, cache_path_root=".cache"): + def disk(cache_seed: Union[str, int] = 42, cache_path_root: str = ".cache") -> Cache: """ Create a Disk cache instance. Args: - cache_seed (int, optional): A seed for the cache. Defaults to 42. + cache_seed (Union[str, int], optional): A seed for the cache. Defaults to 42. cache_path_root (str, optional): The root path for the disk cache. Defaults to ".cache". Returns: @@ -70,7 +81,7 @@ def __init__(self, config: Dict[str, Any]): self.config.get("cache_path_root", None), ) - def __enter__(self): + def __enter__(self) -> AbstractCache: """ Enter the runtime context related to the cache object. @@ -79,7 +90,12 @@ def __enter__(self): """ return self.cache.__enter__() - def __exit__(self, exc_type, exc_value, traceback): + def __exit__( + self, + exc_type: Optional[Type[BaseException]], + exc_value: Optional[BaseException], + traceback: Optional[TracebackType], + ) -> None: """ Exit the runtime context related to the cache object. @@ -93,7 +109,7 @@ def __exit__(self, exc_type, exc_value, traceback): """ return self.cache.__exit__(exc_type, exc_value, traceback) - def get(self, key, default=None): + def get(self, key: str, default: Optional[Any] = None) -> Optional[Any]: """ Retrieve an item from the cache. @@ -107,7 +123,7 @@ def get(self, key, default=None): """ return self.cache.get(key, default) - def set(self, key, value): + def set(self, key: str, value: Any) -> None: """ Set an item in the cache. @@ -117,7 +133,7 @@ def set(self, key, value): """ self.cache.set(key, value) - def close(self): + def close(self) -> None: """ Close the cache. diff --git a/autogen/cache/cache_factory.py b/autogen/cache/cache_factory.py index 6f386abdb1ad..e3c50e9eb2b6 100644 --- a/autogen/cache/cache_factory.py +++ b/autogen/cache/cache_factory.py @@ -1,14 +1,15 @@ -from autogen.cache.disk_cache import DiskCache +from typing import Optional, Union +from .abstract_cache_base import AbstractCache +from .disk_cache import DiskCache -try: - from autogen.cache.redis_cache import RedisCache -except ImportError: - RedisCache = None +import logging class CacheFactory: @staticmethod - def cache_factory(seed, redis_url=None, cache_path_root=".cache"): + def cache_factory( + seed: Union[str, int], redis_url: Optional[str] = None, cache_path_root: str = ".cache" + ) -> AbstractCache: """ Factory function for creating cache instances. @@ -17,7 +18,7 @@ def cache_factory(seed, redis_url=None, cache_path_root=".cache"): a RedisCache instance is created. Otherwise, a DiskCache instance is used. Args: - seed (str): A string used as a seed or namespace for the cache. + seed (Union[str, int]): A string or int used as a seed or namespace for the cache. This could be useful for creating distinct cache instances or for namespacing keys in the cache. redis_url (str or None): The URL for the Redis server. If this is None @@ -40,7 +41,13 @@ def cache_factory(seed, redis_url=None, cache_path_root=".cache"): disk_cache = cache_factory("myseed", None) ``` """ - if RedisCache is not None and redis_url is not None: - return RedisCache(seed, redis_url) + if redis_url is not None: + try: + from .redis_cache import RedisCache + + return RedisCache(seed, redis_url) + except ImportError: + logging.warning("RedisCache is not available. Creating a DiskCache instance instead.") + return DiskCache(f"./{cache_path_root}/{seed}") else: return DiskCache(f"./{cache_path_root}/{seed}") diff --git a/autogen/cache/disk_cache.py b/autogen/cache/disk_cache.py index 52ebd5b5067a..2cca53e6d2f1 100644 --- a/autogen/cache/disk_cache.py +++ b/autogen/cache/disk_cache.py @@ -1,5 +1,13 @@ +from types import TracebackType +from typing import Any, Optional, Type, Union import diskcache from .abstract_cache_base import AbstractCache +import sys + +if sys.version_info >= (3, 11): + from typing import Self +else: + from typing_extensions import Self class DiskCache(AbstractCache): @@ -21,18 +29,18 @@ class DiskCache(AbstractCache): __exit__(self, exc_type, exc_value, traceback): Context management exit. """ - def __init__(self, seed): + def __init__(self, seed: Union[str, int]): """ Initialize the DiskCache instance. Args: - seed (str): A seed or namespace for the cache. This is used to create + seed (Union[str, int]): A seed or namespace for the cache. This is used to create a unique storage location for the cache data. """ self.cache = diskcache.Cache(seed) - def get(self, key, default=None): + def get(self, key: str, default: Optional[Any] = None) -> Optional[Any]: """ Retrieve an item from the cache. @@ -46,7 +54,7 @@ def get(self, key, default=None): """ return self.cache.get(key, default) - def set(self, key, value): + def set(self, key: str, value: Any) -> None: """ Set an item in the cache. @@ -56,7 +64,7 @@ def set(self, key, value): """ self.cache.set(key, value) - def close(self): + def close(self) -> None: """ Close the cache. @@ -65,7 +73,7 @@ def close(self): """ self.cache.close() - def __enter__(self): + def __enter__(self) -> Self: """ Enter the runtime context related to the object. @@ -74,7 +82,12 @@ def __enter__(self): """ return self - def __exit__(self, exc_type, exc_value, traceback): + def __exit__( + self, + exc_type: Optional[Type[BaseException]], + exc_value: Optional[BaseException], + traceback: Optional[TracebackType], + ) -> None: """ Exit the runtime context related to the object. diff --git a/autogen/cache/redis_cache.py b/autogen/cache/redis_cache.py index 88f7a36b9a28..d125d3ba203a 100644 --- a/autogen/cache/redis_cache.py +++ b/autogen/cache/redis_cache.py @@ -1,7 +1,15 @@ import pickle +from types import TracebackType +from typing import Any, Optional, Type, Union import redis +import sys from .abstract_cache_base import AbstractCache +if sys.version_info >= (3, 11): + from typing import Self +else: + from typing_extensions import Self + class RedisCache(AbstractCache): """ @@ -11,7 +19,7 @@ class RedisCache(AbstractCache): interface using the Redis database for caching data. Attributes: - seed (str): A seed or namespace used as a prefix for cache keys. + seed (Union[str, int]): A seed or namespace used as a prefix for cache keys. cache (redis.Redis): The Redis client used for caching. Methods: @@ -24,19 +32,19 @@ class RedisCache(AbstractCache): __exit__(self, exc_type, exc_value, traceback): Context management exit. """ - def __init__(self, seed, redis_url): + def __init__(self, seed: Union[str, int], redis_url: str): """ Initialize the RedisCache instance. Args: - seed (str): A seed or namespace for the cache. This is used as a prefix for all cache keys. + seed (Union[str, int]): A seed or namespace for the cache. This is used as a prefix for all cache keys. redis_url (str): The URL for the Redis server. """ self.seed = seed self.cache = redis.Redis.from_url(redis_url) - def _prefixed_key(self, key): + def _prefixed_key(self, key: str) -> str: """ Get a namespaced key for the cache. @@ -48,7 +56,7 @@ def _prefixed_key(self, key): """ return f"autogen:{self.seed}:{key}" - def get(self, key, default=None): + def get(self, key: str, default: Optional[Any] = None) -> Optional[Any]: """ Retrieve an item from the Redis cache. @@ -65,7 +73,7 @@ def get(self, key, default=None): return default return pickle.loads(result) - def set(self, key, value): + def set(self, key: str, value: Any) -> None: """ Set an item in the Redis cache. @@ -79,7 +87,7 @@ def set(self, key, value): serialized_value = pickle.dumps(value) self.cache.set(self._prefixed_key(key), serialized_value) - def close(self): + def close(self) -> None: """ Close the Redis client. @@ -87,7 +95,7 @@ def close(self): """ self.cache.close() - def __enter__(self): + def __enter__(self) -> Self: """ Enter the runtime context related to the object. @@ -96,7 +104,9 @@ def __enter__(self): """ return self - def __exit__(self, exc_type, exc_value, traceback): + def __exit__( + self, exc_type: Optional[Type[BaseException]], exc_val: Optional[BaseException], exc_tb: Optional[TracebackType] + ) -> None: """ Exit the runtime context related to the object. diff --git a/autogen/code_utils.py b/autogen/code_utils.py index 4abd28449251..57a817855f76 100644 --- a/autogen/code_utils.py +++ b/autogen/code_utils.py @@ -14,6 +14,8 @@ import docker +from .types import UserMessageImageContentPart, UserMessageTextContentPart + SENTINEL = object() DEFAULT_MODEL = "gpt-4" FAST_MODEL = "gpt-3.5-turbo" @@ -37,8 +39,8 @@ logger = logging.getLogger(__name__) -def content_str(content: Union[str, List[Dict[str, Any]], None]) -> str: - """Converts `content` into a string format. +def content_str(content: Union[str, List[Union[UserMessageTextContentPart, UserMessageImageContentPart]], None]) -> str: + """Converts the `content` field of an OpenAI merssage into a string format. This function processes content that may be a string, a list of mixed text and image URLs, or None, and converts it into a string. Text is directly appended to the result string, while image URLs are @@ -218,8 +220,7 @@ def get_powershell_command(): result = subprocess.run(["powershell", "$PSVersionTable.PSVersion.Major"], capture_output=True, text=True) if result.returncode == 0: return "powershell" - - except FileNotFoundError: + except (FileNotFoundError, NotADirectoryError): # This means that 'powershell' command is not found so now we try looking for 'pwsh' try: result = subprocess.run( @@ -227,22 +228,28 @@ def get_powershell_command(): ) if result.returncode == 0: return "pwsh" - - except FileNotFoundError: - if WIN32: - logging.warning("Neither powershell nor pwsh is installed but it is a Windows OS") - return None - - -powershell_command = get_powershell_command() - - -def _cmd(lang): - if lang.startswith("python") or lang in ["bash", "sh", powershell_command]: + except FileExistsError as e: + raise FileNotFoundError( + "Neither powershell.exe nor pwsh.exe is present in the system. " + "Please install PowerShell and try again. " + ) from e + except NotADirectoryError as e: + raise NotADirectoryError( + "PowerShell is either not installed or its path is not given " + "properly in the environment variable PATH. Please check the " + "path and try again. " + ) from e + except PermissionError as e: + raise PermissionError("No permission to run powershell.") from e + + +def _cmd(lang: str) -> str: + if lang.startswith("python") or lang in ["bash", "sh"]: return lang if lang in ["shell"]: return "sh" if lang in ["ps1", "pwsh", "powershell"]: + powershell_command = get_powershell_command() return powershell_command raise NotImplementedError(f"{lang} not recognized in code execution") @@ -453,9 +460,7 @@ def execute_code( image_list = ( ["python:3-slim", "python:3", "python:3-windowsservercore"] if use_docker is True - else [use_docker] - if isinstance(use_docker, str) - else use_docker + else [use_docker] if isinstance(use_docker, str) else use_docker ) for image in image_list: # check if the image exists diff --git a/autogen/coding/__init__.py b/autogen/coding/__init__.py index 7c223401d58a..2ba4e9b07344 100644 --- a/autogen/coding/__init__.py +++ b/autogen/coding/__init__.py @@ -1,5 +1,16 @@ from .base import CodeBlock, CodeExecutor, CodeExtractor, CodeResult from .factory import CodeExecutorFactory from .markdown_code_extractor import MarkdownCodeExtractor +from .local_commandline_code_executor import LocalCommandLineCodeExecutor +from .docker_commandline_code_executor import DockerCommandLineCodeExecutor -__all__ = ("CodeBlock", "CodeResult", "CodeExtractor", "CodeExecutor", "CodeExecutorFactory", "MarkdownCodeExtractor") +__all__ = ( + "CodeBlock", + "CodeResult", + "CodeExtractor", + "CodeExecutor", + "CodeExecutorFactory", + "MarkdownCodeExtractor", + "LocalCommandLineCodeExecutor", + "DockerCommandLineCodeExecutor", +) diff --git a/autogen/coding/base.py b/autogen/coding/base.py index 0bd373157c9f..f60ff0de85ee 100644 --- a/autogen/coding/base.py +++ b/autogen/coding/base.py @@ -1,10 +1,12 @@ -from typing import Any, Dict, List, Protocol, Union, runtime_checkable +from __future__ import annotations +from typing import Any, List, Literal, Mapping, Optional, Protocol, TypedDict, Union, runtime_checkable from pydantic import BaseModel, Field from ..agentchat.agent import LLMAgent +from ..types import UserMessageImageContentPart, UserMessageTextContentPart -__all__ = ("CodeBlock", "CodeResult", "CodeExtractor", "CodeExecutor") +__all__ = ("CodeBlock", "CodeResult", "CodeExtractor", "CodeExecutor", "CodeExecutionConfig") class CodeBlock(BaseModel): @@ -26,7 +28,9 @@ class CodeResult(BaseModel): class CodeExtractor(Protocol): """(Experimental) A code extractor class that extracts code blocks from a message.""" - def extract_code_blocks(self, message: Union[str, List[Dict[str, Any]], None]) -> List[CodeBlock]: + def extract_code_blocks( + self, message: Union[str, List[Union[UserMessageTextContentPart, UserMessageImageContentPart]], None] + ) -> List[CodeBlock]: """(Experimental) Extract code blocks from a message. Args: @@ -42,30 +46,6 @@ def extract_code_blocks(self, message: Union[str, List[Dict[str, Any]], None]) - class CodeExecutor(Protocol): """(Experimental) A code executor class that executes code blocks and returns the result.""" - class UserCapability(Protocol): - """(Experimental) An AgentCapability class that gives agent ability use this code executor.""" - - def add_to_agent(self, agent: LLMAgent) -> None: - ... # pragma: no cover - - @property - def user_capability(self) -> "CodeExecutor.UserCapability": - """(Experimental) Capability to use this code executor. - - The exported capability can be added to an agent to allow it to use this - code executor: - - ```python - code_executor = CodeExecutor() - agent = ConversableAgent("agent", ...) - code_executor.user_capability.add_to_agent(agent) - ``` - - A typical implementation is to update the system message of the agent with - instructions for how to use this code executor. - """ - ... # pragma: no cover - @property def code_extractor(self) -> CodeExtractor: """(Experimental) The code extractor used by this code executor.""" @@ -101,3 +81,27 @@ class IPythonCodeResult(CodeResult): default_factory=list, description="The list of files that the executed code blocks generated.", ) + + +CodeExecutionConfig = TypedDict( + "CodeExecutionConfig", + { + "executor": Union[Literal["ipython-embedded", "commandline-local"], CodeExecutor], + "last_n_messages": Union[int, Literal["auto"]], + "timeout": int, + "use_docker": Union[bool, str, List[str]], + "work_dir": str, + "ipython-embedded": Mapping[str, Any], + "commandline-local": Mapping[str, Any], + }, + total=False, +) + + +class CommandLineCodeResult(CodeResult): + """(Experimental) A code result class for command line code executor.""" + + code_file: Optional[str] = Field( + default=None, + description="The file that the executed code block was saved to.", + ) diff --git a/autogen/coding/docker_commandline_code_executor.py b/autogen/coding/docker_commandline_code_executor.py new file mode 100644 index 000000000000..f1db7cd07e74 --- /dev/null +++ b/autogen/coding/docker_commandline_code_executor.py @@ -0,0 +1,221 @@ +from __future__ import annotations +import atexit +from hashlib import md5 +import logging +from pathlib import Path +from time import sleep +from types import TracebackType +import uuid +from typing import Any, List, Optional, Type, Union +import docker +from docker.errors import ImageNotFound + +from .utils import _get_file_name_from_content, silence_pip +from .base import CommandLineCodeResult + +from ..code_utils import TIMEOUT_MSG, _cmd +from .base import CodeBlock, CodeExecutor, CodeExtractor +from .markdown_code_extractor import MarkdownCodeExtractor +import sys + +if sys.version_info >= (3, 11): + from typing import Self +else: + from typing_extensions import Self + + +def _wait_for_ready(container: Any, timeout: int = 60, stop_time: float = 0.1) -> None: + elapsed_time = 0.0 + while container.status != "running" and elapsed_time < timeout: + sleep(stop_time) + elapsed_time += stop_time + container.reload() + continue + if container.status != "running": + raise ValueError("Container failed to start") + + +__all__ = ("DockerCommandLineCodeExecutor",) + + +class DockerCommandLineCodeExecutor(CodeExecutor): + def __init__( + self, + image: str = "python:3-slim", + container_name: Optional[str] = None, + timeout: int = 60, + work_dir: Union[Path, str] = Path("."), + auto_remove: bool = True, + stop_container: bool = True, + ): + """(Experimental) A code executor class that executes code through + a command line environment in a Docker container. + + The executor first saves each code block in a file in the working + directory, and then executes the code file in the container. + The executor executes the code blocks in the order they are received. + Currently, the executor only supports Python and shell scripts. + For Python code, use the language "python" for the code block. + For shell scripts, use the language "bash", "shell", or "sh" for the code + block. + + Args: + image (_type_, optional): Docker image to use for code execution. + Defaults to "python:3-slim". + container_name (Optional[str], optional): Name of the Docker container + which is created. If None, will autogenerate a name. Defaults to None. + timeout (int, optional): The timeout for code execution. Defaults to 60. + work_dir (Union[Path, str], optional): The working directory for the code + execution. Defaults to Path("."). + auto_remove (bool, optional): If true, will automatically remove the Docker + container when it is stopped. Defaults to True. + stop_container (bool, optional): If true, will automatically stop the + container when stop is called, when the context manager exits or when + the Python process exits with atext. Defaults to True. + + Raises: + ValueError: On argument error, or if the container fails to start. + """ + + if timeout < 1: + raise ValueError("Timeout must be greater than or equal to 1.") + + if isinstance(work_dir, str): + work_dir = Path(work_dir) + + if not work_dir.exists(): + raise ValueError(f"Working directory {work_dir} does not exist.") + + client = docker.from_env() + + # Check if the image exists + try: + client.images.get(image) + except ImageNotFound: + logging.info(f"Pulling image {image}...") + # Let the docker exception escape if this fails. + client.images.pull(image) + + if container_name is None: + container_name = f"autogen-code-exec-{uuid.uuid4()}" + + # Start a container from the image, read to exec commands later + self._container = client.containers.create( + image, + name=container_name, + entrypoint="/bin/sh", + tty=True, + auto_remove=auto_remove, + volumes={str(work_dir.resolve()): {"bind": "/workspace", "mode": "rw"}}, + working_dir="/workspace", + ) + self._container.start() + + _wait_for_ready(self._container) + + def cleanup() -> None: + try: + container = client.containers.get(container_name) + container.stop() + except docker.errors.NotFound: + pass + + atexit.unregister(cleanup) + + if stop_container: + atexit.register(cleanup) + + self._cleanup = cleanup + + # Check if the container is running + if self._container.status != "running": + raise ValueError(f"Failed to start container from image {image}. Logs: {self._container.logs()}") + + self._timeout = timeout + self._work_dir: Path = work_dir + + @property + def timeout(self) -> int: + """(Experimental) The timeout for code execution.""" + return self._timeout + + @property + def work_dir(self) -> Path: + """(Experimental) The working directory for the code execution.""" + return self._work_dir + + @property + def code_extractor(self) -> CodeExtractor: + """(Experimental) Export a code extractor that can be used by an agent.""" + return MarkdownCodeExtractor() + + def execute_code_blocks(self, code_blocks: List[CodeBlock]) -> CommandLineCodeResult: + """(Experimental) Execute the code blocks and return the result. + + Args: + code_blocks (List[CodeBlock]): The code blocks to execute. + + Returns: + CommandlineCodeResult: The result of the code execution.""" + + if len(code_blocks) == 0: + raise ValueError("No code blocks to execute.") + + outputs = [] + files = [] + last_exit_code = 0 + for code_block in code_blocks: + lang = code_block.language + code = silence_pip(code_block.code, lang) + + try: + # Check if there is a filename comment + filename = _get_file_name_from_content(code, Path("/workspace")) + except ValueError: + return CommandLineCodeResult(exit_code=1, output="Filename is not in the workspace") + + if filename is None: + # create a file with an automatically generated name + code_hash = md5(code.encode()).hexdigest() + filename = f"tmp_code_{code_hash}.{'py' if lang.startswith('python') else lang}" + + code_path = self._work_dir / filename + with code_path.open("w", encoding="utf-8") as fout: + fout.write(code) + + command = ["timeout", str(self._timeout), _cmd(lang), filename] + + result = self._container.exec_run(command) + exit_code = result.exit_code + output = result.output.decode("utf-8") + if exit_code == 124: + output += "\n" + output += TIMEOUT_MSG + + outputs.append(output) + files.append(code_path) + + last_exit_code = exit_code + if exit_code != 0: + break + + code_file = str(files[0]) if files else None + return CommandLineCodeResult(exit_code=last_exit_code, output="".join(outputs), code_file=code_file) + + def restart(self) -> None: + """(Experimental) Restart the code executor.""" + self._container.restart() + if self._container.status != "running": + raise ValueError(f"Failed to restart container. Logs: {self._container.logs()}") + + def stop(self) -> None: + """(Experimental) Stop the code executor.""" + self._cleanup() + + def __enter__(self) -> Self: + return self + + def __exit__( + self, exc_type: Optional[Type[BaseException]], exc_val: Optional[BaseException], exc_tb: Optional[TracebackType] + ) -> None: + self.stop() diff --git a/autogen/coding/factory.py b/autogen/coding/factory.py index ceb01ca3dfaa..0c2d41b89dad 100644 --- a/autogen/coding/factory.py +++ b/autogen/coding/factory.py @@ -1,6 +1,4 @@ -from typing import Any, Dict - -from .base import CodeExecutor +from .base import CodeExecutor, CodeExecutionConfig __all__ = ("CodeExecutorFactory",) @@ -9,7 +7,7 @@ class CodeExecutorFactory: """(Experimental) A factory class for creating code executors.""" @staticmethod - def create(code_execution_config: Dict[str, Any]) -> CodeExecutor: + def create(code_execution_config: CodeExecutionConfig) -> CodeExecutor: """(Experimental) Get a code executor based on the code execution config. Args: @@ -30,16 +28,12 @@ def create(code_execution_config: Dict[str, Any]) -> CodeExecutor: # If the executor is already an instance of CodeExecutor, return it. return executor if executor == "ipython-embedded": - from .embedded_ipython_code_executor import EmbeddedIPythonCodeExecutor + from .jupyter.embedded_ipython_code_executor import EmbeddedIPythonCodeExecutor return EmbeddedIPythonCodeExecutor(**code_execution_config.get("ipython-embedded", {})) elif executor == "commandline-local": - from .local_commandline_code_executor import LocalCommandlineCodeExecutor - - return LocalCommandlineCodeExecutor(**code_execution_config.get("commandline-local", {})) - elif executor == "jupyter-local": - from .jupyter_code_executor import LocalJupyterCodeExecutor + from .local_commandline_code_executor import LocalCommandLineCodeExecutor - return LocalJupyterCodeExecutor(**code_execution_config.get("jupyter-local", {})) + return LocalCommandLineCodeExecutor(**code_execution_config.get("commandline-local", {})) else: raise ValueError(f"Unknown code executor {executor}") diff --git a/autogen/coding/jupyter/__init__.py b/autogen/coding/jupyter/__init__.py index 96c8cf4a65cc..5c1a9607f569 100644 --- a/autogen/coding/jupyter/__init__.py +++ b/autogen/coding/jupyter/__init__.py @@ -1,5 +1,16 @@ from .base import JupyterConnectable, JupyterConnectionInfo from .jupyter_client import JupyterClient from .local_jupyter_server import LocalJupyterServer +from .docker_jupyter_server import DockerJupyterServer +from .embedded_ipython_code_executor import EmbeddedIPythonCodeExecutor +from .jupyter_code_executor import JupyterCodeExecutor -__all__ = ["JupyterConnectable", "JupyterConnectionInfo", "JupyterClient", "LocalJupyterServer"] +__all__ = [ + "JupyterConnectable", + "JupyterConnectionInfo", + "JupyterClient", + "LocalJupyterServer", + "DockerJupyterServer", + "EmbeddedIPythonCodeExecutor", + "JupyterCodeExecutor", +] diff --git a/autogen/coding/jupyter/base.py b/autogen/coding/jupyter/base.py index 8e86897249ef..d896b6ac3cc5 100644 --- a/autogen/coding/jupyter/base.py +++ b/autogen/coding/jupyter/base.py @@ -7,9 +7,13 @@ class JupyterConnectionInfo: """(Experimental)""" host: str + """`str` - Host of the Jupyter gateway server""" use_https: bool + """`bool` - Whether to use HTTPS""" port: int + """`int` - Port of the Jupyter gateway server""" token: Optional[str] + """`Optional[str]` - Token for authentication. If None, no token is used""" @runtime_checkable @@ -18,4 +22,5 @@ class JupyterConnectable(Protocol): @property def connection_info(self) -> JupyterConnectionInfo: + """Return the connection information for this connectable.""" pass diff --git a/autogen/coding/jupyter/docker_jupyter_server.py b/autogen/coding/jupyter/docker_jupyter_server.py new file mode 100644 index 000000000000..3b9462186b9b --- /dev/null +++ b/autogen/coding/jupyter/docker_jupyter_server.py @@ -0,0 +1,157 @@ +from __future__ import annotations + +from pathlib import Path +import sys +from types import TracebackType +import uuid +from typing import Dict, Optional, Type, Union +import docker +import secrets +import io +import atexit +import logging + +from ..docker_commandline_code_executor import _wait_for_ready + +if sys.version_info >= (3, 11): + from typing import Self +else: + from typing_extensions import Self + + +from .jupyter_client import JupyterClient +from .base import JupyterConnectable, JupyterConnectionInfo + + +class DockerJupyterServer(JupyterConnectable): + DEFAULT_DOCKERFILE = """FROM quay.io/jupyter/docker-stacks-foundation + +SHELL ["/bin/bash", "-o", "pipefail", "-c"] + +USER ${NB_UID} +RUN mamba install --yes jupyter_kernel_gateway ipykernel && \ + mamba clean --all -f -y && \ + fix-permissions "${CONDA_DIR}" && \ + fix-permissions "/home/${NB_USER}" + +ENV TOKEN="UNSET" +CMD python -m jupyter kernelgateway --KernelGatewayApp.ip=0.0.0.0 \ + --KernelGatewayApp.port=8888 \ + --KernelGatewayApp.auth_token="${TOKEN}" \ + --JupyterApp.answer_yes=true \ + --JupyterWebsocketPersonality.list_kernels=true + +EXPOSE 8888 + +WORKDIR "${HOME}" +""" + + class GenerateToken: + pass + + def __init__( + self, + *, + custom_image_name: Optional[str] = None, + container_name: Optional[str] = None, + auto_remove: bool = True, + stop_container: bool = True, + docker_env: Dict[str, str] = {}, + token: Union[str, GenerateToken] = GenerateToken(), + ): + """Start a Jupyter kernel gateway server in a Docker container. + + Args: + custom_image_name (Optional[str], optional): Custom image to use. If this is None, + then the bundled image will be built and used. The default image is based on + quay.io/jupyter/docker-stacks-foundation and extended to include jupyter_kernel_gateway + container_name (Optional[str], optional): Name of the container to start. + A name will be generated if None. + auto_remove (bool, optional): If true the Docker container will be deleted + when it is stopped. + stop_container (bool, optional): If true the container will be stopped, + either by program exit or using the context manager + docker_env (Dict[str, str], optional): Extra environment variables to pass + to the running Docker container. + token (Union[str, GenerateToken], optional): Token to use for authentication. + If GenerateToken is used, a random token will be generated. Empty string + will be unauthenticated. + """ + if container_name is None: + container_name = f"autogen-jupyterkernelgateway-{uuid.uuid4()}" + + client = docker.from_env() + if custom_image_name is None: + image_name = "autogen-jupyterkernelgateway" + # Make sure the image exists + try: + client.images.get(image_name) + except docker.errors.ImageNotFound: + # Build the image + # Get this script directory + here = Path(__file__).parent + dockerfile = io.BytesIO(self.DEFAULT_DOCKERFILE.encode("utf-8")) + logging.info(f"Image {image_name} not found. Building it now.") + client.images.build(path=here, fileobj=dockerfile, tag=image_name) + logging.info(f"Image {image_name} built successfully.") + else: + image_name = custom_image_name + # Check if the image exists + try: + client.images.get(image_name) + except docker.errors.ImageNotFound: + raise ValueError(f"Custom image {image_name} does not exist") + + if isinstance(token, DockerJupyterServer.GenerateToken): + self._token = secrets.token_hex(32) + else: + self._token = token + + # Run the container + env = {"TOKEN": self._token} + env.update(docker_env) + container = client.containers.run( + image_name, + detach=True, + auto_remove=auto_remove, + environment=env, + publish_all_ports=True, + name=container_name, + ) + _wait_for_ready(container) + container_ports = container.ports + self._port = int(container_ports["8888/tcp"][0]["HostPort"]) + self._container_id = container.id + + def cleanup() -> None: + try: + inner_container = client.containers.get(container.id) + inner_container.stop() + except docker.errors.NotFound: + pass + + atexit.unregister(cleanup) + + if stop_container: + atexit.register(cleanup) + + self._cleanup_func = cleanup + self._stop_container = stop_container + + @property + def connection_info(self) -> JupyterConnectionInfo: + return JupyterConnectionInfo(host="127.0.0.1", use_https=False, port=self._port, token=self._token) + + def stop(self) -> None: + self._cleanup_func() + + def get_client(self) -> JupyterClient: + return JupyterClient(self.connection_info) + + def __enter__(self) -> Self: + return self + + def __exit__( + self, exc_type: Optional[Type[BaseException]], exc_val: Optional[BaseException], exc_tb: Optional[TracebackType] + ) -> None: + self.stop() diff --git a/autogen/coding/embedded_ipython_code_executor.py b/autogen/coding/jupyter/embedded_ipython_code_executor.py similarity index 72% rename from autogen/coding/embedded_ipython_code_executor.py rename to autogen/coding/jupyter/embedded_ipython_code_executor.py index a83dab23327a..0d647082a3cd 100644 --- a/autogen/coding/embedded_ipython_code_executor.py +++ b/autogen/coding/jupyter/embedded_ipython_code_executor.py @@ -11,9 +11,9 @@ from jupyter_client.kernelspec import KernelSpecManager from pydantic import BaseModel, Field, field_validator -from ..agentchat.agent import LLMAgent -from .base import CodeBlock, CodeExtractor, IPythonCodeResult -from .markdown_code_extractor import MarkdownCodeExtractor +from ...agentchat.agent import LLMAgent +from ..base import CodeBlock, CodeExtractor, IPythonCodeResult +from ..markdown_code_extractor import MarkdownCodeExtractor __all__ = "EmbeddedIPythonCodeExecutor" @@ -35,67 +35,11 @@ class EmbeddedIPythonCodeExecutor(BaseModel): kernel_name (str): The kernel name to use. Make sure it is installed. By default, it is "python3". output_dir (str): The directory to save output files, by default ".". - system_message_update (str): The system message update to add to the - agent that produces code. By default it is - `EmbeddedIPythonCodeExecutor.DEFAULT_SYSTEM_MESSAGE_UPDATE`. """ - DEFAULT_SYSTEM_MESSAGE_UPDATE: ClassVar[ - str - ] = """ -# IPython Coding Capability -You have been given coding capability to solve tasks using Python code in a stateful IPython kernel. -You are responsible for writing the code, and the user is responsible for executing the code. - -When you write Python code, put the code in a markdown code block with the language set to Python. -For example: -```python -x = 3 -``` -You can use the variable `x` in subsequent code blocks. -```python -print(x) -``` - -Write code incrementally and leverage the statefulness of the kernel to avoid repeating code. -Import libraries in a separate code block. -Define a function or a class in a separate code block. -Run code that produces output in a separate code block. -Run code that involves expensive operations like download, upload, and call external APIs in a separate code block. - -When your code produces an output, the output will be returned to you. -Because you have limited conversation memory, if your code creates an image, -the output will be a path to the image instead of the image itself. -""" - timeout: int = Field(default=60, ge=1, description="The timeout for code execution.") kernel_name: str = Field(default="python3", description="The kernel name to use. Make sure it is installed.") output_dir: str = Field(default=".", description="The directory to save output files.") - system_message_update: str = Field( - default=DEFAULT_SYSTEM_MESSAGE_UPDATE, - description="The system message update to the agent that produces code to be executed by this executor.", - ) - - class UserCapability: - """(Experimental) An AgentCapability class that gives agent ability use a stateful - IPython code executor. This capability can be added to an agent using - the `add_to_agent` method which append a system message update to the - agent's system message.""" - - def __init__(self, system_message_update: str): - self.system_message_update = system_message_update - - def add_to_agent(self, agent: LLMAgent) -> None: - """Add this capability to an agent by appending a system message - update to the agent's system message. - - **Currently we do not check for conflicts with existing content in - the agent's system message.** - - Args: - agent (LLMAgent): The agent to add the capability to. - """ - agent.update_system_message(agent.system_message + self.system_message_update) @field_validator("output_dir") @classmethod @@ -121,12 +65,6 @@ def __init__(self, **kwargs: Any): self._kernel_name = self.kernel_name self._output_dir = Path(self.output_dir) - @property - def user_capability(self) -> "EmbeddedIPythonCodeExecutor.UserCapability": - """(Experimental) Export a user capability for this executor that can be added to - an agent using the `add_to_agent` method.""" - return EmbeddedIPythonCodeExecutor.UserCapability(self.system_message_update) - @property def code_extractor(self) -> CodeExtractor: """(Experimental) Export a code extractor that can be used by an agent.""" diff --git a/autogen/coding/jupyter/jupyter_client.py b/autogen/coding/jupyter/jupyter_client.py index edecc415cd17..8f97ab824186 100644 --- a/autogen/coding/jupyter/jupyter_client.py +++ b/autogen/coding/jupyter/jupyter_client.py @@ -2,7 +2,7 @@ from dataclasses import dataclass from types import TracebackType -from typing import Any, Dict, List, Optional, cast +from typing import Any, Dict, List, Optional, Type, cast import sys if sys.version_info >= (3, 11): @@ -14,6 +14,7 @@ import uuid import datetime import requests +from requests.adapters import HTTPAdapter, Retry import websocket from websocket import WebSocket @@ -22,10 +23,16 @@ class JupyterClient: - """(Experimental) A client for communicating with a Jupyter gateway server.""" - def __init__(self, connection_info: JupyterConnectionInfo): + """(Experimental) A client for communicating with a Jupyter gateway server. + + Args: + connection_info (JupyterConnectionInfo): Connection information + """ self._connection_info = connection_info + self._session = requests.Session() + retries = Retry(total=5, backoff_factor=0.1) + self._session.mount("http://", HTTPAdapter(max_retries=retries)) def _get_headers(self) -> Dict[str, str]: if self._connection_info.token is None: @@ -40,11 +47,11 @@ def _get_ws_base_url(self) -> str: return f"ws://{self._connection_info.host}:{self._connection_info.port}" def list_kernel_specs(self) -> Dict[str, Dict[str, str]]: - response = requests.get(f"{self._get_api_base_url()}/api/kernelspecs", headers=self._get_headers()) + response = self._session.get(f"{self._get_api_base_url()}/api/kernelspecs", headers=self._get_headers()) return cast(Dict[str, Dict[str, str]], response.json()) def list_kernels(self) -> List[Dict[str, str]]: - response = requests.get(f"{self._get_api_base_url()}/api/kernels", headers=self._get_headers()) + response = self._session.get(f"{self._get_api_base_url()}/api/kernels", headers=self._get_headers()) return cast(List[Dict[str, str]], response.json()) def start_kernel(self, kernel_spec_name: str) -> str: @@ -57,15 +64,21 @@ def start_kernel(self, kernel_spec_name: str) -> str: str: ID of the started kernel """ - response = requests.post( + response = self._session.post( f"{self._get_api_base_url()}/api/kernels", headers=self._get_headers(), json={"name": kernel_spec_name}, ) return cast(str, response.json()["id"]) + def delete_kernel(self, kernel_id: str) -> None: + response = self._session.delete( + f"{self._get_api_base_url()}/api/kernels/{kernel_id}", headers=self._get_headers() + ) + response.raise_for_status() + def restart_kernel(self, kernel_id: str) -> None: - response = requests.post( + response = self._session.post( f"{self._get_api_base_url()}/api/kernels/{kernel_id}/restart", headers=self._get_headers() ) response.raise_for_status() @@ -98,8 +111,11 @@ def __enter__(self) -> Self: return self def __exit__( - self, exc_type: Optional[type[BaseException]], exc_val: Optional[BaseException], exc_tb: Optional[TracebackType] + self, exc_type: Optional[Type[BaseException]], exc_val: Optional[BaseException], exc_tb: Optional[TracebackType] ) -> None: + self.stop() + + def stop(self) -> None: self._websocket.close() def _send_message(self, *, content: Dict[str, Any], channel: str, message_type: str) -> str: diff --git a/autogen/coding/jupyter/jupyter_code_executor.py b/autogen/coding/jupyter/jupyter_code_executor.py new file mode 100644 index 000000000000..4d926773517f --- /dev/null +++ b/autogen/coding/jupyter/jupyter_code_executor.py @@ -0,0 +1,155 @@ +import base64 +import json +import os +from pathlib import Path +import re +from types import TracebackType +import uuid +from typing import Any, ClassVar, List, Optional, Type, Union +import sys + +from autogen.coding.utils import silence_pip + +if sys.version_info >= (3, 11): + from typing import Self +else: + from typing_extensions import Self + + +from ...agentchat.agent import LLMAgent +from ..base import CodeBlock, CodeExecutor, CodeExtractor, IPythonCodeResult +from ..markdown_code_extractor import MarkdownCodeExtractor +from .base import JupyterConnectable, JupyterConnectionInfo +from .jupyter_client import JupyterClient + + +class JupyterCodeExecutor(CodeExecutor): + def __init__( + self, + jupyter_server: Union[JupyterConnectable, JupyterConnectionInfo], + kernel_name: str = "python3", + timeout: int = 60, + output_dir: Union[Path, str] = Path("."), + ): + """(Experimental) A code executor class that executes code statefully using + a Jupyter server supplied to this class. + + Each execution is stateful and can access variables created from previous + executions in the same session. + + Args: + jupyter_server (Union[JupyterConnectable, JupyterConnectionInfo]): The Jupyter server to use. + timeout (int): The timeout for code execution, by default 60. + kernel_name (str): The kernel name to use. Make sure it is installed. + By default, it is "python3". + output_dir (str): The directory to save output files, by default ".". + """ + if timeout < 1: + raise ValueError("Timeout must be greater than or equal to 1.") + + if isinstance(output_dir, str): + output_dir = Path(output_dir) + + if not output_dir.exists(): + raise ValueError(f"Output directory {output_dir} does not exist.") + + if isinstance(jupyter_server, JupyterConnectable): + self._connection_info = jupyter_server.connection_info + elif isinstance(jupyter_server, JupyterConnectionInfo): + self._connection_info = jupyter_server + else: + raise ValueError("jupyter_server must be a JupyterConnectable or JupyterConnectionInfo.") + + self._jupyter_client = JupyterClient(self._connection_info) + available_kernels = self._jupyter_client.list_kernel_specs() + if kernel_name not in available_kernels["kernelspecs"]: + raise ValueError(f"Kernel {kernel_name} is not installed.") + + self._kernel_id = self._jupyter_client.start_kernel(kernel_name) + self._kernel_name = kernel_name + self._jupyter_kernel_client = self._jupyter_client.get_kernel_client(self._kernel_id) + self._timeout = timeout + self._output_dir = output_dir + + @property + def code_extractor(self) -> CodeExtractor: + """(Experimental) Export a code extractor that can be used by an agent.""" + return MarkdownCodeExtractor() + + def execute_code_blocks(self, code_blocks: List[CodeBlock]) -> IPythonCodeResult: + """(Experimental) Execute a list of code blocks and return the result. + + This method executes a list of code blocks as cells in the Jupyter kernel. + See: https://jupyter-client.readthedocs.io/en/stable/messaging.html + for the message protocol. + + Args: + code_blocks (List[CodeBlock]): A list of code blocks to execute. + + Returns: + IPythonCodeResult: The result of the code execution. + """ + self._jupyter_kernel_client.wait_for_ready() + outputs = [] + output_files = [] + for code_block in code_blocks: + code = silence_pip(code_block.code, code_block.language) + result = self._jupyter_kernel_client.execute(code, timeout_seconds=self._timeout) + if result.is_ok: + outputs.append(result.output) + for data in result.data_items: + if data.mime_type == "image/png": + path = self._save_image(data.data) + outputs.append(f"Image data saved to {path}") + output_files.append(path) + elif data.mime_type == "text/html": + path = self._save_html(data.data) + outputs.append(f"HTML data saved to {path}") + output_files.append(path) + else: + outputs.append(json.dumps(data.data)) + else: + return IPythonCodeResult( + exit_code=1, + output=f"ERROR: {result.output}", + ) + + return IPythonCodeResult( + exit_code=0, output="\n".join([str(output) for output in outputs]), output_files=output_files + ) + + def restart(self) -> None: + """(Experimental) Restart a new session.""" + self._jupyter_client.restart_kernel(self._kernel_id) + self._jupyter_kernel_client = self._jupyter_client.get_kernel_client(self._kernel_id) + + def _save_image(self, image_data_base64: str) -> str: + """Save image data to a file.""" + image_data = base64.b64decode(image_data_base64) + # Randomly generate a filename. + filename = f"{uuid.uuid4().hex}.png" + path = os.path.join(self._output_dir, filename) + with open(path, "wb") as f: + f.write(image_data) + return os.path.abspath(path) + + def _save_html(self, html_data: str) -> str: + """Save html data to a file.""" + # Randomly generate a filename. + filename = f"{uuid.uuid4().hex}.html" + path = os.path.join(self._output_dir, filename) + with open(path, "w") as f: + f.write(html_data) + return os.path.abspath(path) + + def stop(self) -> None: + """Stop the kernel.""" + self._jupyter_client.delete_kernel(self._kernel_id) + + def __enter__(self) -> Self: + return self + + def __exit__( + self, exc_type: Optional[Type[BaseException]], exc_val: Optional[BaseException], exc_tb: Optional[TracebackType] + ) -> None: + self.stop() diff --git a/autogen/coding/jupyter/local_jupyter_server.py b/autogen/coding/jupyter/local_jupyter_server.py index decbb3f430ed..0709f55ee4e8 100644 --- a/autogen/coding/jupyter/local_jupyter_server.py +++ b/autogen/coding/jupyter/local_jupyter_server.py @@ -1,7 +1,7 @@ from __future__ import annotations from types import TracebackType -from typing import Optional, Union, cast +from typing import Optional, Type, Union, cast import subprocess import signal import sys @@ -19,12 +19,6 @@ from .jupyter_client import JupyterClient -def _get_free_port() -> int: - with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: - s.bind(("", 0)) - return cast(int, s.getsockname()[1]) - - class LocalJupyterServer(JupyterConnectable): class GenerateToken: pass @@ -39,6 +33,17 @@ def __init__( log_max_bytes: int = 1048576, log_backup_count: int = 3, ): + """Runs a Jupyter Kernel Gateway server locally. + + Args: + ip (str, optional): IP address to bind to. Defaults to "127.0.0.1". + port (Optional[int], optional): Port to use, if None it automatically selects a port. Defaults to None. + token (Union[str, GenerateToken], optional): Token to use for Jupyter server. By default will generate a token. Using None will use no token for authentication. Defaults to GenerateToken(). + log_file (str, optional): File for Jupyter Kernel Gateway logs. Defaults to "jupyter_gateway.log". + log_level (str, optional): Level for Jupyter Kernel Gateway logs. Defaults to "INFO". + log_max_bytes (int, optional): Max logfile size. Defaults to 1048576. + log_backup_count (int, optional): Number of backups for rotating log. Defaults to 3. + """ # Remove as soon as https://github.com/jupyter-server/kernel_gateway/issues/398 is fixed if sys.platform == "win32": raise ValueError("LocalJupyterServer is not supported on Windows due to kernelgateway bug.") @@ -58,9 +63,6 @@ def __init__( ) self.ip = ip - if port is None: - port = _get_free_port() - self.port = port if isinstance(token, LocalJupyterServer.GenerateToken): token = secrets.token_hex(32) @@ -87,8 +89,6 @@ def __init__( "kernelgateway", "--KernelGatewayApp.ip", ip, - "--KernelGatewayApp.port", - str(port), "--KernelGatewayApp.auth_token", token, "--JupyterApp.answer_yes", @@ -98,6 +98,9 @@ def __init__( "--JupyterWebsocketPersonality.list_kernels", "true", ] + if port is not None: + args.extend(["--KernelGatewayApp.port", str(port)]) + args.extend(["--KernelGatewayApp.port_retries", "0"]) self._subprocess = subprocess.Popen(args, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True) # Satisfy mypy, we know this is not None because we passed PIPE @@ -108,11 +111,22 @@ def __init__( result = self._subprocess.poll() if result is not None: stderr += self._subprocess.stderr.read() - print(f"token=[[[[{token}]]]]") raise ValueError(f"Jupyter gateway server failed to start with exit code: {result}. stderr:\n{stderr}") line = self._subprocess.stderr.readline() stderr += line + + if "ERROR:" in line: + error_info = line.split("ERROR:")[1] + raise ValueError(f"Jupyter gateway server failed to start. {error_info}") + if "is available at" in line: + # We need to extract what port it settled on + # Example output: + # Jupyter Kernel Gateway 3.0.0 is available at http://127.0.0.1:8890 + if port is None: + port = int(line.split(":")[-1]) + self.port = port + break # Poll the subprocess to check if it is still running @@ -143,6 +157,6 @@ def __enter__(self) -> Self: return self def __exit__( - self, exc_type: Optional[type[BaseException]], exc_val: Optional[BaseException], exc_tb: Optional[TracebackType] + self, exc_type: Optional[Type[BaseException]], exc_val: Optional[BaseException], exc_tb: Optional[TracebackType] ) -> None: self.stop() diff --git a/autogen/coding/jupyter_code_executor.py b/autogen/coding/jupyter_code_executor.py deleted file mode 100644 index 551aea18aeba..000000000000 --- a/autogen/coding/jupyter_code_executor.py +++ /dev/null @@ -1,222 +0,0 @@ -import base64 -import json -import os -from pathlib import Path -import re -import uuid -from typing import Any, ClassVar, List, Union - -from pydantic import Field - - -from ..agentchat.agent import LLMAgent -from .base import CodeBlock, CodeExecutor, CodeExtractor, CodeResult, IPythonCodeResult -from .markdown_code_extractor import MarkdownCodeExtractor -from .jupyter import JupyterConnectable, JupyterConnectionInfo, LocalJupyterServer, JupyterClient - -__all__ = ("JupyterCodeExecutor", "LocalJupyterCodeExecutor") - - -class JupyterCodeExecutor(CodeExecutor): - """(Experimental) A code executor class that executes code statefully using an embedded - IPython kernel managed by this class. - - **This will execute LLM generated code on the local machine.** - - Each execution is stateful and can access variables created from previous - executions in the same session. The kernel must be installed before using - this class. The kernel can be installed using the following command: - `python -m ipykernel install --user --name {kernel_name}` - where `kernel_name` is the name of the kernel to install. - - Args: - timeout (int): The timeout for code execution, by default 60. - kernel_name (str): The kernel name to use. Make sure it is installed. - By default, it is "python3". - output_dir (str): The directory to save output files, by default ".". - system_message_update (str): The system message update to add to the - agent that produces code. By default it is - `JupyterCodeExecutor.DEFAULT_SYSTEM_MESSAGE_UPDATE`. - """ - - DEFAULT_SYSTEM_MESSAGE_UPDATE: ClassVar[ - str - ] = """ -# IPython Coding Capability -You have been given coding capability to solve tasks using Python code in a stateful IPython kernel. -You are responsible for writing the code, and the user is responsible for executing the code. - -When you write Python code, put the code in a markdown code block with the language set to Python. -For example: -```python -x = 3 -``` -You can use the variable `x` in subsequent code blocks. -```python -print(x) -``` - -Write code incrementally and leverage the statefulness of the kernel to avoid repeating code. -Import libraries in a separate code block. -Define a function or a class in a separate code block. -Run code that produces output in a separate code block. -Run code that involves expensive operations like download, upload, and call external APIs in a separate code block. - -When your code produces an output, the output will be returned to you. -Because you have limited conversation memory, if your code creates an image, -the output will be a path to the image instead of the image itself. -""" - - class UserCapability: - """(Experimental) An AgentCapability class that gives agent ability use a stateful - IPython code executor. This capability can be added to an agent using - the `add_to_agent` method which append a system message update to the - agent's system message.""" - - def __init__(self, system_message_update: str): - self._system_message_update = system_message_update - - def add_to_agent(self, agent: LLMAgent) -> None: - """Add this capability to an agent by appending a system message - update to the agent's system message. - - **Currently we do not check for conflicts with existing content in - the agent's system message.** - - Args: - agent (LLMAgent): The agent to add the capability to. - """ - agent.update_system_message(agent.system_message + self._system_message_update) - - def __init__( - self, - jupyter_server: Union[JupyterConnectable, JupyterConnectionInfo], - kernel_name: str = "python3", - timeout: int = 60, - output_dir: Union[Path, str] = Path("."), - system_message_update: str = DEFAULT_SYSTEM_MESSAGE_UPDATE, - ): - if timeout < 1: - raise ValueError("Timeout must be greater than or equal to 1.") - - if isinstance(output_dir, str): - output_dir = Path(output_dir) - - if not output_dir.exists(): - raise ValueError(f"Output directory {output_dir} does not exist.") - - if isinstance(jupyter_server, JupyterConnectable): - self._connection_info = jupyter_server.connection_info - elif isinstance(jupyter_server, JupyterConnectionInfo): - self._connection_info = jupyter_server - else: - raise ValueError("jupyter_server must be a JupyterConnectable or JupyterConnectionInfo.") - - self._jupyter_client = JupyterClient(self._connection_info) - available_kernels = self._jupyter_client.list_kernel_specs() - if kernel_name not in available_kernels["kernelspecs"]: - raise ValueError(f"Kernel {kernel_name} is not installed.") - - self._kernel_id = self._jupyter_client.start_kernel(kernel_name) - self._kernel_name = kernel_name - self._jupyter_kernel_client = self._jupyter_client.get_kernel_client(self._kernel_id) - self._timeout = timeout - self._output_dir = output_dir - self._system_message_update = system_message_update - - @property - def user_capability(self) -> "JupyterCodeExecutor.UserCapability": - """(Experimental) Export a user capability for this executor that can be added to - an agent using the `add_to_agent` method.""" - return JupyterCodeExecutor.UserCapability(self._system_message_update) - - @property - def code_extractor(self) -> CodeExtractor: - """(Experimental) Export a code extractor that can be used by an agent.""" - return MarkdownCodeExtractor() - - def execute_code_blocks(self, code_blocks: List[CodeBlock]) -> IPythonCodeResult: - """(Experimental) Execute a list of code blocks and return the result. - - This method executes a list of code blocks as cells in an IPython kernel - managed by this class. - See: https://jupyter-client.readthedocs.io/en/stable/messaging.html - for the message protocol. - - Args: - code_blocks (List[CodeBlock]): A list of code blocks to execute. - - Returns: - IPythonCodeResult: The result of the code execution. - """ - self._jupyter_kernel_client.wait_for_ready() - outputs = [] - output_files = [] - for code_block in code_blocks: - code = self._process_code(code_block.code) - result = self._jupyter_kernel_client.execute(code, timeout_seconds=self._timeout) - if result.is_ok: - outputs.append(result.output) - for data in result.data_items: - if data.mime_type == "image/png": - path = self._save_image(data.data) - outputs.append(f"Image data saved to {path}") - output_files.append(path) - elif data.mime_type == "text/html": - path = self._save_html(data.data) - outputs.append(f"HTML data saved to {path}") - output_files.append(path) - else: - outputs.append(json.dumps(data.data)) - else: - return IPythonCodeResult( - exit_code=1, - output=f"ERROR: {result.output}", - ) - - return IPythonCodeResult( - exit_code=0, output="\n".join([str(output) for output in outputs]), output_files=output_files - ) - - def restart(self) -> None: - """(Experimental) Restart a new session.""" - self._jupyter_client.restart_kernel(self._kernel_id) - self._jupyter_kernel_client = self._jupyter_client.get_kernel_client(self._kernel_id) - - def _save_image(self, image_data_base64: str) -> str: - """Save image data to a file.""" - image_data = base64.b64decode(image_data_base64) - # Randomly generate a filename. - filename = f"{uuid.uuid4().hex}.png" - path = os.path.join(self._output_dir, filename) - with open(path, "wb") as f: - f.write(image_data) - return os.path.abspath(path) - - def _save_html(self, html_data: str) -> str: - """Save html data to a file.""" - # Randomly generate a filename. - filename = f"{uuid.uuid4().hex}.html" - path = os.path.join(self._output_dir, filename) - with open(path, "w") as f: - f.write(html_data) - return os.path.abspath(path) - - def _process_code(self, code: str) -> str: - """Process code before execution.""" - # Find lines that start with `! pip install` and make sure "-qqq" flag is added. - lines = code.split("\n") - for i, line in enumerate(lines): - # use regex to find lines that start with `! pip install` or `!pip install`. - match = re.search(r"^! ?pip install", line) - if match is not None: - if "-qqq" not in line: - lines[i] = line.replace(match.group(0), match.group(0) + " -qqq") - return "\n".join(lines) - - -class LocalJupyterCodeExecutor(JupyterCodeExecutor): - def __init__(self, **kwargs: Any): - """Creates a LocalJupyterServer and passes it to JupyterCodeExecutor, see JupyterCodeExecutor for args""" - jupyter_server = LocalJupyterServer() - super().__init__(jupyter_server=jupyter_server, **kwargs) diff --git a/autogen/coding/local_commandline_code_executor.py b/autogen/coding/local_commandline_code_executor.py index 25f4e5ebe4f5..b927638865b4 100644 --- a/autogen/coding/local_commandline_code_executor.py +++ b/autogen/coding/local_commandline_code_executor.py @@ -1,110 +1,76 @@ +from hashlib import md5 import os +from pathlib import Path import re +import sys import uuid import warnings -from typing import Any, ClassVar, List, Optional - -from pydantic import BaseModel, Field, field_validator +from typing import ClassVar, List, Union from ..agentchat.agent import LLMAgent -from ..code_utils import execute_code -from .base import CodeBlock, CodeExtractor, CodeResult +from ..code_utils import TIMEOUT_MSG, WIN32, _cmd, execute_code +from .base import CodeBlock, CodeExecutor, CodeExtractor, CommandLineCodeResult from .markdown_code_extractor import MarkdownCodeExtractor -try: - from termcolor import colored -except ImportError: - - def colored(x: Any, *args: Any, **kwargs: Any) -> str: # type: ignore[misc] - return x # type: ignore[no-any-return] - - -__all__ = ( - "LocalCommandlineCodeExecutor", - "CommandlineCodeResult", -) - - -class CommandlineCodeResult(CodeResult): - """(Experimental) A code result class for command line code executor.""" - - code_file: Optional[str] = Field( - default=None, - description="The file that the executed code block was saved to.", - ) - - -class LocalCommandlineCodeExecutor(BaseModel): - """(Experimental) A code executor class that executes code through a local command line - environment. - - **This will execute LLM generated code on the local machine.** - - Each code block is saved as a file and executed in a separate process in - the working directory, and a unique file is generated and saved in the - working directory for each code block. - The code blocks are executed in the order they are received. - Command line code is sanitized using regular expression match against a list of dangerous commands in order to prevent self-destructive - commands from being executed which may potentially affect the users environment. - Currently the only supported languages is Python and shell scripts. - For Python code, use the language "python" for the code block. - For shell scripts, use the language "bash", "shell", or "sh" for the code - block. - - Args: - timeout (int): The timeout for code execution. Default is 60. - work_dir (str): The working directory for the code execution. If None, - a default working directory will be used. The default working - directory is the current directory ".". - system_message_update (str): The system message update for agent that - produces code to run on this executor. - Default is `LocalCommandlineCodeExecutor.DEFAULT_SYSTEM_MESSAGE_UPDATE`. - """ - - DEFAULT_SYSTEM_MESSAGE_UPDATE: ClassVar[ - str - ] = """ -You have been given coding capability to solve tasks using Python code. -In the following cases, suggest python code (in a python coding block) or shell script (in a sh coding block) for the user to execute. - 1. When you need to collect info, use the code to output the info you need, for example, browse or search the web, download/read a file, print the content of a webpage or a file, get the current date/time, check the operating system. After sufficient info is printed and the task is ready to be solved based on your language skill, you can solve the task by yourself. - 2. When you need to perform some task with code, use the code to perform the task and output the result. Finish the task smartly. -Solve the task step by step if you need to. If a plan is not provided, explain your plan first. Be clear which step uses code, and which step uses your language skill. -When using code, you must indicate the script type in the code block. The user cannot provide any other feedback or perform any other action beyond executing the code you suggest. The user can't modify your code. So do not suggest incomplete code which requires users to modify. Don't use a code block if it's not intended to be executed by the user. -If you want the user to save the code in a file before executing it, put # filename: inside the code block as the first line. Don't include multiple code blocks in one response. Do not ask users to copy and paste the result. Instead, use 'print' function for the output when relevant. Check the execution result returned by the user. -""" - - timeout: int = Field(default=60, ge=1, description="The timeout for code execution.") - work_dir: str = Field(default=".", description="The working directory for the code execution.") - system_message_update: str = Field( - default=DEFAULT_SYSTEM_MESSAGE_UPDATE, - description="The system message update for agent that produces code to run on this executor.", - ) - - class UserCapability: - """An AgentCapability class that gives agent ability use a command line - code executor via a system message update. This capability can be added - to an agent using the `add_to_agent` method.""" - - def __init__(self, system_message_update: str) -> None: - self.system_message_update = system_message_update - - def add_to_agent(self, agent: LLMAgent) -> None: - """Add this capability to an agent by updating the agent's system - message.""" - agent.update_system_message(agent.system_message + self.system_message_update) - - @field_validator("work_dir") - @classmethod - def _check_work_dir(cls, v: str) -> str: - if os.path.exists(v): - return v - raise ValueError(f"Working directory {v} does not exist.") +from .utils import _get_file_name_from_content, silence_pip + +import subprocess + +__all__ = ("LocalCommandLineCodeExecutor",) + + +class LocalCommandLineCodeExecutor(CodeExecutor): + SUPPORTED_LANGUAGES: ClassVar[List[str]] = ["bash", "shell", "sh", "pwsh", "powershell", "ps1", "python"] + + def __init__( + self, + timeout: int = 60, + work_dir: Union[Path, str] = Path("."), + ): + """(Experimental) A code executor class that executes code through a local command line + environment. + + **This will execute LLM generated code on the local machine.** + + Each code block is saved as a file and executed in a separate process in + the working directory, and a unique file is generated and saved in the + working directory for each code block. + The code blocks are executed in the order they are received. + Command line code is sanitized using regular expression match against a list of dangerous commands in order to prevent self-destructive + commands from being executed which may potentially affect the users environment. + Currently the only supported languages is Python and shell scripts. + For Python code, use the language "python" for the code block. + For shell scripts, use the language "bash", "shell", or "sh" for the code + block. + + Args: + timeout (int): The timeout for code execution. Default is 60. + work_dir (str): The working directory for the code execution. If None, + a default working directory will be used. The default working + directory is the current directory ".". + """ + + if timeout < 1: + raise ValueError("Timeout must be greater than or equal to 1.") + + if isinstance(work_dir, str): + work_dir = Path(work_dir) + + if not work_dir.exists(): + raise ValueError(f"Working directory {work_dir} does not exist.") + + self._timeout = timeout + self._work_dir: Path = work_dir + + @property + def timeout(self) -> int: + """(Experimental) The timeout for code execution.""" + return self._timeout @property - def user_capability(self) -> "LocalCommandlineCodeExecutor.UserCapability": - """Export a user capability for this executor that can be added to - an agent that produces code to be executed by this executor.""" - return LocalCommandlineCodeExecutor.UserCapability(self.system_message_update) + def work_dir(self) -> Path: + """(Experimental) The working directory for the code execution.""" + return self._work_dir @property def code_extractor(self) -> CodeExtractor: @@ -133,58 +99,138 @@ def sanitize_command(lang: str, code: str) -> None: if re.search(pattern, code): raise ValueError(f"Potentially dangerous command detected: {message}") - def execute_code_blocks(self, code_blocks: List[CodeBlock]) -> CommandlineCodeResult: + def execute_code_blocks(self, code_blocks: List[CodeBlock]) -> CommandLineCodeResult: """(Experimental) Execute the code blocks and return the result. Args: code_blocks (List[CodeBlock]): The code blocks to execute. Returns: - CommandlineCodeResult: The result of the code execution.""" + CommandLineCodeResult: The result of the code execution.""" logs_all = "" - for i, code_block in enumerate(code_blocks): + file_names = [] + for code_block in code_blocks: lang, code = code_block.language, code_block.code + lang = lang.lower() - LocalCommandlineCodeExecutor.sanitize_command(lang, code) - - print( - colored( - f"\n>>>>>>>> EXECUTING CODE BLOCK {i} (inferred language is {lang})...", - "red", - ), - flush=True, - ) - filename_uuid = uuid.uuid4().hex - filename = None - if lang in ["bash", "shell", "sh", "pwsh", "powershell", "ps1"]: - filename = f"{filename_uuid}.{lang}" - exitcode, logs, _ = execute_code( - code=code, - lang=lang, - timeout=self.timeout, - work_dir=self.work_dir, - filename=filename, - use_docker=False, - ) - elif lang in ["python", "Python"]: - filename = f"{filename_uuid}.py" - exitcode, logs, _ = execute_code( - code=code, - lang="python", - timeout=self.timeout, - work_dir=self.work_dir, - filename=filename, - use_docker=False, - ) - else: + LocalCommandLineCodeExecutor.sanitize_command(lang, code) + code = silence_pip(code, lang) + + if WIN32 and lang in ["sh", "shell"]: + lang = "ps1" + + if lang not in self.SUPPORTED_LANGUAGES: # In case the language is not supported, we return an error message. - exitcode, logs, _ = (1, f"unknown language {lang}", None) - logs_all += "\n" + logs + exitcode = 1 + logs_all += "\n" + f"unknown language {lang}" + break + + try: + # Check if there is a filename comment + filename = _get_file_name_from_content(code, self._work_dir) + except ValueError: + return CommandLineCodeResult(exit_code=1, output="Filename is not in the workspace") + + if filename is None: + # create a file with an automatically generated name + code_hash = md5(code.encode()).hexdigest() + filename = f"tmp_code_{code_hash}.{'py' if lang.startswith('python') else lang}" + + written_file = (self._work_dir / filename).resolve() + with written_file.open("w", encoding="utf-8") as f: + f.write(code) + file_names.append(written_file) + + program = sys.executable if lang.startswith("python") else _cmd(lang) + cmd = [program, str(written_file.absolute())] + + try: + result = subprocess.run( + cmd, cwd=self._work_dir, capture_output=True, text=True, timeout=float(self._timeout) + ) + except subprocess.TimeoutExpired: + logs_all += "\n" + TIMEOUT_MSG + # Same exit code as the timeout command on linux. + exitcode = 124 + break + + logs_all += result.stderr + logs_all += result.stdout + exitcode = result.returncode + if exitcode != 0: break - code_filename = os.path.join(self.work_dir, filename) if filename is not None else None - return CommandlineCodeResult(exit_code=exitcode, output=logs_all, code_file=code_filename) + + code_file = str(file_names[0]) if len(file_names) > 0 else None + return CommandLineCodeResult(exit_code=exitcode, output=logs_all, code_file=code_file) def restart(self) -> None: """(Experimental) Restart the code executor.""" warnings.warn("Restarting local command line code executor is not supported. No action is taken.") + + +# From stack overflow: https://stackoverflow.com/a/52087847/2214524 +class _DeprecatedClassMeta(type): + def __new__(cls, name, bases, classdict, *args, **kwargs): # type: ignore[no-untyped-def] + alias = classdict.get("_DeprecatedClassMeta__alias") + + if alias is not None: + + def new(cls, *args, **kwargs): # type: ignore[no-untyped-def] + alias = getattr(cls, "_DeprecatedClassMeta__alias") + + if alias is not None: + warnings.warn( + "{} has been renamed to {}, the alias will be " + "removed in the future".format(cls.__name__, alias.__name__), + DeprecationWarning, + stacklevel=2, + ) + + return alias(*args, **kwargs) + + classdict["__new__"] = new + classdict["_DeprecatedClassMeta__alias"] = alias + + fixed_bases = [] + + for b in bases: + alias = getattr(b, "_DeprecatedClassMeta__alias", None) + + if alias is not None: + warnings.warn( + "{} has been renamed to {}, the alias will be " + "removed in the future".format(b.__name__, alias.__name__), + DeprecationWarning, + stacklevel=2, + ) + + # Avoid duplicate base classes. + b = alias or b + if b not in fixed_bases: + fixed_bases.append(b) + + fixed_bases = tuple(fixed_bases) # type: ignore[assignment] + + return super().__new__(cls, name, fixed_bases, classdict, *args, **kwargs) # type: ignore[call-overload] + + def __instancecheck__(cls, instance): # type: ignore[no-untyped-def] + return any(cls.__subclasscheck__(c) for c in {type(instance), instance.__class__}) # type: ignore[no-untyped-call] + + def __subclasscheck__(cls, subclass): # type: ignore[no-untyped-def] + if subclass is cls: + return True + else: + return issubclass(subclass, getattr(cls, "_DeprecatedClassMeta__alias")) + + +class LocalCommandlineCodeExecutor(metaclass=_DeprecatedClassMeta): + """LocalCommandlineCodeExecutor renamed to LocalCommandLineCodeExecutor""" + + _DeprecatedClassMeta__alias = LocalCommandLineCodeExecutor + + +class CommandlineCodeResult(metaclass=_DeprecatedClassMeta): + """CommandlineCodeResult renamed to CommandLineCodeResult""" + + _DeprecatedClassMeta__alias = CommandLineCodeResult diff --git a/autogen/coding/markdown_code_extractor.py b/autogen/coding/markdown_code_extractor.py index cee107fdb6ab..58ad4a09e2b6 100644 --- a/autogen/coding/markdown_code_extractor.py +++ b/autogen/coding/markdown_code_extractor.py @@ -2,15 +2,18 @@ from typing import Any, Dict, List, Optional, Union from ..code_utils import CODE_BLOCK_PATTERN, UNKNOWN, content_str, infer_lang -from .base import CodeBlock +from .base import CodeBlock, CodeExtractor +from ..types import UserMessageImageContentPart, UserMessageTextContentPart __all__ = ("MarkdownCodeExtractor",) -class MarkdownCodeExtractor: +class MarkdownCodeExtractor(CodeExtractor): """(Experimental) A class that extracts code blocks from a message using Markdown syntax.""" - def extract_code_blocks(self, message: Union[str, List[Dict[str, Any]], None]) -> List[CodeBlock]: + def extract_code_blocks( + self, message: Union[str, List[Union[UserMessageTextContentPart, UserMessageImageContentPart]], None] + ) -> List[CodeBlock]: """(Experimental) Extract code blocks from a message. If no code blocks are found, return an empty list. diff --git a/autogen/coding/utils.py b/autogen/coding/utils.py new file mode 100644 index 000000000000..0a7c5a7785d9 --- /dev/null +++ b/autogen/coding/utils.py @@ -0,0 +1,43 @@ +# Will return the filename relative to the workspace path +import re +from pathlib import Path +from typing import Optional + + +# Raises ValueError if the file is not in the workspace +def _get_file_name_from_content(code: str, workspace_path: Path) -> Optional[str]: + first_line = code.split("\n")[0] + # TODO - support other languages + if first_line.startswith("# filename:"): + filename = first_line.split(":")[1].strip() + + # Handle relative paths in the filename + path = Path(filename) + if not path.is_absolute(): + path = workspace_path / path + path = path.resolve() + # Throws an error if the file is not in the workspace + relative = path.relative_to(workspace_path.resolve()) + return str(relative) + + return None + + +def silence_pip(code: str, lang: str) -> str: + """Apply -qqq flag to pip install commands.""" + if lang == "python": + regex = r"^! ?pip install" + elif lang in ["bash", "shell", "sh", "pwsh", "powershell", "ps1"]: + regex = r"^pip install" + else: + return code + + # Find lines that start with pip install and make sure "-qqq" flag is added. + lines = code.split("\n") + for i, line in enumerate(lines): + # use regex to find lines that start with pip install. + match = re.search(regex, line) + if match is not None: + if "-qqq" not in line: + lines[i] = line.replace(match.group(0), match.group(0) + " -qqq") + return "\n".join(lines) diff --git a/autogen/exception_utils.py b/autogen/exception_utils.py index c4f0544a0e55..a5353f1f8bdf 100644 --- a/autogen/exception_utils.py +++ b/autogen/exception_utils.py @@ -1,3 +1,40 @@ +from typing import Any + + class AgentNameConflict(Exception): - def __init__(self, msg="Found multiple agents with the same name.", *args, **kwargs): + def __init__(self, msg: str = "Found multiple agents with the same name.", *args: Any, **kwargs: Any): super().__init__(msg, *args, **kwargs) + + +class NoEligibleSpeaker(Exception): + """Exception raised for early termination of a GroupChat.""" + + def __init__(self, message: str = "No eligible speakers."): + self.message = message + super().__init__(self.message) + + +class SenderRequired(Exception): + """Exception raised when the sender is required but not provided.""" + + def __init__(self, message: str = "Sender is required but not provided."): + self.message = message + super().__init__(self.message) + + +class InvalidCarryOverType(Exception): + """Exception raised when the carryover type is invalid.""" + + def __init__( + self, message: str = "Carryover should be a string or a list of strings. Not adding carryover to the message." + ): + self.message = message + super().__init__(self.message) + + +class UndefinedNextAgent(Exception): + """Exception raised when the provided next agents list does not overlap with agents in the group.""" + + def __init__(self, message: str = "The provided agents list does not overlap with agents in the group."): + self.message = message + super().__init__(self.message) diff --git a/autogen/formatting_utils.py b/autogen/formatting_utils.py new file mode 100644 index 000000000000..be8d8aaa562b --- /dev/null +++ b/autogen/formatting_utils.py @@ -0,0 +1,70 @@ +from __future__ import annotations + +from typing import Iterable, Literal + +try: + from termcolor import colored +except ImportError: + # termcolor is an optional dependency - if it cannot be imported then no color is used. + # Alternatively the envvar NO_COLOR can be used to disable color. + # To allow for proper typing and for termcolor to be optional we need to re-define the types used in the lib here. + # This is the direct function definition from termcolor. + Attribute = Literal[ + "bold", + "dark", + "underline", + "blink", + "reverse", + "concealed", + ] + + Highlight = Literal[ + "on_black", + "on_grey", + "on_red", + "on_green", + "on_yellow", + "on_blue", + "on_magenta", + "on_cyan", + "on_light_grey", + "on_dark_grey", + "on_light_red", + "on_light_green", + "on_light_yellow", + "on_light_blue", + "on_light_magenta", + "on_light_cyan", + "on_white", + ] + + Color = Literal[ + "black", + "grey", + "red", + "green", + "yellow", + "blue", + "magenta", + "cyan", + "light_grey", + "dark_grey", + "light_red", + "light_green", + "light_yellow", + "light_blue", + "light_magenta", + "light_cyan", + "white", + ] + + def colored( + text: object, + color: Color | None = None, + on_color: Highlight | None = None, + attrs: Iterable[Attribute] | None = None, + *, + no_color: bool | None = None, + force_color: bool | None = None, + ) -> str: + return str(text) diff --git a/autogen/graph_utils.py b/autogen/graph_utils.py index ce8c273513b2..a84fc89f9cf2 100644 --- a/autogen/graph_utils.py +++ b/autogen/graph_utils.py @@ -1,4 +1,4 @@ -from typing import Dict, List, Optional, Union +from typing import Dict, List import logging from autogen.agentchat.groupchat import Agent diff --git a/autogen/logger/base_logger.py b/autogen/logger/base_logger.py index fff78d824355..97508b4883c0 100644 --- a/autogen/logger/base_logger.py +++ b/autogen/logger/base_logger.py @@ -1,7 +1,7 @@ from __future__ import annotations from abc import ABC, abstractmethod -from typing import Dict, TYPE_CHECKING, Union +from typing import Any, Dict, List, TYPE_CHECKING, Union import sqlite3 import uuid @@ -11,6 +11,9 @@ if TYPE_CHECKING: from autogen import ConversableAgent, OpenAIWrapper +ConfigItem = Dict[str, Union[str, List[str]]] +LLMConfig = Dict[str, Union[None, float, int, ConfigItem, List[ConfigItem]]] + class BaseLogger(ABC): @abstractmethod @@ -25,10 +28,11 @@ def start(self) -> str: @abstractmethod def log_chat_completion( + self, invocation_id: uuid.UUID, client_id: int, wrapper_id: int, - request: Dict, + request: Dict[str, Union[float, str, List[Dict[str, str]]]], response: Union[str, ChatCompletion], is_cached: int, cost: float, @@ -54,7 +58,7 @@ def log_chat_completion( ... @abstractmethod - def log_new_agent(agent: ConversableAgent, init_args: Dict) -> None: + def log_new_agent(self, agent: ConversableAgent, init_args: Dict[str, Any]) -> None: """ Log the birth of a new agent. @@ -65,7 +69,7 @@ def log_new_agent(agent: ConversableAgent, init_args: Dict) -> None: ... @abstractmethod - def log_new_wrapper(wrapper: OpenAIWrapper, init_args: Dict) -> None: + def log_new_wrapper(self, wrapper: OpenAIWrapper, init_args: Dict[str, Union[LLMConfig, List[LLMConfig]]]) -> None: """ Log the birth of a new OpenAIWrapper. @@ -76,7 +80,9 @@ def log_new_wrapper(wrapper: OpenAIWrapper, init_args: Dict) -> None: ... @abstractmethod - def log_new_client(client: Union[AzureOpenAI, OpenAI], wrapper: OpenAIWrapper, init_args: Dict) -> None: + def log_new_client( + self, client: Union[AzureOpenAI, OpenAI], wrapper: OpenAIWrapper, init_args: Dict[str, Any] + ) -> None: """ Log the birth of a new OpenAIWrapper. @@ -87,14 +93,14 @@ def log_new_client(client: Union[AzureOpenAI, OpenAI], wrapper: OpenAIWrapper, i ... @abstractmethod - def stop() -> None: + def stop(self) -> None: """ Close the connection to the logging database, and stop logging. """ ... @abstractmethod - def get_connection() -> Union[sqlite3.Connection]: + def get_connection(self) -> Union[None, sqlite3.Connection]: """ Return a connection to the logging database. """ diff --git a/autogen/logger/logger_utils.py b/autogen/logger/logger_utils.py index 955adcf18def..7dfcbf7283b9 100644 --- a/autogen/logger/logger_utils.py +++ b/autogen/logger/logger_utils.py @@ -5,14 +5,14 @@ __all__ = ("get_current_ts", "to_dict") -def get_current_ts(): +def get_current_ts() -> str: return datetime.datetime.utcnow().strftime("%Y-%m-%d %H:%M:%S.%f") def to_dict( obj: Union[int, float, str, bool, Dict[Any, Any], List[Any], Tuple[Any, ...], Any], - exclude: Tuple[str] = (), - no_recursive: Tuple[str] = (), + exclude: Tuple[str, ...] = (), + no_recursive: Tuple[Any, ...] = (), ) -> Any: if isinstance(obj, (int, float, str, bool)): return obj diff --git a/autogen/logger/sqlite_logger.py b/autogen/logger/sqlite_logger.py index 2fbefc16952e..227d57f91ee1 100644 --- a/autogen/logger/sqlite_logger.py +++ b/autogen/logger/sqlite_logger.py @@ -4,7 +4,7 @@ import logging import os import sqlite3 -import sys +import threading import uuid from autogen.logger.base_logger import BaseLogger @@ -12,17 +12,15 @@ from openai import OpenAI, AzureOpenAI from openai.types.chat import ChatCompletion -from typing import Dict, TYPE_CHECKING, Union +from typing import Any, Dict, List, TYPE_CHECKING, Tuple, Union +from .base_logger import LLMConfig if TYPE_CHECKING: from autogen import ConversableAgent, OpenAIWrapper - -# this is a pointer to the module object instance itself -this = sys.modules[__name__] -this._session_id = None logger = logging.getLogger(__name__) +lock = threading.Lock() __all__ = ("SqliteLogger",) @@ -30,19 +28,19 @@ class SqliteLogger(BaseLogger): schema_version = 1 - def __init__(self, config): - self.con = None - self.cur = None + def __init__(self, config: Dict[str, Any]): self.config = config - def start(self) -> str: - dbname = self.config["dbname"] if "dbname" in self.config else "logs.db" - this._session_id = str(uuid.uuid4()) - try: - self.con = sqlite3.connect(dbname) + self.dbname = self.config.get("dbname", "logs.db") + self.con = sqlite3.connect(self.dbname, check_same_thread=False) self.cur = self.con.cursor() + self.session_id = str(uuid.uuid4()) + except sqlite3.Error as e: + logger.error(f"[SqliteLogger] Failed to connect to database {self.dbname}: {e}") + def start(self) -> str: + try: query = """ CREATE TABLE IF NOT EXISTS chat_completions( id INTEGER PRIMARY KEY, @@ -57,8 +55,7 @@ def start(self) -> str: start_time DATETIME DEFAULT CURRENT_TIMESTAMP, end_time DATETIME DEFAULT CURRENT_TIMESTAMP) """ - self.cur.execute(query) - self.con.commit() + self._run_query(query=query) query = """ CREATE TABLE IF NOT EXISTS agents ( @@ -72,8 +69,7 @@ class TEXT, -- type or class name of age timestamp DATETIME DEFAULT CURRENT_TIMESTAMP, UNIQUE(agent_id, session_id)) """ - self.cur.execute(query) - self.con.commit() + self._run_query(query=query) query = """ CREATE TABLE IF NOT EXISTS oai_wrappers ( @@ -84,8 +80,7 @@ class TEXT, -- type or class name of age timestamp DATETIME DEFAULT CURRENT_TIMESTAMP, UNIQUE(wrapper_id, session_id)) """ - self.cur.execute(query) - self.con.commit() + self._run_query(query=query) query = """ CREATE TABLE IF NOT EXISTS oai_clients ( @@ -98,8 +93,7 @@ class TEXT, -- type or class name of cli timestamp DATETIME DEFAULT CURRENT_TIMESTAMP, UNIQUE(client_id, session_id)) """ - self.cur.execute(query) - self.con.commit() + self._run_query(query=query) query = """ CREATE TABLE IF NOT EXISTS version ( @@ -107,31 +101,30 @@ class TEXT, -- type or class name of cli version_number INTEGER NOT NULL -- version of the logging database ); """ - self.cur.execute(query) - self.con.commit() + self._run_query(query=query) current_verion = self._get_current_db_version() if current_verion is None: - self.cur.execute( - "INSERT INTO version (id, version_number) VALUES (1, ?);", (SqliteLogger.schema_version,) + self._run_query( + query="INSERT INTO version (id, version_number) VALUES (1, ?);", args=(SqliteLogger.schema_version,) ) - self.con.commit() - - self._apply_migration(dbname) + self._apply_migration() except sqlite3.Error as e: logger.error(f"[SqliteLogger] start logging error: {e}") finally: - return this._session_id + return self.session_id - def _get_current_db_version(self): + def _get_current_db_version(self) -> Union[None, int]: self.cur.execute("SELECT version_number FROM version ORDER BY id DESC LIMIT 1") result = self.cur.fetchone() - return result[0] if result else None + return result[0] if result is not None else None # Example migration script name format: 002_update_agents_table.sql - def _apply_migration(self, dbname, migrations_dir="./migrations"): + def _apply_migration(self, migrations_dir: str = "./migrations") -> None: current_version = self._get_current_db_version() + current_version = SqliteLogger.schema_version if current_version is None else current_version + if os.path.isdir(migrations_dir): migrations = sorted(os.listdir(migrations_dir)) else: @@ -143,19 +136,48 @@ def _apply_migration(self, dbname, migrations_dir="./migrations"): for script in migrations_to_apply: with open(script, "r") as f: migration_sql = f.read() - self.con.executescript(migration_sql) - self.con.commit() + self._run_query_script(script=migration_sql) latest_version = int(script.split("_")[0]) - self.cur.execute("UPDATE version SET version_number = ? WHERE id = 1", (latest_version)) + query = "UPDATE version SET version_number = ? WHERE id = 1" + args = (latest_version,) + self._run_query(query=query, args=args) + + def _run_query(self, query: str, args: Tuple[Any, ...] = ()) -> None: + """ + Executes a given SQL query. + + Args: + query (str): The SQL query to execute. + args (Tuple): The arguments to pass to the SQL query. + """ + try: + with lock: + self.cur.execute(query, args) + self.con.commit() + except Exception as e: + logger.error("[sqlite logger]Error running query with query %s and args %s: %s", query, args, e) + + def _run_query_script(self, script: str) -> None: + """ + Executes SQL script. + + Args: + script (str): SQL script to execute. + """ + try: + with lock: + self.cur.executescript(script) self.con.commit() + except Exception as e: + logger.error("[sqlite logger]Error running query script %s: %s", script, e) def log_chat_completion( self, invocation_id: uuid.UUID, client_id: int, wrapper_id: int, - request: Dict, + request: Dict[str, Union[float, str, List[Dict[str, str]]]], response: Union[str, ChatCompletion], is_cached: int, cost: float, @@ -176,28 +198,22 @@ def log_chat_completion( invocation_id, client_id, wrapper_id, session_id, request, response, is_cached, cost, start_time, end_time ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?) """ + args = ( + invocation_id, + client_id, + wrapper_id, + self.session_id, + json.dumps(request), + response_messages, + is_cached, + cost, + start_time, + end_time, + ) - try: - self.cur.execute( - query, - ( - invocation_id, - client_id, - wrapper_id, - this._session_id, - json.dumps(request), - response_messages, - is_cached, - cost, - start_time, - end_time, - ), - ) - self.con.commit() - except sqlite3.Error as e: - logger.error(f"[SqliteLogger] log_chat_completion error: {e}") + self._run_query(query=query, args=args) - def log_new_agent(self, agent: ConversableAgent, init_args: Dict) -> None: + def log_new_agent(self, agent: ConversableAgent, init_args: Dict[str, Any]) -> None: from autogen import Agent if self.con is None: @@ -206,7 +222,7 @@ def log_new_agent(self, agent: ConversableAgent, init_args: Dict) -> None: args = to_dict( init_args, exclude=("self", "__class__", "api_key", "organization", "base_url", "azure_endpoint"), - no_recursive=(Agent), + no_recursive=(Agent,), ) # We do an upsert since both the superclass and subclass may call this method (in that order) @@ -219,24 +235,18 @@ class = excluded.class, init_args = excluded.init_args, timestamp = excluded.timestamp """ - try: - self.cur.execute( - query, - ( - id(agent), - agent.client.wrapper_id if hasattr(agent, "client") and agent.client is not None else "", - this._session_id, - agent.name if hasattr(agent, "name") and agent.name is not None else "", - type(agent).__name__, - json.dumps(args), - get_current_ts(), - ), - ) - self.con.commit() - except sqlite3.Error as e: - logger.error(f"[SqliteLogger] log_new_agent error: {e}") + args = ( + id(agent), + agent.client.wrapper_id if hasattr(agent, "client") and agent.client is not None else "", + self.session_id, + agent.name if hasattr(agent, "name") and agent.name is not None else "", + type(agent).__name__, + json.dumps(args), + get_current_ts(), + ) + self._run_query(query=query, args=args) - def log_new_wrapper(self, wrapper: OpenAIWrapper, init_args: Dict) -> None: + def log_new_wrapper(self, wrapper: OpenAIWrapper, init_args: Dict[str, Union[LLMConfig, List[LLMConfig]]]) -> None: if self.con is None: return @@ -248,21 +258,17 @@ def log_new_wrapper(self, wrapper: OpenAIWrapper, init_args: Dict) -> None: INSERT INTO oai_wrappers (wrapper_id, session_id, init_args, timestamp) VALUES (?, ?, ?, ?) ON CONFLICT (wrapper_id, session_id) DO NOTHING; """ - try: - self.cur.execute( - query, - ( - id(wrapper), - this._session_id, - json.dumps(args), - get_current_ts(), - ), - ) - self.con.commit() - except sqlite3.Error as e: - logger.error(f"[SqliteLogger] log_new_wrapper error: {e}") + args = ( + id(wrapper), + self.session_id, + json.dumps(args), + get_current_ts(), + ) + self._run_query(query=query, args=args) - def log_new_client(self, client: Union[AzureOpenAI, OpenAI], wrapper: OpenAIWrapper, init_args: Dict) -> None: + def log_new_client( + self, client: Union[AzureOpenAI, OpenAI], wrapper: OpenAIWrapper, init_args: Dict[str, Any] + ) -> None: if self.con is None: return @@ -274,28 +280,21 @@ def log_new_client(self, client: Union[AzureOpenAI, OpenAI], wrapper: OpenAIWrap INSERT INTO oai_clients (client_id, wrapper_id, session_id, class, init_args, timestamp) VALUES (?, ?, ?, ?, ?, ?) ON CONFLICT (client_id, session_id) DO NOTHING; """ - try: - self.cur.execute( - query, - ( - id(client), - id(wrapper), - this._session_id, - type(client).__name__, - json.dumps(args), - get_current_ts(), - ), - ) - self.con.commit() - except sqlite3.Error as e: - logger.error(f"[SqliteLogger] log_new_client error: {e}") + args = ( + id(client), + id(wrapper), + self.session_id, + type(client).__name__, + json.dumps(args), + get_current_ts(), + ) + self._run_query(query=query, args=args) def stop(self) -> None: if self.con: self.con.close() - self.con = None - self.cur = None - def get_connection(self) -> sqlite3.Connection: + def get_connection(self) -> Union[None, sqlite3.Connection]: if self.con: return self.con + return None diff --git a/autogen/oai/client.py b/autogen/oai/client.py index 59e598153309..0ecc050fac6c 100644 --- a/autogen/oai/client.py +++ b/autogen/oai/client.py @@ -83,8 +83,7 @@ class Message(Protocol): choices: List[Choice] model: str - def create(self, **params: Any) -> ModelClientResponseProtocol: - ... # pragma: no cover + def create(self, params: Dict[str, Any]) -> ModelClientResponseProtocol: ... # pragma: no cover def message_retrieval( self, response: ModelClientResponseProtocol @@ -97,8 +96,7 @@ def message_retrieval( """ ... # pragma: no cover - def cost(self, response: ModelClientResponseProtocol) -> float: - ... # pragma: no cover + def cost(self, response: ModelClientResponseProtocol) -> float: ... # pragma: no cover @staticmethod def get_usage(response: ModelClientResponseProtocol) -> Dict: @@ -356,6 +354,7 @@ def __init__(self, *, config_list: Optional[List[Dict[str, Any]]] = None, **base base_config: base config. It can contain both keyword arguments for openai client and additional kwargs. + When using OpenAI or Azure OpenAI endpoints, please specify a non-empty 'model' either in `base_config` or in each config of `config_list`. """ if logging_enabled(): diff --git a/autogen/oai/completion.py b/autogen/oai/completion.py index 7029e6d10e50..43ccd0b3bc2b 100644 --- a/autogen/oai/completion.py +++ b/autogen/oai/completion.py @@ -792,7 +792,7 @@ def yes_or_no_filter(context, config, response): raise ERROR # Warn if a config list was provided but was empty - if type(config_list) is list and len(config_list) == 0: + if isinstance(config_list, list) and len(config_list) == 0: logger.warning( "Completion was provided with a config_list, but the list was empty. Adopting default OpenAI behavior, which reads from the 'model' parameter instead." ) @@ -866,12 +866,14 @@ def _construct_params(cls, context, config, prompt=None, messages=None, allow_fo if prompt is None: params["messages"] = ( [ - { - **m, - "content": cls.instantiate(m["content"], context, allow_format_str_template), - } - if m.get("content") - else m + ( + { + **m, + "content": cls.instantiate(m["content"], context, allow_format_str_template), + } + if m.get("content") + else m + ) for m in messages ] if context diff --git a/autogen/oai/openai_utils.py b/autogen/oai/openai_utils.py index e1f0c15a58a8..411ac03f003f 100644 --- a/autogen/oai/openai_utils.py +++ b/autogen/oai/openai_utils.py @@ -8,15 +8,8 @@ from dotenv import find_dotenv, load_dotenv -try: - from openai import OpenAI - from openai.types.beta.assistant import Assistant - - ERROR = None -except ImportError: - ERROR = ImportError("Please install openai>=1 to use autogen.OpenAIWrapper.") - OpenAI = object - Assistant = object +from openai import OpenAI +from openai.types.beta.assistant import Assistant NON_CACHE_KEY = ["api_key", "base_url", "api_type", "api_version"] DEFAULT_AZURE_API_VERSION = "2024-02-15-preview" @@ -75,7 +68,7 @@ def get_key(config: Dict[str, Any]) -> str: return json.dumps(config, sort_keys=True) -def is_valid_api_key(api_key: str): +def is_valid_api_key(api_key: str) -> bool: """Determine if input is valid OpenAI API key. Args: @@ -89,8 +82,11 @@ def is_valid_api_key(api_key: str): def get_config_list( - api_keys: List, base_urls: Optional[List] = None, api_type: Optional[str] = None, api_version: Optional[str] = None -) -> List[Dict]: + api_keys: List[str], + base_urls: Optional[List[str]] = None, + api_type: Optional[str] = None, + api_version: Optional[str] = None, +) -> List[Dict[str, Any]]: """Get a list of configs for OpenAI API client. Args: @@ -143,7 +139,7 @@ def config_list_openai_aoai( openai_api_base_file: Optional[str] = "base_openai.txt", aoai_api_base_file: Optional[str] = "base_aoai.txt", exclude: Optional[str] = None, -) -> List[Dict]: +) -> List[Dict[str, Any]]: """Get a list of configs for OpenAI API client (including Azure or local model deployments that support OpenAI's chat completion API). This function constructs configurations by reading API keys and base URLs from environment variables or text files. @@ -250,8 +246,8 @@ def config_list_openai_aoai( else [] ) # process openai base urls - base_urls = os.environ.get("OPENAI_API_BASE", None) - base_urls = base_urls if base_urls is None else base_urls.split("\n") + base_urls_env_var = os.environ.get("OPENAI_API_BASE", None) + base_urls = base_urls_env_var if base_urls_env_var is None else base_urls_env_var.split("\n") openai_config = ( get_config_list( # Assuming OpenAI API_KEY in os.environ["OPENAI_API_KEY"] @@ -271,8 +267,8 @@ def config_list_from_models( aoai_api_key_file: Optional[str] = "key_aoai.txt", aoai_api_base_file: Optional[str] = "base_aoai.txt", exclude: Optional[str] = None, - model_list: Optional[list] = None, -) -> List[Dict]: + model_list: Optional[List[str]] = None, +) -> List[Dict[str, Any]]: """ Get a list of configs for API calls with models specified in the model list. @@ -338,7 +334,7 @@ def config_list_gpt4_gpt35( aoai_api_key_file: Optional[str] = "key_aoai.txt", aoai_api_base_file: Optional[str] = "base_aoai.txt", exclude: Optional[str] = None, -) -> List[Dict]: +) -> List[Dict[str, Any]]: """Get a list of configs for 'gpt-4' followed by 'gpt-3.5-turbo' API calls. Args: @@ -361,7 +357,10 @@ def config_list_gpt4_gpt35( ) -def filter_config(config_list, filter_dict): +def filter_config( + config_list: List[Dict[str, Any]], + filter_dict: Optional[Dict[str, Union[List[Union[str, None]], Set[Union[str, None]]]]], +) -> List[Dict[str, Any]]: """ This function filters `config_list` by checking each configuration dictionary against the criteria specified in `filter_dict`. A configuration dictionary is retained if for every @@ -426,7 +425,7 @@ def filter_config(config_list, filter_dict): dictionaries that do not have that key will also be considered a match. """ - def _satisfies(config_value, acceptable_values): + def _satisfies(config_value: Any, acceptable_values: Any) -> bool: if isinstance(config_value, list): return bool(set(config_value) & set(acceptable_values)) # Non-empty intersection else: @@ -445,7 +444,7 @@ def config_list_from_json( env_or_file: str, file_location: Optional[str] = "", filter_dict: Optional[Dict[str, Union[List[Union[str, None]], Set[Union[str, None]]]]] = None, -) -> List[Dict]: +) -> List[Dict[str, Any]]: """ Retrieves a list of API configurations from a JSON stored in an environment variable or a file. @@ -497,15 +496,22 @@ def config_list_from_json( else: # The environment variable does not exist. # So, `env_or_file` is a filename. We should use the file location. - config_list_path = os.path.join(file_location, env_or_file) + if file_location is not None: + config_list_path = os.path.join(file_location, env_or_file) + else: + config_list_path = env_or_file + with open(config_list_path) as json_file: config_list = json.load(json_file) return filter_config(config_list, filter_dict) def get_config( - api_key: str, base_url: Optional[str] = None, api_type: Optional[str] = None, api_version: Optional[str] = None -) -> Dict: + api_key: Optional[str], + base_url: Optional[str] = None, + api_type: Optional[str] = None, + api_version: Optional[str] = None, +) -> Dict[str, Any]: """ Constructs a configuration dictionary for a single model with the provided API configurations. @@ -544,7 +550,9 @@ def get_config( def config_list_from_dotenv( - dotenv_file_path: Optional[str] = None, model_api_key_map: Optional[dict] = None, filter_dict: Optional[dict] = None + dotenv_file_path: Optional[str] = None, + model_api_key_map: Optional[Dict[str, Any]] = None, + filter_dict: Optional[Dict[str, Union[List[Union[str, None]], Set[Union[str, None]]]]] = None, ) -> List[Dict[str, Union[str, Set[str]]]]: """ Load API configurations from a specified .env file or environment variables and construct a list of configurations. @@ -582,9 +590,10 @@ def config_list_from_dotenv( else: logging.warning(f"The specified .env file {dotenv_path} does not exist.") else: - dotenv_path = find_dotenv() - if not dotenv_path: + dotenv_path_str = find_dotenv() + if not dotenv_path_str: logging.warning("No .env file found. Loading configurations from environment variables.") + dotenv_path = Path(dotenv_path_str) load_dotenv(dotenv_path) # Ensure the model_api_key_map is not None to prevent TypeErrors during key assignment. @@ -647,8 +656,6 @@ def retrieve_assistants_by_name(client: OpenAI, name: str) -> List[Assistant]: """ Return the assistants with the given name from OAI assistant API """ - if ERROR: - raise ERROR assistants = client.beta.assistants.list() candidate_assistants = [] for assistant in assistants.data: diff --git a/autogen/runtime_logging.py b/autogen/runtime_logging.py index 6f17810c9cc2..94d7460cd30f 100644 --- a/autogen/runtime_logging.py +++ b/autogen/runtime_logging.py @@ -1,8 +1,11 @@ from __future__ import annotations from autogen.logger.logger_factory import LoggerFactory +from autogen.logger.base_logger import LLMConfig + +import logging import sqlite3 -from typing import Any, Dict, Optional, TYPE_CHECKING, Union +from typing import Any, Dict, List, Optional, TYPE_CHECKING, Union import uuid from openai import OpenAI, AzureOpenAI @@ -11,6 +14,8 @@ if TYPE_CHECKING: from autogen import ConversableAgent, OpenAIWrapper +logger = logging.getLogger(__name__) + autogen_logger = None is_logging = False @@ -19,39 +24,57 @@ def start(logger_type: str = "sqlite", config: Optional[Dict[str, Any]] = None) global autogen_logger global is_logging - if autogen_logger is None: - autogen_logger = LoggerFactory.get_logger(logger_type=logger_type, config=config) - - session_id = autogen_logger.start() - is_logging = True + autogen_logger = LoggerFactory.get_logger(logger_type=logger_type, config=config) - return session_id + try: + session_id = autogen_logger.start() + is_logging = True + except Exception as e: + logger.error(f"[runtime logging] Failed to start logging: {e}") + finally: + return session_id def log_chat_completion( invocation_id: uuid.UUID, client_id: int, wrapper_id: int, - request: Dict, + request: Dict[str, Union[float, str, List[Dict[str, str]]]], response: Union[str, ChatCompletion], is_cached: int, cost: float, start_time: str, ) -> None: + if autogen_logger is None: + logger.error("[runtime logging] log_chat_completion: autogen logger is None") + return + autogen_logger.log_chat_completion( invocation_id, client_id, wrapper_id, request, response, is_cached, cost, start_time ) -def log_new_agent(agent: ConversableAgent, init_args: Dict) -> None: +def log_new_agent(agent: ConversableAgent, init_args: Dict[str, Any]) -> None: + if autogen_logger is None: + logger.error("[runtime logging] log_new_agent: autogen logger is None") + return + autogen_logger.log_new_agent(agent, init_args) -def log_new_wrapper(wrapper: OpenAIWrapper, init_args: Dict) -> None: +def log_new_wrapper(wrapper: OpenAIWrapper, init_args: Dict[str, Union[LLMConfig, List[LLMConfig]]]) -> None: + if autogen_logger is None: + logger.error("[runtime logging] log_new_wrapper: autogen logger is None") + return + autogen_logger.log_new_wrapper(wrapper, init_args) -def log_new_client(client: Union[AzureOpenAI, OpenAI], wrapper: OpenAIWrapper, init_args: Dict) -> None: +def log_new_client(client: Union[AzureOpenAI, OpenAI], wrapper: OpenAIWrapper, init_args: Dict[str, Any]) -> None: + if autogen_logger is None: + logger.error("[runtime logging] log_new_client: autogen logger is None") + return + autogen_logger.log_new_client(client, wrapper, init_args) @@ -62,7 +85,11 @@ def stop() -> None: is_logging = False -def get_connection() -> Union[sqlite3.Connection]: +def get_connection() -> Union[None, sqlite3.Connection]: + if autogen_logger is None: + logger.error("[runtime logging] get_connection: autogen logger is None") + return None + return autogen_logger.get_connection() diff --git a/autogen/types.py b/autogen/types.py new file mode 100644 index 000000000000..77ca70b70b97 --- /dev/null +++ b/autogen/types.py @@ -0,0 +1,12 @@ +from typing import Dict, List, Literal, TypedDict, Union + + +class UserMessageTextContentPart(TypedDict): + type: Literal["text"] + text: str + + +class UserMessageImageContentPart(TypedDict): + type: Literal["image_url"] + # Ignoring the other "detail param for now" + image_url: Dict[Literal["url"], str] diff --git a/autogen/version.py b/autogen/version.py index ddc77a88056e..198d6db62730 100644 --- a/autogen/version.py +++ b/autogen/version.py @@ -1 +1 @@ -__version__ = "0.2.15" +__version__ = "0.2.20" diff --git a/notebook/agentchat_MathChat.ipynb b/notebook/agentchat_MathChat.ipynb index bfc44fcd1bcb..8a234ede013a 100644 --- a/notebook/agentchat_MathChat.ipynb +++ b/notebook/agentchat_MathChat.ipynb @@ -19,21 +19,17 @@ "\n", "MathChat is an experimental conversational framework for math problem solving. In this notebook, we demonstrate how to use MathChat to solve math problems. MathChat uses the `AssistantAgent` and `MathUserProxyAgent`, which is similar to the usage of `AssistantAgent` and `UserProxyAgent` in other notebooks (e.g., [Automated Task Solving with Code Generation, Execution & Debugging](https://github.com/microsoft/autogen/blob/main/notebook/agentchat_auto_feedback_from_code_execution.ipynb)). Essentially, `MathUserProxyAgent` implements a different auto reply mechanism corresponding to the MathChat prompts. You can find more details in the paper [An Empirical Study on Challenging Math Problem Solving with GPT-4](https://arxiv.org/abs/2306.01337) or the [blogpost](https://microsoft.github.io/autogen/blog/2023/06/28/MathChat).\n", "\n", - "## Requirements\n", + "````{=mdx}\n", + ":::info Requirements\n", + "Some extra dependencies are needed for this notebook, which can be installed via pip:\n", "\n", - "AutoGen requires `Python>=3.8`. To run this notebook example, please install the [mathchat] option.\n", "```bash\n", - "pip install \"pyautogen[mathchat]\"\n", - "```" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# %pip install \"pyautogen[mathchat]~=0.1.1\"" + "pip install pyautogen[mathchat]\n", + "```\n", + "\n", + "For more information, please refer to the [installation guide](/docs/installation/).\n", + ":::\n", + "````" ] }, { @@ -48,7 +44,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -61,17 +57,9 @@ " \"OAI_CONFIG_LIST\",\n", " filter_dict={\n", " \"model\": {\n", - " \"gpt-4\",\n", - " \"gpt4\",\n", - " \"gpt-4-32k\",\n", - " \"gpt-4-32k-0314\",\n", - " \"gpt-4-32k-v0314\",\n", + " \"gpt-4-1106-preview\",\n", " \"gpt-3.5-turbo\",\n", - " \"gpt-3.5-turbo-16k\",\n", - " \"gpt-3.5-turbo-0301\",\n", - " \"chatgpt-35-turbo-0301\",\n", - " \"gpt-35-turbo-v0301\",\n", - " \"gpt\",\n", + " \"gpt-35-turbo\",\n", " }\n", " },\n", ")" @@ -120,12 +108,12 @@ "source": [ "## Construct agents for MathChat\n", "\n", - "We start by initializing the `AssistantAgent` and `MathUserProxyAgent`. The system message needs to be set to \"You are a helpful assistant.\" for MathChat. The detailed instructions are given in the user message. Later we will use the `MathUserProxyAgent.generate_init_message` to combine the instructions and a math problem for an initial message to be sent to the LLM assistant." + "We start by initializing the `AssistantAgent` and `MathUserProxyAgent`. The system message needs to be set to \"You are a helpful assistant.\" for MathChat. The detailed instructions are given in the user message. Later we will use the `MathUserProxyAgent.message_generator` to combine the instructions and a math problem for an initial message to be sent to the LLM assistant." ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -170,9 +158,244 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[33mmathproxyagent\u001b[0m (to assistant):\n", + "\n", + "Let's use Python to solve a math problem.\n", + "\n", + "Query requirements:\n", + "You should always use the 'print' function for the output and use fractions/radical forms instead of decimals.\n", + "You can use packages like sympy to help you.\n", + "You must follow the formats below to write your code:\n", + "```python\n", + "# your code\n", + "```\n", + "\n", + "First state the key idea to solve the problem. You may choose from three ways to solve the problem:\n", + "Case 1: If the problem can be solved with Python code directly, please write a program to solve it. You can enumerate all possible arrangements if needed.\n", + "Case 2: If the problem is mostly reasoning, you can solve it by yourself directly.\n", + "Case 3: If the problem cannot be handled in the above two ways, please follow this process:\n", + "1. Solve the problem step by step (do not over-divide the steps).\n", + "2. Take out any queries that can be asked through Python (for example, any calculations or equations that can be calculated).\n", + "3. Wait for me to give the results.\n", + "4. Continue if you think the result is correct. If the result is invalid or unexpected, please correct your query or reasoning.\n", + "\n", + "After all the queries are run and you get the answer, put the answer in \\boxed{}.\n", + "\n", + "Problem:\n", + "Find all $x$ that satisfy the inequality $(2x+10)(x+3)<(3x+9)(x+8)$. Express your answer in interval notation.\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33massistant\u001b[0m (to mathproxyagent):\n", + "\n", + "Key idea: To solve the inequality $(2x+10)(x+3)<(3x+9)(x+8)$, we will expand both sides, simplify the resulting expression, and then solve for $x$. This process may involve factoring a quadratic expression and finding the critical points where the inequality may change signs. We will analyze the intervals between these points to determine where the inequality holds true.\n", + "\n", + "Let's solve the problem step by step:\n", + "\n", + "Step 1: Expand both sides of the inequality.\n", + "\n", + "```python\n", + "from sympy import symbols, expand\n", + "\n", + "x = symbols('x')\n", + "lhs = expand((2*x + 10) * (x + 3))\n", + "rhs = expand((3*x + 9) * (x + 8))\n", + "```\n", + "\n", + "Step 2: Subtract one side of the inequality from the other to move all terms to one side.\n", + "\n", + "```python\n", + "inequality = lhs - rhs\n", + "```\n", + "\n", + "Step 3: Factor the resulting expression to find the critical points (where the expression is equal to zero).\n", + "\n", + "```python\n", + "from sympy import solve\n", + "\n", + "critical_points = solve(inequality, x)\n", + "```\n", + "\n", + "Step 4: Determine intervals based on the critical points and test the intervals to find where the inequality holds true.\n", + "\n", + "```python\n", + "from sympy import solveset, S\n", + "\n", + "# finding the intervals where the inequality holds true\n", + "solution_intervals = solveset(inequality, x, domain=S.Reals)\n", + "```\n", + "\n", + "Step 5: Output the solution in interval notation.\n", + "\n", + "```python\n", + "print(solution_intervals)\n", + "```\n", + "\n", + "This will give us the solution in interval notation. Now, let's run this code step by step. Please run Step 1 to calculate the expanded forms of both sides of the inequality.\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33mmathproxyagent\u001b[0m (to assistant):\n", + "\n", + "No output found. Make sure you print the results.\n", + "Error: Traceback (most recent call last):\n", + " File \"\", line 3, in \n", + " inequality = lhs - rhs\n", + "NameError: name 'lhs' is not defined\n", + "\n", + "Error: Traceback (most recent call last):\n", + " File \"\", line 7, in \n", + " critical_points = solve(inequality, x)\n", + "NameError: name 'inequality' is not defined\n", + "\n", + "Error: Traceback (most recent call last):\n", + " File \"\", line 12, in \n", + " solution_intervals = solveset(inequality, x, domain=S.Reals)\n", + "NameError: name 'inequality' is not defined\n", + "\n", + "Error: Traceback (most recent call last):\n", + " File \"\", line 16, in \n", + " print(solution_intervals)\n", + "NameError: name 'solution_intervals' is not defined\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33massistant\u001b[0m (to mathproxyagent):\n", + "\n", + "I apologize for the misunderstanding. Let's correct the code by first expanding and printing out the left-hand side and the right-hand side of the inequality. Afterward, we will proceed to the next steps sequentially. Here is the corrected code for Step 1:\n", + "\n", + "```python\n", + "from sympy import symbols, expand\n", + "\n", + "x = symbols('x')\n", + "lhs = expand((2*x + 10) * (x + 3))\n", + "rhs = expand((3*x + 9) * (x + 8))\n", + "# Print the expanded left-hand side and right-hand side\n", + "print(\"Expanded LHS:\", lhs)\n", + "print(\"Expanded RHS:\", rhs)\n", + "```\n", + "\n", + "Run this code to get the expanded forms. After we confirm the expanded results are correct, we will move on to Step 2.\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33mmathproxyagent\u001b[0m (to assistant):\n", + "\n", + "Expanded LHS: 2*x**2 + 16*x + 30\n", + "Expanded RHS: 3*x**2 + 33*x + 72\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33massistant\u001b[0m (to mathproxyagent):\n", + "\n", + "The expanded forms of the left-hand side (LHS) and the right-hand side (RHS) of the inequality are correct:\n", + "\n", + "LHS: $2x^2 + 16x + 30$\n", + "\n", + "RHS: $3x^2 + 33x + 72$\n", + "\n", + "Now, let's proceed to Step 2, where we will calculate the expression resulting from subtracting the RHS from the LHS, and then move on to factoring that expression.\n", + "\n", + "```python\n", + "from sympy import simplify\n", + "\n", + "# Compute the difference between RHS and LHS\n", + "inequality_expression = simplify(lhs - rhs)\n", + "\n", + "# Print the simplified inequality expression\n", + "print(\"Inequality expression (LHS - RHS):\", inequality_expression)\n", + "```\n", + "\n", + "Run this code to obtain the simplified inequality expression. Once we have it, we can determine the next steps.\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33mmathproxyagent\u001b[0m (to assistant):\n", + "\n", + "Inequality expression (LHS - RHS): -x**2 - 17*x - 42\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33massistant\u001b[0m (to mathproxyagent):\n", + "\n", + "The simplified expression from subtracting the RHS from the LHS is correct:\n", + "\n", + "Inequality Expression: $-x^2 - 17x - 42$\n", + "\n", + "Next, we will factor this expression to determine the critical points where the expression equals zero.\n", + "\n", + "```python\n", + "from sympy import factor\n", + "\n", + "# Factor the inequality expression\n", + "factored_expression = factor(inequality_expression)\n", + "\n", + "# Print the factored inequality expression\n", + "print(\"Factored Inequality Expression:\", factored_expression)\n", + "```\n", + "\n", + "Please run this code to obtain the critical points, and we will continue from there.\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33mmathproxyagent\u001b[0m (to assistant):\n", + "\n", + "Factored Inequality Expression: -(x + 3)*(x + 14)\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33massistant\u001b[0m (to mathproxyagent):\n", + "\n", + "The factored form of the inequality expression is correct:\n", + "\n", + "Factored Inequality Expression: $-(x + 3)(x + 14)$\n", + "\n", + "The critical points are the values of $x$ for which this expression equals zero, which are $x = -3$ and $x = -14$.\n", + "\n", + "Now, we will determine the intervals formed by these critical points and analyze the sign of the inequality expression within each interval to find where the original inequality holds true.\n", + "\n", + "```python\n", + "from sympy import solveset, S\n", + "\n", + "# Determine in which intervals the inequality holds true\n", + "solution_intervals = solveset(inequality_expression < 0, x, domain=S.Reals)\n", + "\n", + "# Print the solution in interval notation\n", + "print(\"Solution Intervals:\", solution_intervals)\n", + "```\n", + "\n", + "Running this code will provide us with the intervals where the inequality is satisfied, expressed in interval notation. Please execute it to get the final answer.\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33mmathproxyagent\u001b[0m (to assistant):\n", + "\n", + "Solution Intervals: Union(Interval.open(-oo, -14), Interval.open(-3, oo))\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33massistant\u001b[0m (to mathproxyagent):\n", + "\n", + "The solution intervals where the original inequality $(2x+10)(x+3)<(3x+9)(x+8)$ holds true are:\n", + "\n", + "Solution Intervals: $(-\\infty, -14) \\cup (-3, \\infty)$\n", + "\n", + "So the complete solution to the problem in interval notation is:\n", + "\n", + "$$\\boxed{(-\\infty, -14) \\cup (-3, \\infty)}$$\n", + "\n", + "This indicates that the inequality is satisfied for all $x$ values less than $-14$ and for all $x$ values greater than $-3$.\n", + "\n", + "--------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/plain": [ + "ChatResult(chat_id=None, chat_history=[{'content': \"Let's use Python to solve a math problem.\\n\\nQuery requirements:\\nYou should always use the 'print' function for the output and use fractions/radical forms instead of decimals.\\nYou can use packages like sympy to help you.\\nYou must follow the formats below to write your code:\\n```python\\n# your code\\n```\\n\\nFirst state the key idea to solve the problem. You may choose from three ways to solve the problem:\\nCase 1: If the problem can be solved with Python code directly, please write a program to solve it. You can enumerate all possible arrangements if needed.\\nCase 2: If the problem is mostly reasoning, you can solve it by yourself directly.\\nCase 3: If the problem cannot be handled in the above two ways, please follow this process:\\n1. Solve the problem step by step (do not over-divide the steps).\\n2. Take out any queries that can be asked through Python (for example, any calculations or equations that can be calculated).\\n3. Wait for me to give the results.\\n4. Continue if you think the result is correct. If the result is invalid or unexpected, please correct your query or reasoning.\\n\\nAfter all the queries are run and you get the answer, put the answer in \\\\boxed{}.\\n\\nProblem:\\nFind all $x$ that satisfy the inequality $(2x+10)(x+3)<(3x+9)(x+8)$. Express your answer in interval notation.\", 'role': 'assistant'}, {'content': \"Key idea: To solve the inequality $(2x+10)(x+3)<(3x+9)(x+8)$, we will expand both sides, simplify the resulting expression, and then solve for $x$. This process may involve factoring a quadratic expression and finding the critical points where the inequality may change signs. We will analyze the intervals between these points to determine where the inequality holds true.\\n\\nLet's solve the problem step by step:\\n\\nStep 1: Expand both sides of the inequality.\\n\\n```python\\nfrom sympy import symbols, expand\\n\\nx = symbols('x')\\nlhs = expand((2*x + 10) * (x + 3))\\nrhs = expand((3*x + 9) * (x + 8))\\n```\\n\\nStep 2: Subtract one side of the inequality from the other to move all terms to one side.\\n\\n```python\\ninequality = lhs - rhs\\n```\\n\\nStep 3: Factor the resulting expression to find the critical points (where the expression is equal to zero).\\n\\n```python\\nfrom sympy import solve\\n\\ncritical_points = solve(inequality, x)\\n```\\n\\nStep 4: Determine intervals based on the critical points and test the intervals to find where the inequality holds true.\\n\\n```python\\nfrom sympy import solveset, S\\n\\n# finding the intervals where the inequality holds true\\nsolution_intervals = solveset(inequality, x, domain=S.Reals)\\n```\\n\\nStep 5: Output the solution in interval notation.\\n\\n```python\\nprint(solution_intervals)\\n```\\n\\nThis will give us the solution in interval notation. Now, let's run this code step by step. Please run Step 1 to calculate the expanded forms of both sides of the inequality.\", 'role': 'user'}, {'content': 'No output found. Make sure you print the results.\\nError: Traceback (most recent call last):\\n File \"\", line 3, in \\n inequality = lhs - rhs\\nNameError: name \\'lhs\\' is not defined\\n\\nError: Traceback (most recent call last):\\n File \"\", line 7, in \\n critical_points = solve(inequality, x)\\nNameError: name \\'inequality\\' is not defined\\n\\nError: Traceback (most recent call last):\\n File \"\", line 12, in \\n solution_intervals = solveset(inequality, x, domain=S.Reals)\\nNameError: name \\'inequality\\' is not defined\\n\\nError: Traceback (most recent call last):\\n File \"\", line 16, in \\n print(solution_intervals)\\nNameError: name \\'solution_intervals\\' is not defined', 'role': 'assistant'}, {'content': 'I apologize for the misunderstanding. Let\\'s correct the code by first expanding and printing out the left-hand side and the right-hand side of the inequality. Afterward, we will proceed to the next steps sequentially. Here is the corrected code for Step 1:\\n\\n```python\\nfrom sympy import symbols, expand\\n\\nx = symbols(\\'x\\')\\nlhs = expand((2*x + 10) * (x + 3))\\nrhs = expand((3*x + 9) * (x + 8))\\n# Print the expanded left-hand side and right-hand side\\nprint(\"Expanded LHS:\", lhs)\\nprint(\"Expanded RHS:\", rhs)\\n```\\n\\nRun this code to get the expanded forms. After we confirm the expanded results are correct, we will move on to Step 2.', 'role': 'user'}, {'content': 'Expanded LHS: 2*x**2 + 16*x + 30\\nExpanded RHS: 3*x**2 + 33*x + 72', 'role': 'assistant'}, {'content': 'The expanded forms of the left-hand side (LHS) and the right-hand side (RHS) of the inequality are correct:\\n\\nLHS: $2x^2 + 16x + 30$\\n\\nRHS: $3x^2 + 33x + 72$\\n\\nNow, let\\'s proceed to Step 2, where we will calculate the expression resulting from subtracting the RHS from the LHS, and then move on to factoring that expression.\\n\\n```python\\nfrom sympy import simplify\\n\\n# Compute the difference between RHS and LHS\\ninequality_expression = simplify(lhs - rhs)\\n\\n# Print the simplified inequality expression\\nprint(\"Inequality expression (LHS - RHS):\", inequality_expression)\\n```\\n\\nRun this code to obtain the simplified inequality expression. Once we have it, we can determine the next steps.', 'role': 'user'}, {'content': 'Inequality expression (LHS - RHS): -x**2 - 17*x - 42', 'role': 'assistant'}, {'content': 'The simplified expression from subtracting the RHS from the LHS is correct:\\n\\nInequality Expression: $-x^2 - 17x - 42$\\n\\nNext, we will factor this expression to determine the critical points where the expression equals zero.\\n\\n```python\\nfrom sympy import factor\\n\\n# Factor the inequality expression\\nfactored_expression = factor(inequality_expression)\\n\\n# Print the factored inequality expression\\nprint(\"Factored Inequality Expression:\", factored_expression)\\n```\\n\\nPlease run this code to obtain the critical points, and we will continue from there.', 'role': 'user'}, {'content': 'Factored Inequality Expression: -(x + 3)*(x + 14)', 'role': 'assistant'}, {'content': 'The factored form of the inequality expression is correct:\\n\\nFactored Inequality Expression: $-(x + 3)(x + 14)$\\n\\nThe critical points are the values of $x$ for which this expression equals zero, which are $x = -3$ and $x = -14$.\\n\\nNow, we will determine the intervals formed by these critical points and analyze the sign of the inequality expression within each interval to find where the original inequality holds true.\\n\\n```python\\nfrom sympy import solveset, S\\n\\n# Determine in which intervals the inequality holds true\\nsolution_intervals = solveset(inequality_expression < 0, x, domain=S.Reals)\\n\\n# Print the solution in interval notation\\nprint(\"Solution Intervals:\", solution_intervals)\\n```\\n\\nRunning this code will provide us with the intervals where the inequality is satisfied, expressed in interval notation. Please execute it to get the final answer.', 'role': 'user'}, {'content': 'Solution Intervals: Union(Interval.open(-oo, -14), Interval.open(-3, oo))', 'role': 'assistant'}, {'content': 'The solution intervals where the original inequality $(2x+10)(x+3)<(3x+9)(x+8)$ holds true are:\\n\\nSolution Intervals: $(-\\\\infty, -14) \\\\cup (-3, \\\\infty)$\\n\\nSo the complete solution to the problem in interval notation is:\\n\\n$$\\\\boxed{(-\\\\infty, -14) \\\\cup (-3, \\\\infty)}$$\\n\\nThis indicates that the inequality is satisfied for all $x$ values less than $-14$ and for all $x$ values greater than $-3$.', 'role': 'user'}], summary='The solution intervals where the original inequality $(2x+10)(x+3)<(3x+9)(x+8)$ holds true are:\\n\\nSolution Intervals: $(-\\\\infty, -14) \\\\cup (-3, \\\\infty)$\\n\\nSo the complete solution to the problem in interval notation is:\\n\\n$$\\\\boxed{(-\\\\infty, -14) \\\\cup (-3, \\\\infty)}$$\\n\\nThis indicates that the inequality is satisfied for all $x$ values less than $-14$ and for all $x$ values greater than $-3$.', cost=({'total_cost': 0.26039999999999996, 'gpt-4': {'cost': 0.26039999999999996, 'prompt_tokens': 6476, 'completion_tokens': 1102, 'total_tokens': 7578}}, {'total_cost': 0}), human_input=[])" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# given a math problem, we use the mathproxyagent to generate a prompt to be sent to the assistant as the initial message.\n", "# the assistant receives the message and generates a response. The response will be sent back to the mathproxyagent for processing.\n", @@ -180,7 +403,10 @@ "math_problem = (\n", " \"Find all $x$ that satisfy the inequality $(2x+10)(x+3)<(3x+9)(x+8)$. Express your answer in interval notation.\"\n", ")\n", - "mathproxyagent.initiate_chat(assistant, problem=math_problem)" + "\n", + "# We call `initiate_chat` to start the conversation.\n", + "# When setting `message=mathproxyagent.message_generator`, you need to pass in the problem through the `problem` parameter.\n", + "mathproxyagent.initiate_chat(assistant, message=mathproxyagent.message_generator, problem=math_problem)" ] }, { @@ -199,12 +425,130 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[33mmathproxyagent\u001b[0m (to assistant):\n", + "\n", + "Let's use Python to solve a math problem.\n", + "\n", + "Query requirements:\n", + "You should always use the 'print' function for the output and use fractions/radical forms instead of decimals.\n", + "You can use packages like sympy to help you.\n", + "You must follow the formats below to write your code:\n", + "```python\n", + "# your code\n", + "```\n", + "\n", + "First state the key idea to solve the problem. You may choose from three ways to solve the problem:\n", + "Case 1: If the problem can be solved with Python code directly, please write a program to solve it. You can enumerate all possible arrangements if needed.\n", + "Case 2: If the problem is mostly reasoning, you can solve it by yourself directly.\n", + "Case 3: If the problem cannot be handled in the above two ways, please follow this process:\n", + "1. Solve the problem step by step (do not over-divide the steps).\n", + "2. Take out any queries that can be asked through Python (for example, any calculations or equations that can be calculated).\n", + "3. Wait for me to give the results.\n", + "4. Continue if you think the result is correct. If the result is invalid or unexpected, please correct your query or reasoning.\n", + "\n", + "After all the queries are run and you get the answer, put the answer in \\boxed{}.\n", + "\n", + "Problem:\n", + "For what negative value of $k$ is there exactly one solution to the system of equations \\begin{align*}\n", + "y &= 2x^2 + kx + 6 \\\\\n", + "y &= -x + 4?\n", + "\\end{align*}\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33massistant\u001b[0m (to mathproxyagent):\n", + "\n", + "The key idea to solve this problem is to set the two equations equal to each other and find the value of $k$ such that the resulting quadratic equation has exactly one solution. A quadratic equation has exactly one solution if and only if its discriminant is zero.\n", + "\n", + "The system of equations is:\n", + "\\begin{align*}\n", + "y &= 2x^2 + kx + 6 \\quad (1) \\\\\n", + "y &= -x + 4 \\quad (2)\n", + "\\end{align*}\n", + "\n", + "Setting these two equations equal to each other gives us:\n", + "$$ 2x^2 + kx + 6 = -x + 4. $$\n", + "\n", + "Now, we simplify the equation and equate it to zero to form a quadratic equation in the standard form $ax^2 + bx + c = 0$:\n", + "$$ 2x^2 + (k + 1)x + (6 - 4) = 0. $$\n", + "\n", + "The discriminant of a quadratic equation $ax^2 + bx + c = 0$ is given by $\\Delta = b^2 - 4ac$. For there to be exactly one solution, we need $\\Delta = 0$. We will determine the value of $k$ that makes the discriminant zero.\n", + "\n", + "Let's calculate the discriminant with the values we have:\n", + "\\begin{align*}\n", + "a &= 2, \\\\\n", + "b &= k + 1, \\\\\n", + "c &= 2.\n", + "\\end{align*}\n", + "\n", + "The discriminant is then:\n", + "$$ \\Delta = (k + 1)^2 - 4(2)(2). $$\n", + "\n", + "We set the discriminant equal to zero and solve for $k$:\n", + "$$ (k + 1)^2 - 16 = 0. $$\n", + "\n", + "I will now write a Python code using sympy to solve for $k$:\n", + "\n", + "```python\n", + "from sympy import symbols, Eq, solve\n", + "\n", + "# Define the symbol k\n", + "k = symbols('k')\n", + "\n", + "# Define the discriminant\n", + "discriminant = (k + 1)**2 - 4*2*2\n", + "\n", + "# Equation for the discriminant to be zero\n", + "eq = Eq(discriminant, 0)\n", + "\n", + "# Solve for k\n", + "k_value = solve(eq, k)\n", + "print(\"The value of k for which there is exactly one solution to the system of equations is:\", k_value)\n", + "```\n", + "\n", + "Running this code will give us the negative value of $k$ for which there is exactly one solution to the system of equations.\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33mmathproxyagent\u001b[0m (to assistant):\n", + "\n", + "The value of k for which there is exactly one solution to the system of equations is: [-5, 3]\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33massistant\u001b[0m (to mathproxyagent):\n", + "\n", + "Given that we are interested in the negative value of \\(k\\) which results in exactly one solution to the system of equations, from the two values you've reported \\([-5, 3]\\), the negative value is \\(-5\\).\n", + "\n", + "Thus, the correct value of \\(k\\) is \\(-5\\).\n", + "\n", + "We can insert this result into a boxed format:\n", + "\n", + "\\[\n", + "\\boxed{k = -5}\n", + "\\]\n", + "\n", + "--------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/plain": [ + "ChatResult(chat_id=None, chat_history=[{'content': \"Let's use Python to solve a math problem.\\n\\nQuery requirements:\\nYou should always use the 'print' function for the output and use fractions/radical forms instead of decimals.\\nYou can use packages like sympy to help you.\\nYou must follow the formats below to write your code:\\n```python\\n# your code\\n```\\n\\nFirst state the key idea to solve the problem. You may choose from three ways to solve the problem:\\nCase 1: If the problem can be solved with Python code directly, please write a program to solve it. You can enumerate all possible arrangements if needed.\\nCase 2: If the problem is mostly reasoning, you can solve it by yourself directly.\\nCase 3: If the problem cannot be handled in the above two ways, please follow this process:\\n1. Solve the problem step by step (do not over-divide the steps).\\n2. Take out any queries that can be asked through Python (for example, any calculations or equations that can be calculated).\\n3. Wait for me to give the results.\\n4. Continue if you think the result is correct. If the result is invalid or unexpected, please correct your query or reasoning.\\n\\nAfter all the queries are run and you get the answer, put the answer in \\\\boxed{}.\\n\\nProblem:\\nFor what negative value of $k$ is there exactly one solution to the system of equations \\\\begin{align*}\\ny &= 2x^2 + kx + 6 \\\\\\\\\\ny &= -x + 4?\\n\\\\end{align*}\", 'role': 'assistant'}, {'content': 'The key idea to solve this problem is to set the two equations equal to each other and find the value of $k$ such that the resulting quadratic equation has exactly one solution. A quadratic equation has exactly one solution if and only if its discriminant is zero.\\n\\nThe system of equations is:\\n\\\\begin{align*}\\ny &= 2x^2 + kx + 6 \\\\quad (1) \\\\\\\\\\ny &= -x + 4 \\\\quad (2)\\n\\\\end{align*}\\n\\nSetting these two equations equal to each other gives us:\\n$$ 2x^2 + kx + 6 = -x + 4. $$\\n\\nNow, we simplify the equation and equate it to zero to form a quadratic equation in the standard form $ax^2 + bx + c = 0$:\\n$$ 2x^2 + (k + 1)x + (6 - 4) = 0. $$\\n\\nThe discriminant of a quadratic equation $ax^2 + bx + c = 0$ is given by $\\\\Delta = b^2 - 4ac$. For there to be exactly one solution, we need $\\\\Delta = 0$. We will determine the value of $k$ that makes the discriminant zero.\\n\\nLet\\'s calculate the discriminant with the values we have:\\n\\\\begin{align*}\\na &= 2, \\\\\\\\\\nb &= k + 1, \\\\\\\\\\nc &= 2.\\n\\\\end{align*}\\n\\nThe discriminant is then:\\n$$ \\\\Delta = (k + 1)^2 - 4(2)(2). $$\\n\\nWe set the discriminant equal to zero and solve for $k$:\\n$$ (k + 1)^2 - 16 = 0. $$\\n\\nI will now write a Python code using sympy to solve for $k$:\\n\\n```python\\nfrom sympy import symbols, Eq, solve\\n\\n# Define the symbol k\\nk = symbols(\\'k\\')\\n\\n# Define the discriminant\\ndiscriminant = (k + 1)**2 - 4*2*2\\n\\n# Equation for the discriminant to be zero\\neq = Eq(discriminant, 0)\\n\\n# Solve for k\\nk_value = solve(eq, k)\\nprint(\"The value of k for which there is exactly one solution to the system of equations is:\", k_value)\\n```\\n\\nRunning this code will give us the negative value of $k$ for which there is exactly one solution to the system of equations.', 'role': 'user'}, {'content': 'The value of k for which there is exactly one solution to the system of equations is: [-5, 3]', 'role': 'assistant'}, {'content': \"Given that we are interested in the negative value of \\\\(k\\\\) which results in exactly one solution to the system of equations, from the two values you've reported \\\\([-5, 3]\\\\), the negative value is \\\\(-5\\\\).\\n\\nThus, the correct value of \\\\(k\\\\) is \\\\(-5\\\\).\\n\\nWe can insert this result into a boxed format:\\n\\n\\\\[\\n\\\\boxed{k = -5}\\n\\\\]\", 'role': 'user'}], summary=\"Given that we are interested in the negative value of \\\\(k\\\\) which results in exactly one solution to the system of equations, from the two values you've reported \\\\([-5, 3]\\\\), the negative value is \\\\(-5\\\\).\\n\\nThus, the correct value of \\\\(k\\\\) is \\\\(-5\\\\).\\n\\nWe can insert this result into a boxed format:\\n\\n\\\\[\\n\\\\boxed{k = -5}\\n\\\\]\", cost=({'total_cost': 0.33227999999999996, 'gpt-4': {'cost': 0.33227999999999996, 'prompt_tokens': 7678, 'completion_tokens': 1699, 'total_tokens': 9377}}, {'total_cost': 0.33227999999999996, 'gpt-4': {'cost': 0.33227999999999996, 'prompt_tokens': 7678, 'completion_tokens': 1699, 'total_tokens': 9377}}), human_input=[])" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "math_problem = \"For what negative value of $k$ is there exactly one solution to the system of equations \\\\begin{align*}\\ny &= 2x^2 + kx + 6 \\\\\\\\\\ny &= -x + 4?\\n\\\\end{align*}\"\n", - "mathproxyagent.initiate_chat(assistant, problem=math_problem)" + "mathproxyagent.initiate_chat(assistant, message=mathproxyagent.message_generator, problem=math_problem)" ] }, { @@ -220,12 +564,154 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[33mmathproxyagent\u001b[0m (to assistant):\n", + "\n", + "Let's use Python to solve a math problem.\n", + "\n", + "Query requirements:\n", + "You should always use the 'print' function for the output and use fractions/radical forms instead of decimals.\n", + "You can use packages like sympy to help you.\n", + "You must follow the formats below to write your code:\n", + "```python\n", + "# your code\n", + "```\n", + "\n", + "First state the key idea to solve the problem. You may choose from three ways to solve the problem:\n", + "Case 1: If the problem can be solved with Python code directly, please write a program to solve it. You can enumerate all possible arrangements if needed.\n", + "Case 2: If the problem is mostly reasoning, you can solve it by yourself directly.\n", + "Case 3: If the problem cannot be handled in the above two ways, please follow this process:\n", + "1. Solve the problem step by step (do not over-divide the steps).\n", + "2. Take out any queries that can be asked through Python (for example, any calculations or equations that can be calculated).\n", + "3. Wait for me to give the results.\n", + "4. Continue if you think the result is correct. If the result is invalid or unexpected, please correct your query or reasoning.\n", + "\n", + "After all the queries are run and you get the answer, put the answer in \\boxed{}.\n", + "\n", + "Problem:\n", + "Find all positive integer values of $c$ such that the equation $x^2-7x+c=0$ only has roots that are real and rational. Express them in decreasing order, separated by commas.\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33massistant\u001b[0m (to mathproxyagent):\n", + "\n", + "To solve this problem, we want to find all positive integer values of $c$ for which the equation $x^2-7x+c=0$ has real and rational roots. For this, we need to use the discriminant of a quadratic equation, which is given by the formula $\\Delta = b^2 - 4ac$. For the equation to have real and rational roots, the discriminant must be a perfect square.\n", + "\n", + "In the given equation, $a=1, b=-7$, and $c$ is the constant we're looking for. \n", + "\n", + "The steps to solve this problem are as follows:\n", + "\n", + "1. Write the discriminant condition for the equation to have real and rational roots.\n", + "2. Find the range of possible $c$ values by considering the constraints.\n", + "3. Enumerate through possible $c$ values to find the ones where the discriminant is a perfect square.\n", + "4. Return the values of $c$ in decreasing order, separated by commas.\n", + "\n", + "Let's start with step one and use Python to find all $c$ values that satisfy the condition for $\\Delta$ being a perfect square:\n", + "\n", + "```python\n", + "from sympy import symbols, solve\n", + "\n", + "# Define the variable\n", + "c = symbols('c', integer=True)\n", + "\n", + "# The discriminant of the quadratic equation\n", + "discriminant = (-7)**2 - 4*1*c\n", + "\n", + "# List to hold all possible c values with rational roots\n", + "c_values = []\n", + "\n", + "# Finding the range for c:\n", + "# Since c is positive and we want the discriminant to be non-negative (to have real roots),\n", + "# the smallest possible square for the discriminant is 0, which gives us the upper bound for c.\n", + "upper_bound = solve(discriminant, c)[0]\n", + "\n", + "# Check all integer values up to the upper bound\n", + "for i in range(1, upper_bound + 1):\n", + " # If the discriminant is a perfect square, then the roots will be rational.\n", + " if ((-7)**2 - 4*1*i).is_square:\n", + " c_values.append(i)\n", + "\n", + "# Output the result in decreasing order\n", + "c_values.sort(reverse=True)\n", + "print(', '.join(map(str, c_values)))\n", + "```\n", + "\n", + "This code will output all positive integer values of $c$ for which the roots of the equation are real and rational, sorted in decreasing order.\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33mmathproxyagent\u001b[0m (to assistant):\n", + "\n", + "Error: Traceback (most recent call last):\n", + " File \"\", line 1103, in \n", + " upper_bound = solve(discriminant, c)[0]\n", + "IndexError: list index out of range\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33massistant\u001b[0m (to mathproxyagent):\n", + "\n", + "I apologize for the confusion in the earlier Python code. Let me correct the code by directly computing the upper bound for $c$. Since we are looking for positive integer values of $c$, we can infer that for $c > (\\frac{7}{2})^2$, the discriminant will start to become negative, thus no longer yielding real roots. Therefore, the upper bound for $c$ will be $\\left\\lfloor(\\frac{7}{2})^2\\right\\rfloor = 12$. Let's modify the code to reflect this new approach.\n", + "\n", + "Firstly, it's important to note that the discriminant, $\\Delta = b^2 - 4ac$, must be a non-negative perfect square for the equation $ax^2 + bx + c = 0$ to have real and rational roots. In our case, $a = 1$ and $b = -7$, so we have $\\Delta = (-7)^2 - 4c = 49 - 4c$.\n", + "\n", + "We also know that a perfect square is always non-negative, so $49 - 4c \\geq 0$. From this inequality, we can find the upper bound for the value of $c$. Now, let's implement this as Python code:\n", + "\n", + "```python\n", + "# Define the variable and the list to store valid c values\n", + "upper_bound = (7**2) // 4 # This is the floor division of 49 by 4, which yields 12\n", + "c_values = []\n", + "\n", + "# Iterate over the possible c values and check if the discriminant is a perfect square\n", + "for i in range(1, upper_bound + 1):\n", + " discriminant = 49 - 4 * i\n", + " # Check if the discriminant is a non-negative perfect square\n", + " if discriminant >= 0 and (int(discriminant**0.5))**2 == discriminant:\n", + " c_values.append(i)\n", + "\n", + "# Output the result in decreasing order\n", + "c_values.sort(reverse=True)\n", + "print(', '.join(map(str, c_values)))\n", + "```\n", + "\n", + "This corrected code will enumerate through all possible $c$ values starting from 1 up to the calculated upper bound, checking whether the discriminant is a perfect square for each value of $c$. It will output the valid $c$ values in decreasing order, as the problem requests.\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33mmathproxyagent\u001b[0m (to assistant):\n", + "\n", + "12, 10, 6\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33massistant\u001b[0m (to mathproxyagent):\n", + "\n", + "The correct values for $c$ in decreasing order are indeed $12, 10, 6$. This is because these values of $c$ result in discriminants of $49 - 4c$ that are perfect squares, specifically $1$, $9$, and $25$ respectively, which correspond to the real, rational roots of the quadratic equation given by $x^2 - 7x + c = 0$.\n", + "\n", + "So, we can express the final answer as:\n", + "\n", + "\\[\n", + "\\boxed{12, 10, 6}\n", + "\\]\n", + "\n", + "--------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/plain": [ + "ChatResult(chat_id=None, chat_history=[{'content': \"Let's use Python to solve a math problem.\\n\\nQuery requirements:\\nYou should always use the 'print' function for the output and use fractions/radical forms instead of decimals.\\nYou can use packages like sympy to help you.\\nYou must follow the formats below to write your code:\\n```python\\n# your code\\n```\\n\\nFirst state the key idea to solve the problem. You may choose from three ways to solve the problem:\\nCase 1: If the problem can be solved with Python code directly, please write a program to solve it. You can enumerate all possible arrangements if needed.\\nCase 2: If the problem is mostly reasoning, you can solve it by yourself directly.\\nCase 3: If the problem cannot be handled in the above two ways, please follow this process:\\n1. Solve the problem step by step (do not over-divide the steps).\\n2. Take out any queries that can be asked through Python (for example, any calculations or equations that can be calculated).\\n3. Wait for me to give the results.\\n4. Continue if you think the result is correct. If the result is invalid or unexpected, please correct your query or reasoning.\\n\\nAfter all the queries are run and you get the answer, put the answer in \\\\boxed{}.\\n\\nProblem:\\nFind all positive integer values of $c$ such that the equation $x^2-7x+c=0$ only has roots that are real and rational. Express them in decreasing order, separated by commas.\", 'role': 'assistant'}, {'content': \"To solve this problem, we want to find all positive integer values of $c$ for which the equation $x^2-7x+c=0$ has real and rational roots. For this, we need to use the discriminant of a quadratic equation, which is given by the formula $\\\\Delta = b^2 - 4ac$. For the equation to have real and rational roots, the discriminant must be a perfect square.\\n\\nIn the given equation, $a=1, b=-7$, and $c$ is the constant we're looking for. \\n\\nThe steps to solve this problem are as follows:\\n\\n1. Write the discriminant condition for the equation to have real and rational roots.\\n2. Find the range of possible $c$ values by considering the constraints.\\n3. Enumerate through possible $c$ values to find the ones where the discriminant is a perfect square.\\n4. Return the values of $c$ in decreasing order, separated by commas.\\n\\nLet's start with step one and use Python to find all $c$ values that satisfy the condition for $\\\\Delta$ being a perfect square:\\n\\n```python\\nfrom sympy import symbols, solve\\n\\n# Define the variable\\nc = symbols('c', integer=True)\\n\\n# The discriminant of the quadratic equation\\ndiscriminant = (-7)**2 - 4*1*c\\n\\n# List to hold all possible c values with rational roots\\nc_values = []\\n\\n# Finding the range for c:\\n# Since c is positive and we want the discriminant to be non-negative (to have real roots),\\n# the smallest possible square for the discriminant is 0, which gives us the upper bound for c.\\nupper_bound = solve(discriminant, c)[0]\\n\\n# Check all integer values up to the upper bound\\nfor i in range(1, upper_bound + 1):\\n # If the discriminant is a perfect square, then the roots will be rational.\\n if ((-7)**2 - 4*1*i).is_square:\\n c_values.append(i)\\n\\n# Output the result in decreasing order\\nc_values.sort(reverse=True)\\nprint(', '.join(map(str, c_values)))\\n```\\n\\nThis code will output all positive integer values of $c$ for which the roots of the equation are real and rational, sorted in decreasing order.\", 'role': 'user'}, {'content': 'Error: Traceback (most recent call last):\\n File \"\", line 1103, in \\n upper_bound = solve(discriminant, c)[0]\\nIndexError: list index out of range', 'role': 'assistant'}, {'content': \"I apologize for the confusion in the earlier Python code. Let me correct the code by directly computing the upper bound for $c$. Since we are looking for positive integer values of $c$, we can infer that for $c > (\\\\frac{7}{2})^2$, the discriminant will start to become negative, thus no longer yielding real roots. Therefore, the upper bound for $c$ will be $\\\\left\\\\lfloor(\\\\frac{7}{2})^2\\\\right\\\\rfloor = 12$. Let's modify the code to reflect this new approach.\\n\\nFirstly, it's important to note that the discriminant, $\\\\Delta = b^2 - 4ac$, must be a non-negative perfect square for the equation $ax^2 + bx + c = 0$ to have real and rational roots. In our case, $a = 1$ and $b = -7$, so we have $\\\\Delta = (-7)^2 - 4c = 49 - 4c$.\\n\\nWe also know that a perfect square is always non-negative, so $49 - 4c \\\\geq 0$. From this inequality, we can find the upper bound for the value of $c$. Now, let's implement this as Python code:\\n\\n```python\\n# Define the variable and the list to store valid c values\\nupper_bound = (7**2) // 4 # This is the floor division of 49 by 4, which yields 12\\nc_values = []\\n\\n# Iterate over the possible c values and check if the discriminant is a perfect square\\nfor i in range(1, upper_bound + 1):\\n discriminant = 49 - 4 * i\\n # Check if the discriminant is a non-negative perfect square\\n if discriminant >= 0 and (int(discriminant**0.5))**2 == discriminant:\\n c_values.append(i)\\n\\n# Output the result in decreasing order\\nc_values.sort(reverse=True)\\nprint(', '.join(map(str, c_values)))\\n```\\n\\nThis corrected code will enumerate through all possible $c$ values starting from 1 up to the calculated upper bound, checking whether the discriminant is a perfect square for each value of $c$. It will output the valid $c$ values in decreasing order, as the problem requests.\", 'role': 'user'}, {'content': '12, 10, 6', 'role': 'assistant'}, {'content': 'The correct values for $c$ in decreasing order are indeed $12, 10, 6$. This is because these values of $c$ result in discriminants of $49 - 4c$ that are perfect squares, specifically $1$, $9$, and $25$ respectively, which correspond to the real, rational roots of the quadratic equation given by $x^2 - 7x + c = 0$.\\n\\nSo, we can express the final answer as:\\n\\n\\\\[\\n\\\\boxed{12, 10, 6}\\n\\\\]', 'role': 'user'}], summary='The correct values for $c$ in decreasing order are indeed $12, 10, 6$. This is because these values of $c$ result in discriminants of $49 - 4c$ that are perfect squares, specifically $1$, $9$, and $25$ respectively, which correspond to the real, rational roots of the quadratic equation given by $x^2 - 7x + c = 0$.\\n\\nSo, we can express the final answer as:\\n\\n\\\\[\\n\\\\boxed{12, 10, 6}\\n\\\\]', cost=({'total_cost': 0.47181, 'gpt-4': {'cost': 0.47181, 'prompt_tokens': 10187, 'completion_tokens': 2770, 'total_tokens': 12957}}, {'total_cost': 0.47181, 'gpt-4': {'cost': 0.47181, 'prompt_tokens': 10187, 'completion_tokens': 2770, 'total_tokens': 12957}}), human_input=[])" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "math_problem = \"Find all positive integer values of $c$ such that the equation $x^2-7x+c=0$ only has roots that are real and rational. Express them in decreasing order, separated by commas.\"\n", - "mathproxyagent.initiate_chat(assistant, problem=math_problem)" + "mathproxyagent.initiate_chat(assistant, message=mathproxyagent.message_generator, problem=math_problem)" ] }, { @@ -238,12 +724,14 @@ "\n", "MathChat allows different prompts that instruct the assistant to solve the problem.\n", "\n", - "Check out `MathUserProxyAgent.generate_init_message(problem, prompt_type='default', customized_prompt=None)`:\n", + "Check out `MathUserProxyAgent.message_generator`:\n", + "\n", "- You may choose from `['default', 'python', 'two_tools']` for parameter `prompt_type`. We include two more prompts in the paper: \n", " 1. `'python'` is a simplified prompt from the default prompt that uses Python only. \n", " 2. `'two_tools'` further allows the selection of Python or Wolfram Alpha based on this simplified `python` prompt. Note that this option requires a Wolfram Alpha API key and put it in `wolfram.txt`.\n", "\n", - "- You can also input your customized prompt if needed: `mathproxyagent.generate_init_message(problem, customized_prompt=\"Your customized prompt\")`. Since this mathproxyagent detects '\\boxed{}' as termination, you need to have a similar termination sentence in the prompt: \"If you get the answer, put the answer in \\\\boxed{}.\". If the customized is provided, the `prompt_type` will be ignored.\n", + "- You can also input your customized prompt if needed.\n", + "Since this mathproxyagent detects '\\boxed{}' as termination, you need to have a similar termination sentence in the prompt: \"If you get the answer, put the answer in \\\\boxed{}.\". If the customized is provided, the `prompt_type` will be ignored.\n", "\n", "\n", "### Example 4 (Use the \"python\" prompt):\n", @@ -265,13 +753,220 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[33mmathproxyagent\u001b[0m (to assistant):\n", + "\n", + "Let's use Python to solve a math problem.\n", + "\n", + "Query requirements:\n", + "You should always use the 'print' function for the output and use fractions/radical forms instead of decimals.\n", + "You can use packages like sympy to help you.\n", + "You must follow the formats below to write your code:\n", + "```python\n", + "# your code\n", + "```\n", + "\n", + "Please follow this process:\n", + "1. Solve the problem step by step (do not over-divide the steps).\n", + "2. Take out any queries that can be asked through Python (for example, any calculations or equations that can be calculated).\n", + "3. Wait for me to give the results.\n", + "4. Continue if you think the result is correct. If the result is invalid or unexpected, please correct your query or reasoning.\n", + "\n", + "After all the queries are run and you get the answer, put the answer in \\boxed{}.\n", + "\n", + "Problem: Problem: If $725x + 727y = 1500$ and $729x+ 731y = 1508$, what is the value of $x - y$ ?\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33massistant\u001b[0m (to mathproxyagent):\n", + "\n", + "To start solving the system of linear equations, we'll begin by eliminating one of the variables. We can do this by multiplying both equations by certain coefficients so that the coefficients of one of the variables are the same in both equations. Then, we can subtract the equations to eliminate that variable.\n", + "\n", + "First, let's multiply the first equation by $731$ and the second equation by $727$, so that the $y$ terms will have the same coefficient and can be subtracted out.\n", + "\n", + "Here are the modified equations:\n", + "\n", + "1) $725x \\cdot 731 + 727y \\cdot 731 = 1500 \\cdot 731$\n", + "\n", + "2) $729x \\cdot 727 + 731y \\cdot 727 = 1508 \\cdot 727$\n", + "\n", + "We'll subtract equation 2 from equation 1 after this modification.\n", + "\n", + "Let's compute the new coefficients and constants:\n", + "\n", + "For the first equation:\n", + "- New coefficient of $x$: $725 \\cdot 731$\n", + "- New coefficient of $y$: $727 \\cdot 731$\n", + "- New constant term: $1500 \\cdot 731$\n", + "\n", + "For the second equation:\n", + "- New coefficient of $x$: $729 \\cdot 727$\n", + "- New coefficient of $y$: $731 \\cdot 727$\n", + "- New constant term: $1508 \\cdot 727$\n", + "\n", + "Now, we can subtract the second equation from the first one.\n", + "\n", + "The Python code will be:\n", + "\n", + "```python\n", + "from sympy import symbols, Eq, solve\n", + "\n", + "# Define the symbolic variables\n", + "x, y = symbols('x y')\n", + "\n", + "# Calculate the new coefficients and constant terms\n", + "coeff_x1 = 725 * 731\n", + "coeff_y1 = 727 * 731\n", + "const1 = 1500 * 731\n", + "\n", + "coeff_x2 = 729 * 727\n", + "coeff_y2 = 731 * 727\n", + "const2 = 1508 * 727\n", + "\n", + "# Create the modified equations\n", + "eq1_mod = Eq(coeff_x1*x + coeff_y1*y, const1)\n", + "eq2_mod = Eq(coeff_x2*x + coeff_y2*y, const2)\n", + "\n", + "# Subtract the second equation from the first\n", + "eq_subtraction = Eq(eq1_mod.lhs - eq2_mod.lhs, eq1_mod.rhs - eq2_mod.rhs)\n", + "\n", + "print(eq_subtraction)\n", + "```\n", + "\n", + "Please run this code to get the modified equation after subtraction.\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33mmathproxyagent\u001b[0m (to assistant):\n", + "\n", + "Eq(-8*x, 184)\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33massistant\u001b[0m (to mathproxyagent):\n", + "\n", + "Great, now we have the simplified equation:\n", + "\n", + "$$-8x = 184$$\n", + "\n", + "To solve for $x$, we will divide both sides of the equation by $-8$. Let’s do that calculation now.\n", + "\n", + "$$ x = \\frac{184}{-8} $$\n", + "\n", + "Let's go ahead and perform this division.\n", + "\n", + "```python\n", + "# Calculate the value of x\n", + "x_value = 184 / -8\n", + "\n", + "print(x_value)\n", + "```\n", + "\n", + "Please run this code to find the value of $x$.\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33mmathproxyagent\u001b[0m (to assistant):\n", + "\n", + "-23.0\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33massistant\u001b[0m (to mathproxyagent):\n", + "\n", + "We've established that $x = -23$.\n", + "\n", + "Next, we can substitute the value of $x$ into either of the original equations to solve for $y$. Let's substitute $x$ into the first equation:\n", + "\n", + "$$\n", + "725x + 727y = 1500\n", + "$$\n", + "\n", + "Substituting $x = -23$ gives us:\n", + "\n", + "$$\n", + "725(-23) + 727y = 1500\n", + "$$\n", + "\n", + "Now we'll solve for $y$ using this equation. The Python code for this step is:\n", + "\n", + "```python\n", + "# Substitute x into the first original equation to solve for y\n", + "x_value = -23\n", + "\n", + "# Define the equation\n", + "eq_for_y = Eq(725 * x_value + 727 * y, 1500)\n", + "\n", + "# Solve for y\n", + "y_value = solve(eq_for_y, y)\n", + "\n", + "print(y_value)\n", + "```\n", + "\n", + "Please execute this code to calculate the value of $y$.\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33mmathproxyagent\u001b[0m (to assistant):\n", + "\n", + "[25]\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33massistant\u001b[0m (to mathproxyagent):\n", + "\n", + "We've found that $y = 25$. Now that we have both $x = -23$ and $y = 25$, we can compute $x - y$:\n", + "\n", + "$$ x - y = -23 - 25 $$\n", + "\n", + "Let's perform this calculation:\n", + "\n", + "```python\n", + "# Calculate x - y\n", + "result = x_value - 25\n", + "\n", + "print(result)\n", + "```\n", + "\n", + "Please run the above code to find the value of $x - y$.\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33mmathproxyagent\u001b[0m (to assistant):\n", + "\n", + "-48\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33massistant\u001b[0m (to mathproxyagent):\n", + "\n", + "With the results obtained, we have:\n", + "\n", + "$$ x - y = -48 $$\n", + "\n", + "Therefore, the value of $x - y$ is $-48$.\n", + "\n", + "We can put this answer inside a box using LaTeX notation:\n", + "\n", + "$$ \\boxed{x - y = -48} $$\n", + "\n", + "--------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/plain": [ + "ChatResult(chat_id=None, chat_history=[{'content': \"Let's use Python to solve a math problem.\\n\\nQuery requirements:\\nYou should always use the 'print' function for the output and use fractions/radical forms instead of decimals.\\nYou can use packages like sympy to help you.\\nYou must follow the formats below to write your code:\\n```python\\n# your code\\n```\\n\\nPlease follow this process:\\n1. Solve the problem step by step (do not over-divide the steps).\\n2. Take out any queries that can be asked through Python (for example, any calculations or equations that can be calculated).\\n3. Wait for me to give the results.\\n4. Continue if you think the result is correct. If the result is invalid or unexpected, please correct your query or reasoning.\\n\\nAfter all the queries are run and you get the answer, put the answer in \\\\boxed{}.\\n\\nProblem: Problem: If $725x + 727y = 1500$ and $729x+ 731y = 1508$, what is the value of $x - y$ ?\", 'role': 'assistant'}, {'content': \"To start solving the system of linear equations, we'll begin by eliminating one of the variables. We can do this by multiplying both equations by certain coefficients so that the coefficients of one of the variables are the same in both equations. Then, we can subtract the equations to eliminate that variable.\\n\\nFirst, let's multiply the first equation by $731$ and the second equation by $727$, so that the $y$ terms will have the same coefficient and can be subtracted out.\\n\\nHere are the modified equations:\\n\\n1) $725x \\\\cdot 731 + 727y \\\\cdot 731 = 1500 \\\\cdot 731$\\n\\n2) $729x \\\\cdot 727 + 731y \\\\cdot 727 = 1508 \\\\cdot 727$\\n\\nWe'll subtract equation 2 from equation 1 after this modification.\\n\\nLet's compute the new coefficients and constants:\\n\\nFor the first equation:\\n- New coefficient of $x$: $725 \\\\cdot 731$\\n- New coefficient of $y$: $727 \\\\cdot 731$\\n- New constant term: $1500 \\\\cdot 731$\\n\\nFor the second equation:\\n- New coefficient of $x$: $729 \\\\cdot 727$\\n- New coefficient of $y$: $731 \\\\cdot 727$\\n- New constant term: $1508 \\\\cdot 727$\\n\\nNow, we can subtract the second equation from the first one.\\n\\nThe Python code will be:\\n\\n```python\\nfrom sympy import symbols, Eq, solve\\n\\n# Define the symbolic variables\\nx, y = symbols('x y')\\n\\n# Calculate the new coefficients and constant terms\\ncoeff_x1 = 725 * 731\\ncoeff_y1 = 727 * 731\\nconst1 = 1500 * 731\\n\\ncoeff_x2 = 729 * 727\\ncoeff_y2 = 731 * 727\\nconst2 = 1508 * 727\\n\\n# Create the modified equations\\neq1_mod = Eq(coeff_x1*x + coeff_y1*y, const1)\\neq2_mod = Eq(coeff_x2*x + coeff_y2*y, const2)\\n\\n# Subtract the second equation from the first\\neq_subtraction = Eq(eq1_mod.lhs - eq2_mod.lhs, eq1_mod.rhs - eq2_mod.rhs)\\n\\nprint(eq_subtraction)\\n```\\n\\nPlease run this code to get the modified equation after subtraction.\", 'role': 'user'}, {'content': 'Eq(-8*x, 184)', 'role': 'assistant'}, {'content': \"Great, now we have the simplified equation:\\n\\n$$-8x = 184$$\\n\\nTo solve for $x$, we will divide both sides of the equation by $-8$. Let’s do that calculation now.\\n\\n$$ x = \\\\frac{184}{-8} $$\\n\\nLet's go ahead and perform this division.\\n\\n```python\\n# Calculate the value of x\\nx_value = 184 / -8\\n\\nprint(x_value)\\n```\\n\\nPlease run this code to find the value of $x$.\", 'role': 'user'}, {'content': '-23.0', 'role': 'assistant'}, {'content': \"We've established that $x = -23$.\\n\\nNext, we can substitute the value of $x$ into either of the original equations to solve for $y$. Let's substitute $x$ into the first equation:\\n\\n$$\\n725x + 727y = 1500\\n$$\\n\\nSubstituting $x = -23$ gives us:\\n\\n$$\\n725(-23) + 727y = 1500\\n$$\\n\\nNow we'll solve for $y$ using this equation. The Python code for this step is:\\n\\n```python\\n# Substitute x into the first original equation to solve for y\\nx_value = -23\\n\\n# Define the equation\\neq_for_y = Eq(725 * x_value + 727 * y, 1500)\\n\\n# Solve for y\\ny_value = solve(eq_for_y, y)\\n\\nprint(y_value)\\n```\\n\\nPlease execute this code to calculate the value of $y$.\", 'role': 'user'}, {'content': '[25]', 'role': 'assistant'}, {'content': \"We've found that $y = 25$. Now that we have both $x = -23$ and $y = 25$, we can compute $x - y$:\\n\\n$$ x - y = -23 - 25 $$\\n\\nLet's perform this calculation:\\n\\n```python\\n# Calculate x - y\\nresult = x_value - 25\\n\\nprint(result)\\n```\\n\\nPlease run the above code to find the value of $x - y$.\", 'role': 'user'}, {'content': '-48', 'role': 'assistant'}, {'content': 'With the results obtained, we have:\\n\\n$$ x - y = -48 $$\\n\\nTherefore, the value of $x - y$ is $-48$.\\n\\nWe can put this answer inside a box using LaTeX notation:\\n\\n$$ \\\\boxed{x - y = -48} $$', 'role': 'user'}], summary='With the results obtained, we have:\\n\\n$$ x - y = -48 $$\\n\\nTherefore, the value of $x - y$ is $-48$.\\n\\nWe can put this answer inside a box using LaTeX notation:\\n\\n$$ \\\\boxed{x - y = -48} $$', cost=({'total_cost': 0.6470400000000001, 'gpt-4': {'cost': 0.6470400000000001, 'prompt_tokens': 14178, 'completion_tokens': 3695, 'total_tokens': 17873}}, {'total_cost': 0.6470400000000001, 'gpt-4': {'cost': 0.6470400000000001, 'prompt_tokens': 14178, 'completion_tokens': 3695, 'total_tokens': 17873}}), human_input=[])" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# we set the prompt_type to \"python\", which is a simplified version of the default prompt.\n", "math_problem = \"Problem: If $725x + 727y = 1500$ and $729x+ 731y = 1508$, what is the value of $x - y$ ?\"\n", - "mathproxyagent.initiate_chat(assistant, problem=math_problem, prompt_type=\"python\")" + "mathproxyagent.initiate_chat(\n", + " assistant, message=mathproxyagent.message_generator, problem=math_problem, prompt_type=\"python\"\n", + ")" ] }, { @@ -299,7 +994,9 @@ "\n", "# we set the prompt_type to \"two_tools\", which allows the assistant to select wolfram alpha when necessary.\n", "math_problem = \"Find all numbers $a$ for which the graph of $y=x^2+a$ and the graph of $y=ax$ intersect. Express your answer in interval notation.\"\n", - "mathproxyagent.initiate_chat(assistant, problem=math_problem, prompt_type=\"two_tools\")" + "mathproxyagent.initiate_chat(\n", + " assistant, message=mathproxyagent.message_generator, problem=math_problem, prompt_type=\"two_tools\"\n", + ")" ] } ], @@ -319,7 +1016,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.17" + "version": "3.9.18" }, "orig_nbformat": 4 }, diff --git a/notebook/agentchat_RetrieveChat.ipynb b/notebook/agentchat_RetrieveChat.ipynb index b8cd70ec48f7..0ff689a8ece5 100644 --- a/notebook/agentchat_RetrieveChat.ipynb +++ b/notebook/agentchat_RetrieveChat.ipynb @@ -5,12 +5,6 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "\n", - "\n", "# Using RetrieveChat for Retrieve Augmented Code Generation and Question Answering\n", "\n", "AutoGen offers conversable agents powered by LLM, tool or human, which can be used to perform tasks collectively via automated chat. This framework allows tool use and human participation through multi-agent conversation.\n", @@ -92,13 +86,13 @@ "source": [ "````{=mdx}\n", ":::tip\n", - "Learn more about configuring LLMs for agents [here](/docs/llm_configuration).\n", + "Learn more about configuring LLMs for agents [here](/docs/topics/llm_configuration).\n", ":::\n", "````\n", "\n", "## Construct agents for RetrieveChat\n", "\n", - "We start by initializing the `RetrieveAssistantAgent` and `RetrieveUserProxyAgent`. The system message needs to be set to \"You are a helpful assistant.\" for RetrieveAssistantAgent. The detailed instructions are given in the user message. Later we will use the `RetrieveUserProxyAgent.generate_init_prompt` to combine the instructions and a retrieval augmented generation task for an initial prompt to be sent to the LLM assistant." + "We start by initializing the `RetrieveAssistantAgent` and `RetrieveUserProxyAgent`. The system message needs to be set to \"You are a helpful assistant.\" for RetrieveAssistantAgent. The detailed instructions are given in the user message. Later we will use the `RetrieveUserProxyAgent.message_generator` to combine the instructions and a retrieval augmented generation task for an initial prompt to be sent to the LLM assistant." ] }, { @@ -471,7 +465,7 @@ "# With human-in-loop, the conversation will continue until the user says \"exit\".\n", "code_problem = \"How can I use FLAML to perform a classification task and use spark to do parallel training. Train 30 seconds and force cancel jobs if time limit is reached.\"\n", "ragproxyagent.initiate_chat(\n", - " assistant, problem=code_problem, search_string=\"spark\"\n", + " assistant, message=ragproxyagent.message_generator, problem=code_problem, search_string=\"spark\"\n", ") # search_string is used as an extra filter for the embeddings search, in this case, we only want to search documents that contain \"spark\"." ] }, @@ -1026,7 +1020,7 @@ "assistant.reset()\n", "\n", "qa_problem = \"Who is the author of FLAML?\"\n", - "ragproxyagent.initiate_chat(assistant, problem=qa_problem)" + "ragproxyagent.initiate_chat(assistant, message=ragproxyagent.message_generator, problem=qa_problem)" ] }, { @@ -1439,7 +1433,7 @@ "# set `human_input_mode` to be `ALWAYS`, so the agent will ask for human input at every step.\n", "ragproxyagent.human_input_mode = \"ALWAYS\"\n", "code_problem = \"how to build a time series forecasting model for stock price using FLAML?\"\n", - "ragproxyagent.initiate_chat(assistant, problem=code_problem)" + "ragproxyagent.initiate_chat(assistant, message=ragproxyagent.message_generator, problem=code_problem)" ] }, { @@ -1997,7 +1991,9 @@ "# set `human_input_mode` to be `ALWAYS`, so the agent will ask for human input at every step.\n", "ragproxyagent.human_input_mode = \"ALWAYS\"\n", "qa_problem = \"Is there a function named `tune_automl` in FLAML?\"\n", - "ragproxyagent.initiate_chat(assistant, problem=qa_problem) # type \"exit\" to exit the conversation" + "ragproxyagent.initiate_chat(\n", + " assistant, message=ragproxyagent.message_generator, problem=qa_problem\n", + ") # type \"exit\" to exit the conversation" ] }, { @@ -2588,7 +2584,7 @@ " assistant.reset()\n", "\n", " qa_problem = questions[i]\n", - " ragproxyagent.initiate_chat(assistant, problem=qa_problem, n_results=30)" + " ragproxyagent.initiate_chat(assistant, message=ragproxyagent.message_generator, problem=qa_problem, n_results=30)" ] }, { @@ -3015,11 +3011,17 @@ " assistant.reset()\n", "\n", " qa_problem = questions[i]\n", - " ragproxyagent.initiate_chat(assistant, problem=qa_problem, n_results=10)" + " ragproxyagent.initiate_chat(assistant, message=ragproxyagent.message_generator, problem=qa_problem, n_results=10)" ] } ], "metadata": { + "front_matter": { + "description": "Explore the use of AutoGen's RetrieveChat for tasks like code generation from docstrings, answering complex questions with human feedback, and exploiting features like Update Context, custom prompts, and few-shot learning.", + "tags": [ + "RAG" + ] + }, "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", @@ -3035,8 +3037,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.12" - } + "version": "3.10.13" + }, + "skip_test": "Requires interactive usage" }, "nbformat": 4, "nbformat_minor": 4 diff --git a/notebook/agentchat_auto_feedback_from_code_execution.ipynb b/notebook/agentchat_auto_feedback_from_code_execution.ipynb index 8f232975b310..e639a6475e1b 100644 --- a/notebook/agentchat_auto_feedback_from_code_execution.ipynb +++ b/notebook/agentchat_auto_feedback_from_code_execution.ipynb @@ -8,12 +8,6 @@ } }, "source": [ - "\n", - "\n", "# Task Solving with Code Generation, Execution and Debugging\n", "\n", "AutoGen offers conversable LLM agents, which can be used to solve various tasks with human or automatic feedback, including tasks that require using tools via code.\n", @@ -35,7 +29,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 19, "metadata": {}, "outputs": [], "source": [ @@ -43,6 +37,7 @@ "\n", "from IPython import get_ipython\n", "from IPython.display import display, Image\n", + "import csv\n", "\n", "import autogen\n", "\n", @@ -61,7 +56,7 @@ "source": [ "````{=mdx}\n", ":::tip\n", - "Learn more about configuring LLMs for agents [here](/docs/llm_configuration).\n", + "Learn more about configuring LLMs for agents [here](/docs/topics/llm_configuration).\n", ":::\n", "````" ] @@ -90,8 +85,6 @@ "What date is today? Compare the year-to-date gain for META and TESLA.\n", "\n", "--------------------------------------------------------------------------------\n", - "self.reply_at_receive[sender]self.reply_at_receive[sender] True\n", - "recipitent sending assistant What date is today? Compare the year-to-date gain for META and TESLA. None\n", "\u001b[33massistant\u001b[0m (to user_proxy):\n", "\n", "To get the current date, we can use Python's `datetime` module. After that, we will need to retrieve the year-to-date (YTD) gain for both META (Meta Platforms, Inc.) and TESLA (Tesla, Inc.). We can do this by fetching the stock prices from the beginning of the year and the current stock prices, then calculating the percentage change.\n", @@ -113,53 +106,32 @@ "Please save the above code in a file named `get_current_date.py` and execute it to get today's date. After that, we will proceed to the next step of fetching the stock data.\n", "\n", "--------------------------------------------------------------------------------\n", - "self.reply_at_receive[sender]self.reply_at_receive[sender] True\n", "\u001b[31m\n", - ">>>>>>>> EXECUTING CODE BLOCK 0 (inferred language is python)...\u001b[0m\n", - "recipitent sending user_proxy To get the current date, we can use Python's `datetime` module. After that, we will need to retrieve the year-to-date (YTD) gain for both META (Meta Platforms, Inc.) and TESLA (Tesla, Inc.). We can do this by fetching the stock prices from the beginning of the year and the current stock prices, then calculating the percentage change.\n", - "\n", - "First, let's write a Python script to get the current date:\n", - "\n", - "```python\n", - "# filename: get_current_date.py\n", - "\n", - "from datetime import datetime\n", - "\n", - "# Get the current date\n", - "current_date = datetime.now()\n", - "\n", - "# Print the current date in YYYY-MM-DD format\n", - "print(current_date.strftime('%Y-%m-%d'))\n", - "```\n", - "\n", - "Please save the above code in a file named `get_current_date.py` and execute it to get today's date. After that, we will proceed to the next step of fetching the stock data. None\n", + ">>>>>>>> EXECUTING CODE BLOCK 0 (inferred language is python)...\u001b[0m\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ "\u001b[33muser_proxy\u001b[0m (to assistant):\n", "\n", "exitcode: 0 (execution succeeded)\n", "Code output: \n", - "2024-02-16\n", + "2024-03-03\n", "\n", "\n", "--------------------------------------------------------------------------------\n", - "self.reply_at_receive[sender]self.reply_at_receive[sender] True\n", - "recipitent sending assistant exitcode: 0 (execution succeeded)\n", - "Code output: \n", - "2024-02-16\n", - " None\n", "\u001b[33massistant\u001b[0m (to user_proxy):\n", "\n", - "Great, today's date is 2024-02-16.\n", + "Great, today's date is March 3, 2024. Now, let's proceed to the next step, which is to fetch the stock prices for META and TESLA.\n", "\n", - "Next, we will fetch the stock prices for META (Meta Platforms, Inc.) and TESLA (Tesla, Inc.) from the beginning of the year until today. To do this, we can use the `yfinance` library in Python, which allows us to retrieve historical stock data.\n", + "We will use Python to retrieve the stock data. For this purpose, we can use the `yfinance` library, which allows us to fetch historical market data from Yahoo Finance. If `yfinance` is not installed on your system, you will need to install it using `pip install yfinance`.\n", "\n", - "I will provide you with a Python script that will:\n", - "1. Fetch the stock prices for META and TESLA from the beginning of the year (2024-01-01) to today (2024-02-16).\n", - "2. Calculate the YTD gain for each stock.\n", - "\n", - "Please execute the following Python script:\n", + "Here's the Python script to fetch the YTD gain for META and TESLA:\n", "\n", "```python\n", - "# filename: compare_ytd_gains.py\n", + "# filename: ytd_gain_comparison.py\n", "\n", "import yfinance as yf\n", "from datetime import datetime\n", @@ -167,167 +139,60 @@ "# Define the tickers for Meta Platforms, Inc. and Tesla, Inc.\n", "tickers = [\"META\", \"TSLA\"]\n", "\n", - "# Define the start and end dates for the YTD period\n", - "start_date = datetime(2024, 1, 1)\n", - "end_date = datetime(2024, 2, 16)\n", + "# Define the start of the year\n", + "start_of_year = datetime(datetime.now().year, 1, 1)\n", + "\n", + "# Get the current date\n", + "current_date = datetime.now()\n", "\n", "# Function to calculate YTD gain\n", "def calculate_ytd_gain(ticker):\n", " # Fetch historical data for the ticker\n", - " data = yf.download(ticker, start=start_date, end=end_date)\n", + " data = yf.download(ticker, start=start_of_year, end=current_date)\n", + " \n", + " # Get the first available closing price of the year (approximation of the price at the start of the year)\n", + " start_price = data['Close'].iloc[0]\n", " \n", - " # Get the first and last closing prices\n", - " initial_price = data['Close'].iloc[0]\n", - " final_price = data['Close'].iloc[-1]\n", + " # Get the most recent closing price\n", + " end_price = data['Close'].iloc[-1]\n", " \n", " # Calculate the YTD gain\n", - " ytd_gain = ((final_price - initial_price) / initial_price) * 100\n", + " ytd_gain = ((end_price - start_price) / start_price) * 100\n", + " \n", " return ytd_gain\n", "\n", - "# Calculate and print the YTD gains for both stocks\n", - "ytd_gains = {}\n", + "# Calculate and print the YTD gain for each ticker\n", "for ticker in tickers:\n", - " ytd_gains[ticker] = calculate_ytd_gain(ticker)\n", - "\n", - "print(f\"YTD gain for META: {ytd_gains['META']:.2f}%\")\n", - "print(f\"YTD gain for TSLA: {ytd_gains['TSLA']:.2f}%\")\n", - "```\n", + " ytd_gain = calculate_ytd_gain(ticker)\n", + " print(f\"{ticker} YTD Gain: {ytd_gain:.2f}%\")\n", "\n", - "Before running this script, ensure that you have the `yfinance` library installed. If it's not installed, you can install it using the following command:\n", - "\n", - "```sh\n", - "pip install yfinance\n", "```\n", "\n", - "After installing `yfinance`, save the script as `compare_ytd_gains.py` and execute it to compare the YTD gains for META and TESLA.\n", + "Please save the above code in a file named `ytd_gain_comparison.py` and execute it. The script will output the YTD gain for both META and TESLA. If `yfinance` is not installed, you will need to install it first by running `pip install yfinance`.\n", "\n", "--------------------------------------------------------------------------------\n", - "self.reply_at_receive[sender]self.reply_at_receive[sender] True\n", "\u001b[31m\n", ">>>>>>>> EXECUTING CODE BLOCK 0 (inferred language is python)...\u001b[0m\n", - "\u001b[31m\n", - ">>>>>>>> EXECUTING CODE BLOCK 1 (inferred language is sh)...\u001b[0m\n", - "recipitent sending user_proxy Great, today's date is 2024-02-16.\n", - "\n", - "Next, we will fetch the stock prices for META (Meta Platforms, Inc.) and TESLA (Tesla, Inc.) from the beginning of the year until today. To do this, we can use the `yfinance` library in Python, which allows us to retrieve historical stock data.\n", - "\n", - "I will provide you with a Python script that will:\n", - "1. Fetch the stock prices for META and TESLA from the beginning of the year (2024-01-01) to today (2024-02-16).\n", - "2. Calculate the YTD gain for each stock.\n", - "\n", - "Please execute the following Python script:\n", - "\n", - "```python\n", - "# filename: compare_ytd_gains.py\n", - "\n", - "import yfinance as yf\n", - "from datetime import datetime\n", - "\n", - "# Define the tickers for Meta Platforms, Inc. and Tesla, Inc.\n", - "tickers = [\"META\", \"TSLA\"]\n", - "\n", - "# Define the start and end dates for the YTD period\n", - "start_date = datetime(2024, 1, 1)\n", - "end_date = datetime(2024, 2, 16)\n", - "\n", - "# Function to calculate YTD gain\n", - "def calculate_ytd_gain(ticker):\n", - " # Fetch historical data for the ticker\n", - " data = yf.download(ticker, start=start_date, end=end_date)\n", - " \n", - " # Get the first and last closing prices\n", - " initial_price = data['Close'].iloc[0]\n", - " final_price = data['Close'].iloc[-1]\n", - " \n", - " # Calculate the YTD gain\n", - " ytd_gain = ((final_price - initial_price) / initial_price) * 100\n", - " return ytd_gain\n", - "\n", - "# Calculate and print the YTD gains for both stocks\n", - "ytd_gains = {}\n", - "for ticker in tickers:\n", - " ytd_gains[ticker] = calculate_ytd_gain(ticker)\n", - "\n", - "print(f\"YTD gain for META: {ytd_gains['META']:.2f}%\")\n", - "print(f\"YTD gain for TSLA: {ytd_gains['TSLA']:.2f}%\")\n", - "```\n", - "\n", - "Before running this script, ensure that you have the `yfinance` library installed. If it's not installed, you can install it using the following command:\n", - "\n", - "```sh\n", - "pip install yfinance\n", - "```\n", - "\n", - "After installing `yfinance`, save the script as `compare_ytd_gains.py` and execute it to compare the YTD gains for META and TESLA. None\n", "\u001b[33muser_proxy\u001b[0m (to assistant):\n", "\n", "exitcode: 0 (execution succeeded)\n", "Code output: \n", - "YTD gain for META: 39.78%\n", - "YTD gain for TSLA: -19.31%\n", - "\n", - "Requirement already satisfied: yfinance in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (0.2.36)\n", - "Requirement already satisfied: pandas>=1.3.0 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (2.2.0)\n", - "Requirement already satisfied: numpy>=1.16.5 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (1.26.4)\n", - "Requirement already satisfied: requests>=2.31 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (2.31.0)\n", - "Requirement already satisfied: multitasking>=0.0.7 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (0.0.11)\n", - "Requirement already satisfied: lxml>=4.9.1 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (5.1.0)\n", - "Requirement already satisfied: appdirs>=1.4.4 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (1.4.4)\n", - "Requirement already satisfied: pytz>=2022.5 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (2024.1)\n", - "Requirement already satisfied: frozendict>=2.3.4 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (2.4.0)\n", - "Requirement already satisfied: peewee>=3.16.2 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (3.17.1)\n", - "Requirement already satisfied: beautifulsoup4>=4.11.1 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (4.12.3)\n", - "Requirement already satisfied: html5lib>=1.1 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (1.1)\n", - "Requirement already satisfied: soupsieve>1.2 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from beautifulsoup4>=4.11.1->yfinance) (2.5)\n", - "Requirement already satisfied: six>=1.9 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from html5lib>=1.1->yfinance) (1.16.0)\n", - "Requirement already satisfied: webencodings in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from html5lib>=1.1->yfinance) (0.5.1)\n", - "Requirement already satisfied: python-dateutil>=2.8.2 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from pandas>=1.3.0->yfinance) (2.8.2)\n", - "Requirement already satisfied: tzdata>=2022.7 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from pandas>=1.3.0->yfinance) (2024.1)\n", - "Requirement already satisfied: charset-normalizer<4,>=2 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from requests>=2.31->yfinance) (3.3.2)\n", - "Requirement already satisfied: idna<4,>=2.5 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from requests>=2.31->yfinance) (3.6)\n", - "Requirement already satisfied: urllib3<3,>=1.21.1 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from requests>=2.31->yfinance) (1.26.18)\n", - "Requirement already satisfied: certifi>=2017.4.17 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from requests>=2.31->yfinance) (2024.2.2)\n", + "META YTD Gain: 45.05%\n", + "TSLA YTD Gain: -18.43%\n", "\n", "\n", "--------------------------------------------------------------------------------\n", - "self.reply_at_receive[sender]self.reply_at_receive[sender] True\n", - "recipitent sending assistant exitcode: 0 (execution succeeded)\n", - "Code output: \n", - "YTD gain for META: 39.78%\n", - "YTD gain for TSLA: -19.31%\n", - "\n", - "Requirement already satisfied: yfinance in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (0.2.36)\n", - "Requirement already satisfied: pandas>=1.3.0 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (2.2.0)\n", - "Requirement already satisfied: numpy>=1.16.5 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (1.26.4)\n", - "Requirement already satisfied: requests>=2.31 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (2.31.0)\n", - "Requirement already satisfied: multitasking>=0.0.7 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (0.0.11)\n", - "Requirement already satisfied: lxml>=4.9.1 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (5.1.0)\n", - "Requirement already satisfied: appdirs>=1.4.4 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (1.4.4)\n", - "Requirement already satisfied: pytz>=2022.5 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (2024.1)\n", - "Requirement already satisfied: frozendict>=2.3.4 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (2.4.0)\n", - "Requirement already satisfied: peewee>=3.16.2 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (3.17.1)\n", - "Requirement already satisfied: beautifulsoup4>=4.11.1 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (4.12.3)\n", - "Requirement already satisfied: html5lib>=1.1 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (1.1)\n", - "Requirement already satisfied: soupsieve>1.2 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from beautifulsoup4>=4.11.1->yfinance) (2.5)\n", - "Requirement already satisfied: six>=1.9 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from html5lib>=1.1->yfinance) (1.16.0)\n", - "Requirement already satisfied: webencodings in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from html5lib>=1.1->yfinance) (0.5.1)\n", - "Requirement already satisfied: python-dateutil>=2.8.2 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from pandas>=1.3.0->yfinance) (2.8.2)\n", - "Requirement already satisfied: tzdata>=2022.7 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from pandas>=1.3.0->yfinance) (2024.1)\n", - "Requirement already satisfied: charset-normalizer<4,>=2 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from requests>=2.31->yfinance) (3.3.2)\n", - "Requirement already satisfied: idna<4,>=2.5 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from requests>=2.31->yfinance) (3.6)\n", - "Requirement already satisfied: urllib3<3,>=1.21.1 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from requests>=2.31->yfinance) (1.26.18)\n", - "Requirement already satisfied: certifi>=2017.4.17 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from requests>=2.31->yfinance) (2024.2.2)\n", - " None\n", "\u001b[33massistant\u001b[0m (to user_proxy):\n", "\n", - "The year-to-date (YTD) gain for META (Meta Platforms, Inc.) is approximately 39.78%, and the YTD loss for TESLA (Tesla, Inc.) is approximately -19.31%. This means that so far this year, META's stock price has increased by about 39.78%, while TESLA's stock price has decreased by about 19.31%.\n", + "The year-to-date (YTD) gain for META (Meta Platforms, Inc.) is 45.05%, indicating that the stock price has increased by this percentage since the beginning of the year.\n", "\n", - "Please note that stock prices are subject to market fluctuations, and the values provided are based on the closing prices from the start of the year to today's date.\n", + "On the other hand, TESLA (Tesla, Inc.) has a YTD loss of -18.43%, which means that the stock price has decreased by this percentage since the start of the year.\n", + "\n", + "In summary, as of today, March 3, 2024, META has had a significant gain since the beginning of the year, while TESLA has experienced a decline.\n", "\n", "TERMINATE\n", "\n", - "--------------------------------------------------------------------------------\n", - "self.reply_at_receive[sender]self.reply_at_receive[sender] True\n" + "--------------------------------------------------------------------------------\n" ] } ], @@ -392,9 +257,9 @@ "name": "stdout", "output_type": "stream", "text": [ - "Chat history: [{'content': 'What date is today? Compare the year-to-date gain for META and TESLA.', 'role': 'assistant'}, {'content': \"To get the current date, we can use Python's `datetime` module. After that, we will need to retrieve the year-to-date (YTD) gain for both META (Meta Platforms, Inc.) and TESLA (Tesla, Inc.). We can do this by fetching the stock prices from the beginning of the year and the current stock prices, then calculating the percentage change.\\n\\nFirst, let's write a Python script to get the current date:\\n\\n```python\\n# filename: get_current_date.py\\n\\nfrom datetime import datetime\\n\\n# Get the current date\\ncurrent_date = datetime.now()\\n\\n# Print the current date in YYYY-MM-DD format\\nprint(current_date.strftime('%Y-%m-%d'))\\n```\\n\\nPlease save the above code in a file named `get_current_date.py` and execute it to get today's date. After that, we will proceed to the next step of fetching the stock data.\", 'role': 'user'}, {'content': 'exitcode: 0 (execution succeeded)\\nCode output: \\n2024-02-16\\n', 'role': 'assistant'}, {'content': 'Great, today\\'s date is 2024-02-16.\\n\\nNext, we will fetch the stock prices for META (Meta Platforms, Inc.) and TESLA (Tesla, Inc.) from the beginning of the year until today. To do this, we can use the `yfinance` library in Python, which allows us to retrieve historical stock data.\\n\\nI will provide you with a Python script that will:\\n1. Fetch the stock prices for META and TESLA from the beginning of the year (2024-01-01) to today (2024-02-16).\\n2. Calculate the YTD gain for each stock.\\n\\nPlease execute the following Python script:\\n\\n```python\\n# filename: compare_ytd_gains.py\\n\\nimport yfinance as yf\\nfrom datetime import datetime\\n\\n# Define the tickers for Meta Platforms, Inc. and Tesla, Inc.\\ntickers = [\"META\", \"TSLA\"]\\n\\n# Define the start and end dates for the YTD period\\nstart_date = datetime(2024, 1, 1)\\nend_date = datetime(2024, 2, 16)\\n\\n# Function to calculate YTD gain\\ndef calculate_ytd_gain(ticker):\\n # Fetch historical data for the ticker\\n data = yf.download(ticker, start=start_date, end=end_date)\\n \\n # Get the first and last closing prices\\n initial_price = data[\\'Close\\'].iloc[0]\\n final_price = data[\\'Close\\'].iloc[-1]\\n \\n # Calculate the YTD gain\\n ytd_gain = ((final_price - initial_price) / initial_price) * 100\\n return ytd_gain\\n\\n# Calculate and print the YTD gains for both stocks\\nytd_gains = {}\\nfor ticker in tickers:\\n ytd_gains[ticker] = calculate_ytd_gain(ticker)\\n\\nprint(f\"YTD gain for META: {ytd_gains[\\'META\\']:.2f}%\")\\nprint(f\"YTD gain for TSLA: {ytd_gains[\\'TSLA\\']:.2f}%\")\\n```\\n\\nBefore running this script, ensure that you have the `yfinance` library installed. If it\\'s not installed, you can install it using the following command:\\n\\n```sh\\npip install yfinance\\n```\\n\\nAfter installing `yfinance`, save the script as `compare_ytd_gains.py` and execute it to compare the YTD gains for META and TESLA.', 'role': 'user'}, {'content': 'exitcode: 0 (execution succeeded)\\nCode output: \\nYTD gain for META: 39.78%\\nYTD gain for TSLA: -19.31%\\n\\nRequirement already satisfied: yfinance in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (0.2.36)\\nRequirement already satisfied: pandas>=1.3.0 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (2.2.0)\\nRequirement already satisfied: numpy>=1.16.5 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (1.26.4)\\nRequirement already satisfied: requests>=2.31 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (2.31.0)\\nRequirement already satisfied: multitasking>=0.0.7 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (0.0.11)\\nRequirement already satisfied: lxml>=4.9.1 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (5.1.0)\\nRequirement already satisfied: appdirs>=1.4.4 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (1.4.4)\\nRequirement already satisfied: pytz>=2022.5 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (2024.1)\\nRequirement already satisfied: frozendict>=2.3.4 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (2.4.0)\\nRequirement already satisfied: peewee>=3.16.2 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (3.17.1)\\nRequirement already satisfied: beautifulsoup4>=4.11.1 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (4.12.3)\\nRequirement already satisfied: html5lib>=1.1 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (1.1)\\nRequirement already satisfied: soupsieve>1.2 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from beautifulsoup4>=4.11.1->yfinance) (2.5)\\nRequirement already satisfied: six>=1.9 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from html5lib>=1.1->yfinance) (1.16.0)\\nRequirement already satisfied: webencodings in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from html5lib>=1.1->yfinance) (0.5.1)\\nRequirement already satisfied: python-dateutil>=2.8.2 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from pandas>=1.3.0->yfinance) (2.8.2)\\nRequirement already satisfied: tzdata>=2022.7 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from pandas>=1.3.0->yfinance) (2024.1)\\nRequirement already satisfied: charset-normalizer<4,>=2 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from requests>=2.31->yfinance) (3.3.2)\\nRequirement already satisfied: idna<4,>=2.5 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from requests>=2.31->yfinance) (3.6)\\nRequirement already satisfied: urllib3<3,>=1.21.1 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from requests>=2.31->yfinance) (1.26.18)\\nRequirement already satisfied: certifi>=2017.4.17 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from requests>=2.31->yfinance) (2024.2.2)\\n', 'role': 'assistant'}, {'content': \"The year-to-date (YTD) gain for META (Meta Platforms, Inc.) is approximately 39.78%, and the YTD loss for TESLA (Tesla, Inc.) is approximately -19.31%. This means that so far this year, META's stock price has increased by about 39.78%, while TESLA's stock price has decreased by about 19.31%.\\n\\nPlease note that stock prices are subject to market fluctuations, and the values provided are based on the closing prices from the start of the year to today's date.\\n\\nTERMINATE\", 'role': 'user'}]\n", - "Summary: Today's date is 2024-02-16. The year-to-date gain for META (Meta Platforms, Inc.) is approximately 39.78%, while TESLA (Tesla, Inc.) has experienced a year-to-date loss of about -19.31%.\n", - "Cost info: ({'total_cost': 0.21233999999999997, 'gpt-4': {'cost': 0.21233999999999997, 'prompt_tokens': 5348, 'completion_tokens': 865, 'total_tokens': 6213}}, {'total_cost': 0.1866, 'gpt-4': {'cost': 0.1866, 'prompt_tokens': 4858, 'completion_tokens': 681, 'total_tokens': 5539}})\n" + "Chat history: [{'content': 'What date is today? Compare the year-to-date gain for META and TESLA.', 'role': 'assistant'}, {'content': \"To get the current date, we can use Python's `datetime` module. After that, we will need to retrieve the year-to-date (YTD) gain for both META (Meta Platforms, Inc.) and TESLA (Tesla, Inc.). We can do this by fetching the stock prices from the beginning of the year and the current stock prices, then calculating the percentage change.\\n\\nFirst, let's write a Python script to get the current date:\\n\\n```python\\n# filename: get_current_date.py\\n\\nfrom datetime import datetime\\n\\n# Get the current date\\ncurrent_date = datetime.now()\\n\\n# Print the current date in YYYY-MM-DD format\\nprint(current_date.strftime('%Y-%m-%d'))\\n```\\n\\nPlease save the above code in a file named `get_current_date.py` and execute it to get today's date. After that, we will proceed to the next step of fetching the stock data.\", 'role': 'user'}, {'content': 'exitcode: 0 (execution succeeded)\\nCode output: \\n2024-03-03\\n', 'role': 'assistant'}, {'content': 'Great, today\\'s date is March 3, 2024. Now, let\\'s proceed to the next step, which is to fetch the stock prices for META and TESLA.\\n\\nWe will use Python to retrieve the stock data. For this purpose, we can use the `yfinance` library, which allows us to fetch historical market data from Yahoo Finance. If `yfinance` is not installed on your system, you will need to install it using `pip install yfinance`.\\n\\nHere\\'s the Python script to fetch the YTD gain for META and TESLA:\\n\\n```python\\n# filename: ytd_gain_comparison.py\\n\\nimport yfinance as yf\\nfrom datetime import datetime\\n\\n# Define the tickers for Meta Platforms, Inc. and Tesla, Inc.\\ntickers = [\"META\", \"TSLA\"]\\n\\n# Define the start of the year\\nstart_of_year = datetime(datetime.now().year, 1, 1)\\n\\n# Get the current date\\ncurrent_date = datetime.now()\\n\\n# Function to calculate YTD gain\\ndef calculate_ytd_gain(ticker):\\n # Fetch historical data for the ticker\\n data = yf.download(ticker, start=start_of_year, end=current_date)\\n \\n # Get the first available closing price of the year (approximation of the price at the start of the year)\\n start_price = data[\\'Close\\'].iloc[0]\\n \\n # Get the most recent closing price\\n end_price = data[\\'Close\\'].iloc[-1]\\n \\n # Calculate the YTD gain\\n ytd_gain = ((end_price - start_price) / start_price) * 100\\n \\n return ytd_gain\\n\\n# Calculate and print the YTD gain for each ticker\\nfor ticker in tickers:\\n ytd_gain = calculate_ytd_gain(ticker)\\n print(f\"{ticker} YTD Gain: {ytd_gain:.2f}%\")\\n\\n```\\n\\nPlease save the above code in a file named `ytd_gain_comparison.py` and execute it. The script will output the YTD gain for both META and TESLA. If `yfinance` is not installed, you will need to install it first by running `pip install yfinance`.', 'role': 'user'}, {'content': 'exitcode: 0 (execution succeeded)\\nCode output: \\nMETA YTD Gain: 45.05%\\nTSLA YTD Gain: -18.43%\\n', 'role': 'assistant'}, {'content': 'The year-to-date (YTD) gain for META (Meta Platforms, Inc.) is 45.05%, indicating that the stock price has increased by this percentage since the beginning of the year.\\n\\nOn the other hand, TESLA (Tesla, Inc.) has a YTD loss of -18.43%, which means that the stock price has decreased by this percentage since the start of the year.\\n\\nIn summary, as of today, March 3, 2024, META has had a significant gain since the beginning of the year, while TESLA has experienced a decline.\\n\\nTERMINATE', 'role': 'user'}]\n", + "Summary: Today's date is March 3, 2024. The year-to-date (YTD) gain for META (Meta Platforms, Inc.) is 45.05%, indicating an increase in stock price since the beginning of the year. In contrast, TESLA (Tesla, Inc.) has a YTD loss of -18.43%, showing a decrease in stock price over the same period.\n", + "Cost info: ({'total_cost': 0.14834999999999998, 'gpt-4': {'cost': 0.14834999999999998, 'prompt_tokens': 3267, 'completion_tokens': 839, 'total_tokens': 4106}}, {'total_cost': 0})\n" ] } ], @@ -424,47 +289,56 @@ "text": [ "\u001b[33muser_proxy\u001b[0m (to assistant):\n", "\n", - "Plot a chart of their stock price change YTD and save to stock_price_ytd.png.\n", + "Plot a chart of their stock price change YTD. Save the data to stock_price_ytd.csv, and save the plot to stock_price_ytd.png.\n", "\n", "--------------------------------------------------------------------------------\n", - "self.reply_at_receive[sender]self.reply_at_receive[sender] True\n", - "recipitent sending assistant Plot a chart of their stock price change YTD and save to stock_price_ytd.png. None\n", "\u001b[33massistant\u001b[0m (to user_proxy):\n", "\n", - "To plot a chart of the YTD stock price changes for META and TESLA and save it to a file named `stock_price_ytd.png`, we will use Python with libraries such as `matplotlib` for plotting and `yfinance` for fetching the stock data.\n", + "To plot a chart of the stock price change YTD for META and TESLA, and to save the data to `stock_price_ytd.csv` and the plot to `stock_price_ytd.png`, we will use Python with the `yfinance`, `pandas`, and `matplotlib` libraries. If `matplotlib` is not installed on your system, you will need to install it using `pip install matplotlib`.\n", "\n", - "Here is the Python script that will perform the task:\n", + "Here's the Python script to fetch the stock data, save it to a CSV file, plot the chart, and save the plot to a PNG file:\n", "\n", "```python\n", "# filename: plot_stock_price_ytd.py\n", "\n", "import yfinance as yf\n", + "import pandas as pd\n", "import matplotlib.pyplot as plt\n", "from datetime import datetime\n", "\n", "# Define the tickers for Meta Platforms, Inc. and Tesla, Inc.\n", "tickers = [\"META\", \"TSLA\"]\n", "\n", - "# Define the start and end dates for the YTD period\n", - "start_date = datetime(2024, 1, 1)\n", - "end_date = datetime(2024, 2, 16)\n", + "# Define the start of the year\n", + "start_of_year = datetime(datetime.now().year, 1, 1)\n", "\n", - "# Fetch historical data for both tickers\n", - "data = yf.download(tickers, start=start_date, end=end_date)['Close']\n", + "# Get the current date\n", + "current_date = datetime.now()\n", "\n", - "# Normalize the data to 100 (percentage change) based on the first closing price\n", - "normalized_data = (data / data.iloc[0]) * 100\n", + "# Initialize a dictionary to store data\n", + "stock_data = {}\n", "\n", - "# Plot the data\n", - "plt.figure(figsize=(14, 7))\n", + "# Fetch historical data for each ticker\n", "for ticker in tickers:\n", - " plt.plot(normalized_data.index, normalized_data[ticker], label=ticker)\n", + " stock_data[ticker] = yf.download(ticker, start=start_of_year, end=current_date)\n", + "\n", + "# Combine the closing prices of each stock into a single DataFrame\n", + "combined_data = pd.DataFrame({\n", + " ticker: data['Close']\n", + " for ticker, data in stock_data.items()\n", + "})\n", + "\n", + "# Save the combined data to CSV\n", + "combined_data.to_csv('stock_price_ytd.csv')\n", + "\n", + "# Plot the normalized stock price change YTD\n", + "normalized_data = (combined_data / combined_data.iloc[0]) * 100\n", + "normalized_data.plot(figsize=(10, 5))\n", "\n", - "# Add titles and labels\n", + "# Set plot title and labels\n", "plt.title('Stock Price Change YTD')\n", "plt.xlabel('Date')\n", "plt.ylabel('Normalized Price (Base 100)')\n", - "plt.legend()\n", "\n", "# Save the plot to a PNG file\n", "plt.savefig('stock_price_ytd.png')\n", @@ -473,335 +347,429 @@ "plt.show()\n", "```\n", "\n", - "Before running this script, ensure that you have the `matplotlib` library installed. If it's not installed, you can install it using the following command:\n", - "\n", - "```sh\n", - "pip install matplotlib\n", - "```\n", - "\n", - "After installing `matplotlib`, save the script as `plot_stock_price_ytd.py` and execute it. The script will display the chart and save it as `stock_price_ytd.png` in the current directory.\n", + "Please save the above code in a file named `plot_stock_price_ytd.py` and execute it. The script will fetch the stock data, save it to `stock_price_ytd.csv`, plot the chart, and save the plot to `stock_price_ytd.png`. If `matplotlib` is not installed, you will need to install it first by running `pip install matplotlib`.\n", "\n", "--------------------------------------------------------------------------------\n", - "self.reply_at_receive[sender]self.reply_at_receive[sender] True\n", "\u001b[31m\n", ">>>>>>>> EXECUTING CODE BLOCK 0 (inferred language is python)...\u001b[0m\n", - "recipitent sending user_proxy To plot a chart of the YTD stock price changes for META and TESLA and save it to a file named `stock_price_ytd.png`, we will use Python with libraries such as `matplotlib` for plotting and `yfinance` for fetching the stock data.\n", - "\n", - "Here is the Python script that will perform the task:\n", - "\n", - "```python\n", - "# filename: plot_stock_price_ytd.py\n", - "\n", - "import yfinance as yf\n", - "import matplotlib.pyplot as plt\n", - "from datetime import datetime\n", - "\n", - "# Define the tickers for Meta Platforms, Inc. and Tesla, Inc.\n", - "tickers = [\"META\", \"TSLA\"]\n", - "\n", - "# Define the start and end dates for the YTD period\n", - "start_date = datetime(2024, 1, 1)\n", - "end_date = datetime(2024, 2, 16)\n", - "\n", - "# Fetch historical data for both tickers\n", - "data = yf.download(tickers, start=start_date, end=end_date)['Close']\n", + "\u001b[33muser_proxy\u001b[0m (to assistant):\n", "\n", - "# Normalize the data to 100 (percentage change) based on the first closing price\n", - "normalized_data = (data / data.iloc[0]) * 100\n", + "exitcode: 0 (execution succeeded)\n", + "Code output: \n", + "Figure(1000x500)\n", "\n", - "# Plot the data\n", - "plt.figure(figsize=(14, 7))\n", - "for ticker in tickers:\n", - " plt.plot(normalized_data.index, normalized_data[ticker], label=ticker)\n", "\n", - "# Add titles and labels\n", - "plt.title('Stock Price Change YTD')\n", - "plt.xlabel('Date')\n", - "plt.ylabel('Normalized Price (Base 100)')\n", - "plt.legend()\n", - "\n", - "# Save the plot to a PNG file\n", - "plt.savefig('stock_price_ytd.png')\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33massistant\u001b[0m (to user_proxy):\n", "\n", - "# Show the plot\n", - "plt.show()\n", - "```\n", + "The script has successfully executed and created a chart showing the stock price change YTD for META and TESLA. It has also saved the data to `stock_price_ytd.csv` and the plot to `stock_price_ytd.png`.\n", "\n", - "Before running this script, ensure that you have the `matplotlib` library installed. If it's not installed, you can install it using the following command:\n", + "You should now have a CSV file with the stock price data and a PNG image with the plotted chart. The chart is normalized to show the percentage change in stock prices from the beginning of the year, with the starting price indexed to 100 for comparison purposes.\n", "\n", - "```sh\n", - "pip install matplotlib\n", - "```\n", + "TERMINATE\n", "\n", - "After installing `matplotlib`, save the script as `plot_stock_price_ytd.py` and execute it. The script will display the chart and save it as `stock_price_ytd.png` in the current directory. None\n", + "--------------------------------------------------------------------------------\n" + ] + } + ], + "source": [ + "# followup of the previous question\n", + "user_proxy.send(\n", + " recipient=assistant,\n", + " message=\"\"\"Plot a chart of their stock price change YTD. Save the data to stock_price_ytd.csv, and save the plot to stock_price_ytd.png.\"\"\",\n", + ")" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's display the generated figure." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA+gAAAH0CAYAAACuKActAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAA9hAAAPYQGoP6dpAACsdUlEQVR4nOzdd3hTdf/G8Xe6d9oCXexdNsgSZIhUlgsFEQUF3PqgPxyo6OMeKG4coI8oLhwMFyqKDEFBNsiUVTZtKd175Pz+OG2gtqUF2iZt79d15Upyzsk5nxQCvfNdFsMwDERERERERETEoVwcXYCIiIiIiIiIKKCLiIiIiIiIOAUFdBEREREREREnoIAuIiIiIiIi4gQU0EVEREREREScgAK6iIiIiIiIiBNQQBcRERERERFxAgroIiIiIiIiIk5AAV1ERERERETECSigi4iIiIiIiDgBBXQRERERERERJ6CALiIiIiIiIuIEFNBFREREREREnIACuoiIiIiIiIgTUEAXERERERERcQIK6CIiIiIiIiJOQAFdRERERERExAkooIuIiIiIiIg4AQV0ERERERERESeggC4iIiIiIiLiBBTQRURERERERJyAArqIiIiIiIiIE1BAFxEREREREXECCugiIiIiIiIiTkABXURERERERMQJKKCLiIiIiIiIOAEFdBEREREREREnoIAuIiIiIiIi4gQU0EVEREREREScgAK6iIiIiIiIiBNQQBcRERERERFxAgroIiIiIiIiIk5AAV1ERERERETECSigi4iIiIiIiDgBBXQRERERERERJ6CALiIiIiIiIuIEFNBFREREREREnIACuoiI1GrLly/HYrEwb948h1x/9uzZWCwWDhw44JDrl8fFF19M+/btHV2GiIhIjaeALiIiVW7r1q2MHDmSxo0b4+XlRf369bn00kt56623ihz3wgsv8O233zqmyHI4cOAAFovFfnN1daVRo0ZcffXVbN682dHllSklJYWnn36aTp064efnh7e3N+3bt+fhhx/m2LFjji6vSuTm5tKhQweaN29OZmZmsf0HDhzAx8eHa6+9tsif9Zluy5cvL/Z3w93dnbp169K7d28effRRDh065IB3KyIizs5iGIbh6CJERKT2WLVqFQMGDKBRo0aMGzeOsLAwDh8+zF9//cW+ffvYu3ev/Vg/Pz9GjhzJ7NmzK62e5cuXM2DAAObOncvIkSPP6rUHDhygadOmXH/99QwbNoz8/Hx27tzJjBkzyM7O5q+//qJz585nPEd+fj65ubl4enpisVjO452cnf379xMVFcWhQ4e49tpr6dOnDx4eHvz999988cUXBAcHs3v3bsBsQY+Pj2fbtm1VVl9VWr16NRdddBGPPPIIL7zwQpF9l19+OX/88Qc7d+5kyZIlRfZ98sknLF68mE8//bTI9ksvvZTMzMwifzdsNhuJiYmsW7eOBQsWYLFYmDVrFqNHj6709yciItWHm6MLEBGR2uX555/HarWybt06AgMDi+yLi4tzTFHn6YILLmDs2LH25xdddBFXXnklM2bM4L333ivxNenp6fj6+uLq6oqrq2tVlQpAXl4e11xzDbGxsSxfvpw+ffoU2f/888/z0ksvVWlNjtSrVy/uvPNOXnnlFcaMGUO7du0AmD9/Pj/++CPvvvsu4eHhRf6MAf766y8WL15cbDtgH7Lw778bAAcPHmTQoEGMGzeONm3a0KlTp8p5YyIiUu2oi7uIiFSpffv20a5du2LhHCAkJMT+2GKxkJ6ezscff2zvJjx+/Hj7/k2bNjF06FACAgLw8/Nj4MCB/PXXX8XOmZSUxH333UeTJk3w9PSkQYMG3HTTTcTHx5daY3Z2NpdffjlWq5VVq1ad9Xu85JJLAIiOjgZOjTP//fffufvuuwkJCaFBgwZF9v17DPrPP/9M//798ff3JyAggO7duzNnzpwix6xZs4YhQ4ZgtVrx8fGhf//+/Pnnn2XWN3/+fLZs2cJjjz1WLJwDBAQE8PzzzxfbvmPHDgYMGICPjw/169dn2rRpRfbn5OTwxBNP0LVrV6xWK76+vvTt25dly5YVOa6w+/crr7zC+++/T/PmzfH09KR79+6sW7eu2HXnzp1L27Zt8fLyon379nzzzTeMHz+eJk2aFDnOZrPxxhtv0K5dO7y8vAgNDeWOO+4gMTGxzJ/J1KlTqVu3LnfeeSeGYZCWlsakSZPs4b0iNW7cmNmzZ5OTk1PsZygiIrWbWtBFRKRKNW7cmNWrV7Nt27YzTjz26aefcuutt9KjRw9uv/12AJo3bw7A9u3b6du3LwEBATz00EO4u7vz3nvvcfHFF/P777/Ts2dPANLS0ujbty87d+7k5ptv5oILLiA+Pp7vv/+eI0eOULdu3WLXzczM5KqrrmL9+vX89ttvdO/e/azf4759+wCoU6dOke1333039erV44knniA9Pb3U18+ePZubb76Zdu3aMWXKFAIDA9m0aROLFi3ihhtuAGDp0qUMHTqUrl278uSTT+Li4sJHH33EJZdcwsqVK+nRo0ep5//+++8BuPHGG8v9nhITExkyZAjXXHMNo0aNYt68eTz88MN06NCBoUOHAuaY9g8++IDrr7+e2267jdTUVGbNmsXgwYNZu3Ztse7+c+bMITU1lTvuuAOLxcK0adO45ppr2L9/P+7u7gD8+OOPXHfddXTo0IGpU6eSmJjILbfcQv369YvVeMcddzB79mwmTJjAvffeS3R0NG+//TabNm3izz//tJ+zJFarlenTp3PttdfywQcfsGPHDmJjY/n5558rZehBr169aN68OYsXL67wc4uISDVmiIiIVKFff/3VcHV1NVxdXY1evXoZDz30kPHLL78YOTk5xY719fU1xo0bV2z78OHDDQ8PD2Pfvn32bceOHTP8/f2Nfv362bc98cQTBmAsWLCg2DlsNpthGIaxbNkyAzDmzp1rpKamGv379zfq1q1rbNq0qcz3Eh0dbQDG008/bZw4ccKIiYkxli9fbnTp0sUAjPnz5xuGYRgfffSRARh9+vQx8vLyipyjcF90dLRhGIaRlJRk+Pv7Gz179jQyMzNLrNlmsxktW7Y0Bg8ebN9mGIaRkZFhNG3a1Lj00kvPWHeXLl0Mq9Va5vsr1L9/fwMwPvnkE/u27OxsIywszBgxYoR9W15enpGdnV3ktYmJiUZoaKhx880327cV/tzq1KljJCQk2Ld/9913BmD88MMP9m0dOnQwGjRoYKSmptq3LV++3ACMxo0b27etXLnSAIzPP/+8yPUXLVpU4vbSXH755YbVajVcXV2NKVOmnPHY//znP0Zpv0oVvseXX3651NdfddVVBmAkJyeXqzYREan51MVdRESq1KWXXsrq1au58sor2bJlC9OmTWPw4MHUr1/f3rJ7Jvn5+fz6668MHz6cZs2a2beHh4dzww038Mcff5CSkgKYXbk7derE1VdfXew8/24VTU5OZtCgQezatYvly5eXObnb6Z588knq1atHWFgYF198Mfv27eOll17immuuKXLcbbfdVuZ488WLF5OamsojjzyCl5dXiTVv3ryZPXv2cMMNN3Dy5Eni4+OJj48nPT2dgQMHsmLFCmw2W6nXSElJwd/fv9zvD8wJ+04fS+3h4UGPHj3Yv3+/fZurqyseHh6A2d08ISGBvLw8unXrxsaNG4ud87rrriMoKMj+vG/fvgD2cx47doytW7dy00034efnZz+uf//+dOjQoci55s6di9Vq5dJLL7X/POLj4+natSt+fn7FutmX5p133iEnJ4eGDRvy+OOPl+s156rwPaWmplbqdUREpPpQF3cREaly3bt3Z8GCBeTk5LBlyxa++eYbXn/9dUaOHMnmzZtp27Ztqa89ceIEGRkZtG7duti+Nm3aYLPZOHz4MO3atWPfvn2MGDGiXDVNmjSJrKwsNm3aZJ8krLxuv/12rr32WlxcXAgMDKRdu3Z4enoWO65p06Zlnquwe/yZuv/v2bMHgHHjxpV6THJycpHwe7qAgIAiwbo8GjRoUOxLjaCgIP7+++8i2z7++GNeffVVdu3aRW5urn17Se+9UaNGxc4H2MeMHzx4EIAWLVoUe22LFi2KhP49e/aQnJxcZB6D05V3AsJGjRoREhJCu3bt8Pb2LtdrzlVaWhrAWX9ZIiIiNZcCuoiIOIyHhwfdu3ene/futGrVigkTJjB37lyefPLJKq/lqquu4ssvv+TFF1/kk08+wcWl/J3MWrZsSVRUVJnHVVTgK2wdf/nll0tt6T+9xfnfIiMj2bRpE4cPH6Zhw4blumZpLf/Gaau1fvbZZ4wfP57hw4czefJkQkJCcHV1ZerUqfYvHs72nOVls9kICQnh888/L3F/vXr1zvqclW3btm2EhIQQEBDg6FJERMRJKKCLiIhT6NatGwDHjx+3bytpcq569erh4+PDP//8U2zfrl27cHFxsYfO5s2bl3vt7uHDhzNo0CDGjx+Pv78/M2bMOJe3cd4KJ8Lbtm1biS3Hpx8TEBBQri8G/u2KK67giy++4LPPPmPKlCnnXuy/zJs3j2bNmtnX+S50rl+4NG7cGIC9e/cW2/fvbc2bN+e3337joosuqvSW74qwevVq9u3bV+ISbSIiUntpDLqIiFSpZcuWldhC+tNPPwEU6bru6+tLUlJSkeNcXV0ZNGgQ3333XZGlyWJjY5kzZw59+vSxt0iOGDHC3oX+30qq4aabbmL69OnMnDmThx9++Fze3nkbNGgQ/v7+TJ06laysrCL7Cmvu2rUrzZs355VXXrF3kz7diRMnzniNkSNH0qFDB55//nlWr15dbH9qaiqPPfbYWdde2CJ++s92zZo1JV6jPCIiImjfvj2ffPJJkff5+++/s3Xr1iLHjho1ivz8fJ599tli58nLyyv298iRDh48yPjx4/Hw8GDy5MmOLkdERJyIWtBFRKRK3XPPPWRkZHD11VcTGRlJTk4Oq1at4quvvqJJkyZMmDDBfmzXrl357bffeO2114iIiKBp06b07NmT5557jsWLF9OnTx/uvvtu3NzceO+998jOzi6yrvTkyZOZN28e1157LTfffDNdu3YlISGB77//npkzZ9KpU6di9U2cOJGUlBQee+wxrFYrjz76aJX8XAoFBATw+uuvc+utt9K9e3duuOEGgoKC2LJlCxkZGXz88ce4uLjwwQcfMHToUNq1a8eECROoX78+R48eZdmyZQQEBPDDDz+Ueg13d3cWLFhAVFQU/fr1Y9SoUVx00UW4u7uzfft25syZQ1BQUIlroZ/J5ZdfzoIFC7j66qu57LLLiI6OZubMmbRt27bELxLK44UXXuCqq67ioosuYsKECSQmJvL222/Tvn37Iufs378/d9xxB1OnTmXz5s0MGjQId3d39uzZw9y5c3nzzTcZOXLkOdVwPjZu3Mhnn32GzWYjKSmJdevWMX/+fCwWC59++ikdO3as8ppERMSJOXIKeRERqX1+/vln4+abbzYiIyMNPz8/w8PDw2jRooVxzz33GLGxsUWO3bVrl9GvXz/D29vbAIosubZx40Zj8ODBhp+fn+Hj42MMGDDAWLVqVbHrnTx50pg4caJRv359w8PDw2jQoIExbtw4Iz4+3jCMosusne6hhx4yAOPtt98u9b2UZyktwzi1lNq6detK3Ve4zFqh77//3ujdu7fh7e1tBAQEGD169DC++OKLIsds2rTJuOaaa4w6deoYnp6eRuPGjY1Ro0YZS5YsOWM9hRITE40nnnjC6NChg+Hj42N4eXkZ7du3N6ZMmWIcP37cflz//v2Ndu3aFXv9uHHjiix1ZrPZjBdeeMFo3Lix4enpaXTp0sVYuHBhsePO9HMDjCeffLLIti+//NKIjIw0PD09jfbt2xvff/+9MWLECCMyMrLY699//32ja9euhre3t+Hv72906NDBeOihh4xjx46V62diGIbRuHFj47LLLivzuPIss1Z4c3NzM4KDg42ePXsaU6ZMMQ4ePFjuekREpPawGMY5zMQiIiIi4kCdO3emXr16LF682NGliIiIVBiNQRcRERGnlZubS15eXpFty5cvZ8uWLVx88cWOKUpERKSSqAVdREREnNaBAweIiopi7NixREREsGvXLmbOnInVamXbtm3UqVPH0SWKiIhUGE0SJyIiIk4rKCiIrl278sEHH3DixAl8fX257LLLePHFFxXORUSkxlELuoiIiIiIiIgT0Bh0ERERERERESeggC4iIiIiIiLiBDQGvZax2WwcO3YMf39/LBaLo8sREREREREHMQyD1NRUIiIicHFR260zUECvZY4dO0bDhg0dXYaIiIiIiDiJw4cP06BBA0eXISig1zr+/v6A+SEMCAhwcDUiIiIiIuIoKSkpNGzY0J4RxPEU0GuZwm7tAQEBCugiIiIiIqKhr05EAw1EREREREREnIACuoiIiIiIiIgTUEAXERERERERcQIagy4lys/PJzc319Fl1Bju7u64uro6ugwREREREXFiCuhShGEYxMTEkJSU5OhSapzAwEDCwsI0CYeIiIiIiJRIAV2KKAznISEh+Pj4KExWAMMwyMjIIC4uDoDw8HAHVyQiIiIiIs5IAV3s8vPz7eG8Tp06ji6nRvH29gYgLi6OkJAQdXcXEREREZFiNEmc2BWOOffx8XFwJTVT4c9VY/tFRERERKQkCuhSjLq1Vw79XEVERERE5EwU0EVEREREREScgAK6iIiIiIhIFTEMw9EliBNTQJcaYfz48VgsFu68885i+/7zn/9gsVgYP358kWP/fRsyZAjLly8vcd/pt+XLlwNw5MgRPDw8aN++fRW+UxERERGprrLz8hn30ToW74h1dCnipBTQpcZo2LAhX375JZmZmfZtWVlZzJkzh0aNGhU5dsiQIRw/frzI7YsvvqB3795Fto0aNarYsb179wZg9uzZjBo1ipSUFNasWVOl71VEREREqp+nf9jBit0nmDxvCylZmjhYitMya1JjXHDBBezbt48FCxYwZswYABYsWECjRo1o2rRpkWM9PT0JCwsr8Tynb/f29iY7O7vYsYZh8NFHH/Huu+/SoEEDZs2aRc+ePSv4HYmIiIhITfHVukPMWXMIiwXeuK4zAV7uji5JnJACupyRYRhk5uZX+XW93V3Padbzm2++mY8++sge0D/88EMmTJhg75ZeUZYtW0ZGRgZRUVHU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VruIiFSImrDEmoiIiDNTQC9FWFgYa9euJTIyssT9a9euJTS0/OumpqWlsXfvXvvz6OhoNm/eTHBwMHXq1OH555/nyiuvJDw8nPj4eN555x2OHj3KtddeC0CbNm0YMmQIt912GzNnziQ3N5eJEycyevTocs/gLiIicj7Ugi4iIlK5FNBL8eCDD3L77bezYcMGBg4caA/jsbGxLFmyhP/973+88sor5T7f+vXrGTBggP15YbfzcePGMXPmTHbt2sXHH39MfHw8derUoXv37qxcuZJ27drZX/P5558zceJEBg4ciIuLCyNGjGD69OkV9I5FRETOTC3oIiIilUvroJ/BV199xeuvv86GDRvIz88HwNXVla5du3L//fczatQoB1d49rTWoYiInIvcfBut//szNgPWPjqQkAAvR5ckIiLnSdnA+agF/Qyuu+46rrvuOnJzc4mPjwegbt26Fb7uuYiIiLOLSc7CZoCHqwt1/TS3iYiISGVQQC8Hd3d3goOD7Y9FRERqm8Lu7RGBXri4FJ9AVURERM6f1kE/g8WLFzNs2DCCgoLw8fHBx8eHoKAghg0bxm+//ebo8kRERKqMJogTERGpfAropfj4448ZNmwYVquV119/nYULF7Jw4UJef/11AgMDGTZsGJ9++qmjyxQREakSmiBORESk8qmLeymef/553njjDf7zn/8U2zd+/Hj69OnDM888w4033uiA6kRERKqWvQU90MfBlYiIiNRcakEvxaFDh4iKiip1/8CBAzly5EgVViQiIuI4x5JPjUEXERGRyqGAXop27doxa9asUvd/+OGHtG3btgorEhERcRyNQRcREal86uJeildffZXLL7+cRYsWERUVRWhoKACxsbEsWbKE/fv38+OPPzq4ShERkcpnGIZ9DHoDdXEXERGpNAropbj44ovZtm0bM2bM4K+//iImJgaAsLAwhg4dyp133kmTJk0cW6SIiEgViE/LITvPhsUCYVZ1cRcREaksCuhn0KRJE1566SVHlyEiIuJQha3nof5eeLhpdJyIiEhl0f+yIiIickbHkjRBnIiISFVQQD9HW7ZswdXV1dFliIiIVLpTE8Rp/LmIiEhlUkA/D4ZhOLoEERGRSlfYxb1+oGZwFxERqUwag16Ka6655oz7k5OTsVgsVVSNiIiI4xzREmsiIiJVQgG9FD/88AOXXnqpfXm1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++6TJk2aiK+vryQlJdX4fugBs1QX81QPs7RuPL7qYZbqYp7qYp7aYfZEd44NehVdvHhRBg0aJG5ubjJy5Ejp2LGjuLq6KoPOqVOnxMPDQ9555x0RESktLVW+193dXRYvXiwiIkVFRTJo0CBp1aqVfPXVVzW+H3rALNXFPNXDLK0bj696mKW6mKe6mKd2mD3R3WODXgVFRUUyduxYGT58uJw7d055PDg4WMaNGyciIgUFBTJnzhypU6eOpKWliciN62169uwpL730kvJ9hw8frsHq9YVZqot5qodZWjceX/UwS3UxT3UxT+0weyJ18Br0Kqhbty6cnZ0xbtw4tG7dGhUVFQCA0NBQpKSkQETQoEEDPP/883jooYfw7LPP4sKFCzAYDEhLS0NOTg4GDx6sPF/nzp012hPtMUt1MU/1MEvrxuOrHmapLuapLuapHWZPpA7eB72Kbr73ovn+jCNHjkS9evUQFRWlbJeRkYFevXqhoqICQUFBOHDgANq3b4/Vq1ejefPmWpWvK8xSXcxTPczSuvH4qodZqot5qot5aofZE909Nuh3oUePHnj55ZcxduxYGI1GAICdnR3Onj2LI0eOIDExEQEBARg7dqzGleofs1QX81QPs7RuPL7qYZbqYp7qYp7aYfZE1cMG/Q6dO3cOISEh2LFjhzIFp6ysDE5OThpXVvswS3UxT/UwS+vG46seZqku5qku5qkdZk9UfbwGvZrM72fs27cP9evXVwabmTNnIiIiAjk5OVqWV6swS3UxT/UwS+vG46seZqku5qku5qkdZk905xy0LqC2MRgMAIBDhw4hLCwM3333HSZMmIDi4mLExsbCzc1N4wprD2apLuapHmZp3Xh81cMs1cU81cU8tcPsie5CzS0Ybz1KSkqkTZs2YjAYxNnZWf7xj39oXVKtxSzVxTzVwyytG4+vepilupinupindpg90Z3hNeh36PHHH0fbtm2xaNEiuLi4aF1OrcYs1cU81cMsrRuPr3qYpbqYp7qYp3aYPVH1sUG/Q5WVlbC3t9e6DKvALNXFPNXDLK0bj696mKW6mKe6mKd2mD1R9bFBJyIiIiIiItIBruJOREREREREpANs0ImIiIiIiIh0gA06ERERERERkQ6wQSciIiIiIiLSATboRERERERERDrABp2IiIiIiIhIB9igExEREREREekAG3QiIqJaaty4cTAYDDAYDHB0dETz5s3x+OOPY8WKFTAajVV+npiYGDRq1OjeFUpERERVwgadiIioFhswYAAyMzORmpqKnTt34rHHHkNERAQGDRqEiooKrcsjIiKiamCDTkREVIs5OzvD3d0dHh4eeOihh/C3v/0NW7Zswc6dOxETEwMAWLRoETp27Ih69erB09MTr776KgoLCwEACQkJeOGFF5Cfn6+cjX///fcBAKWlpZg2bRo8PDxQr149dOnSBQkJCdrsKBERkQ1gg05ERGRlevfujYCAAGzcuBEAYGdnh2XLluGXX37B559/jt27d2P69OkAgJCQECxZsgQNGzZEZmYmMjMzMW3aNABAeHg4Dh48iK+++go//fQThg0bhgEDBuDMmTOa7RsREZE1M4iIaF0EERERVd+4ceOQl5eHzZs33/K1ESNG4KeffkJycvItX1u/fj0mTZqEy5cvAzBdg/76668jLy9P2SYtLQ0PPPAA0tLS0LJlS+Xxvn37Ijg4GHPnzlV9f4iIiGydg9YFEBERkfpEBAaDAQAQHx+PefPm4eTJkygoKEBFRQWuXbuG4uJi1K1b9w+//8SJE6isrES7du0sHi8tLUWTJk3uef1ERES2iA06ERGRFUpJSUHr1q2RmpqKQYMG4ZVXXsEHH3yAxo0bY9++fRg/fjzKysr+tEEvLCyEvb09jhw5Ant7e4uv1a9fvyZ2gYiIyOawQSciIrIyu3fvxokTJxAZGYkjR47AaDRi4cKFsLMzLT2zdu1ai+2dnJxQWVlp8VhgYCAqKyuRk5ODRx55pMZqJyIismVs0ImIiGqx0tJSZGVlobKyEtnZ2YiLi8O8efMwaNAgjBkzBj///DPKy8vx0Ucf4cknn8T+/fvx2WefWTyHt7c3CgsLsWvXLgQEBKBu3bpo164dRo4ciTFjxmDhwoUIDAzEpUuXsGvXLvj7+2PgwIEa7TEREZH14iruREREtVhcXBxatGgBb29vDBgwAHv27MGyZcuwZcsW2NvbIyAgAIsWLcL8+fPh5+eHVatWYd68eRbPERISgkmTJmH48OFo1qwZFixYAABYuXIlxowZgzfeeAMPPvggBg8ejKSkJHh5eWmxq0RERFaPq7gTERERERER6QDPoBMRERERERHpABt0IiIiIiIiIh1gg05ERERERESkA2zQiYiIiIiIiHSADToRERERERGRDrBBJyIiIiIiItIBNuhEREREREREOsAGnYiIiIiIiEgH2KATERERERER6QAbdCIiIiIiIiIdYINOREREREREpANs0ImIiIiIiIh0gA06ERERERERkQ6wQSciIiIiIiLSATboRERERERERDrABp2IiIiIiIhIB9igExEREREREekAG3QiIiIiIiIiHWCDTkRERERERKQDbNCJiIiIiIiIdIANOhEREREREZEO/H8SLfcXJN0ADwAAAABJRU5ErkJggg==", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "try:\n", + " image = Image(filename=\"coding/stock_price_ytd.png\")\n", + " display(image)\n", + "except FileNotFoundError:\n", + " print(\"Image not found. Please check the file name and modify if necessary.\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's display the raw data collected and saved from previous chat as well." + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['Date', 'META', 'TSLA']\n", + "['2024-01-02', '346.2900085449219', '248.4199981689453']\n", + "['2024-01-03', '344.4700012207031', '238.4499969482422']\n", + "['2024-01-04', '347.1199951171875', '237.92999267578125']\n", + "['2024-01-05', '351.95001220703125', '237.49000549316406']\n", + "['2024-01-08', '358.6600036621094', '240.4499969482422']\n", + "['2024-01-09', '357.42999267578125', '234.9600067138672']\n", + "['2024-01-10', '370.4700012207031', '233.94000244140625']\n", + "['2024-01-11', '369.6700134277344', '227.22000122070312']\n", + "['2024-01-12', '374.489990234375', '218.88999938964844']\n", + "['2024-01-16', '367.4599914550781', '219.91000366210938']\n", + "['2024-01-17', '368.3699951171875', '215.5500030517578']\n", + "['2024-01-18', '376.1300048828125', '211.8800048828125']\n", + "['2024-01-19', '383.45001220703125', '212.19000244140625']\n", + "['2024-01-22', '381.7799987792969', '208.8000030517578']\n", + "['2024-01-23', '385.20001220703125', '209.13999938964844']\n", + "['2024-01-24', '390.70001220703125', '207.8300018310547']\n", + "['2024-01-25', '393.17999267578125', '182.6300048828125']\n", + "['2024-01-26', '394.1400146484375', '183.25']\n", + "['2024-01-29', '401.0199890136719', '190.92999267578125']\n", + "['2024-01-30', '400.05999755859375', '191.58999633789062']\n", + "['2024-01-31', '390.1400146484375', '187.2899932861328']\n", + "['2024-02-01', '394.7799987792969', '188.86000061035156']\n", + "['2024-02-02', '474.989990234375', '187.91000366210938']\n", + "['2024-02-05', '459.4100036621094', '181.05999755859375']\n", + "['2024-02-06', '454.7200012207031', '185.10000610351562']\n", + "['2024-02-07', '469.5899963378906', '187.5800018310547']\n", + "['2024-02-08', '470.0', '189.55999755859375']\n", + "['2024-02-09', '468.1099853515625', '193.57000732421875']\n", + "['2024-02-12', '468.8999938964844', '188.1300048828125']\n", + "['2024-02-13', '460.1199951171875', '184.02000427246094']\n", + "['2024-02-14', '473.2799987792969', '188.7100067138672']\n", + "['2024-02-15', '484.0299987792969', '200.4499969482422']\n", + "['2024-02-16', '473.32000732421875', '199.9499969482422']\n", + "['2024-02-20', '471.75', '193.75999450683594']\n", + "['2024-02-21', '468.0299987792969', '194.77000427246094']\n", + "['2024-02-22', '486.1300048828125', '197.41000366210938']\n", + "['2024-02-23', '484.0299987792969', '191.97000122070312']\n", + "['2024-02-26', '481.739990234375', '199.39999389648438']\n", + "['2024-02-27', '487.04998779296875', '199.72999572753906']\n", + "['2024-02-28', '484.0199890136719', '202.0399932861328']\n", + "['2024-02-29', '490.1300048828125', '201.8800048828125']\n", + "['2024-03-01', '502.29998779296875', '202.63999938964844']\n" + ] + } + ], + "source": [ + "# Path to your CSV file\n", + "file_path = \"coding/stock_price_ytd.csv\"\n", + "try:\n", + " with open(file_path, mode=\"r\", encoding=\"utf-8\") as file:\n", + " # Read each line in the file\n", + " for line in file:\n", + " # Split the line into a list using the comma as a separator\n", + " row = line.strip().split(\",\")\n", + " # Print the list representing the current row\n", + " print(row)\n", + "except FileNotFoundError:\n", + " print(\"File not found. Please check the file name and modify if necessary.\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example Task: Use User Defined Message Function to let Agents Analyze data Collected\n", + "\n", + "Let's create a user defined message to let the agents analyze the raw data and write a blogpost. The function is supposed to take `sender`, `recipient` and `context` as inputs and outputs a string of message.\n", + "\n", + "**kwargs from `initiate_chat` will be used as `context`. Take the following code as an example, the `context` includes a field `file_name` as provided in `initiate_chat`. In the user defined message function `my_message_generator`, we are reading data from the file specified by this filename.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ "\u001b[33muser_proxy\u001b[0m (to assistant):\n", "\n", - "exitcode: 1 (execution failed)\n", - "Code output: \n", - "Traceback (most recent call last):\n", - " File \"plot_stock_price_ytd.py\", line 4, in \n", - " import matplotlib.pyplot as plt\n", - "ModuleNotFoundError: No module named 'matplotlib'\n", + "Analyze the data and write a brief but engaging blog post. \n", + " Data: \n", + "Date,META,TSLA\n", + "2024-01-02,346.2900085449219,248.4199981689453\n", + "2024-01-03,344.4700012207031,238.4499969482422\n", + "2024-01-04,347.1199951171875,237.92999267578125\n", + "2024-01-05,351.95001220703125,237.49000549316406\n", + "2024-01-08,358.6600036621094,240.4499969482422\n", + "2024-01-09,357.42999267578125,234.9600067138672\n", + "2024-01-10,370.4700012207031,233.94000244140625\n", + "2024-01-11,369.6700134277344,227.22000122070312\n", + "2024-01-12,374.489990234375,218.88999938964844\n", + "2024-01-16,367.4599914550781,219.91000366210938\n", + "2024-01-17,368.3699951171875,215.5500030517578\n", + "2024-01-18,376.1300048828125,211.8800048828125\n", + "2024-01-19,383.45001220703125,212.19000244140625\n", + "2024-01-22,381.7799987792969,208.8000030517578\n", + "2024-01-23,385.20001220703125,209.13999938964844\n", + "2024-01-24,390.70001220703125,207.8300018310547\n", + "2024-01-25,393.17999267578125,182.6300048828125\n", + "2024-01-26,394.1400146484375,183.25\n", + "2024-01-29,401.0199890136719,190.92999267578125\n", + "2024-01-30,400.05999755859375,191.58999633789062\n", + "2024-01-31,390.1400146484375,187.2899932861328\n", + "2024-02-01,394.7799987792969,188.86000061035156\n", + "2024-02-02,474.989990234375,187.91000366210938\n", + "2024-02-05,459.4100036621094,181.05999755859375\n", + "2024-02-06,454.7200012207031,185.10000610351562\n", + "2024-02-07,469.5899963378906,187.5800018310547\n", + "2024-02-08,470.0,189.55999755859375\n", + "2024-02-09,468.1099853515625,193.57000732421875\n", + "2024-02-12,468.8999938964844,188.1300048828125\n", + "2024-02-13,460.1199951171875,184.02000427246094\n", + "2024-02-14,473.2799987792969,188.7100067138672\n", + "2024-02-15,484.0299987792969,200.4499969482422\n", + "2024-02-16,473.32000732421875,199.9499969482422\n", + "2024-02-20,471.75,193.75999450683594\n", + "2024-02-21,468.0299987792969,194.77000427246094\n", + "2024-02-22,486.1300048828125,197.41000366210938\n", + "2024-02-23,484.0299987792969,191.97000122070312\n", + "2024-02-26,481.739990234375,199.39999389648438\n", + "2024-02-27,487.04998779296875,199.72999572753906\n", + "2024-02-28,484.0199890136719,202.0399932861328\n", + "2024-02-29,490.1300048828125,201.8800048828125\n", + "2024-03-01,502.29998779296875,202.63999938964844\n", "\n", "\n", "--------------------------------------------------------------------------------\n", - "self.reply_at_receive[sender]self.reply_at_receive[sender] True\n", - "recipitent sending assistant exitcode: 1 (execution failed)\n", - "Code output: \n", - "Traceback (most recent call last):\n", - " File \"plot_stock_price_ytd.py\", line 4, in \n", - " import matplotlib.pyplot as plt\n", - "ModuleNotFoundError: No module named 'matplotlib'\n", - " None\n", "\u001b[33massistant\u001b[0m (to user_proxy):\n", "\n", - "It appears that the `matplotlib` library is not installed in your Python environment. To proceed, you need to install the `matplotlib` library. Please run the following command to install it:\n", + "To write a blog post, we need to analyze the data to identify trends, significant changes, and any other notable points. We will start by calculating the percentage change for both META and TSLA stocks from the beginning to the end of the data provided. This will give us an idea of the overall performance of each stock over the period.\n", "\n", - "```sh\n", - "pip install matplotlib\n", - "```\n", - "\n", - "After the installation is complete, please try running the `plot_stock_price_ytd.py` script again. Here is the script for your convenience:\n", + "Let's write a Python script to calculate the percentage change for both stocks.\n", "\n", "```python\n", - "# filename: plot_stock_price_ytd.py\n", + "# filename: stock_analysis.py\n", "\n", - "import yfinance as yf\n", - "import matplotlib.pyplot as plt\n", - "from datetime import datetime\n", + "import pandas as pd\n", + "from io import StringIO\n", + "\n", + "# Data provided as a CSV string\n", + "data = \"\"\"\n", + "Date,META,TSLA\n", + "2024-01-02,346.2900085449219,248.4199981689453\n", + "2024-01-03,344.4700012207031,238.4499969482422\n", + "2024-01-04,347.1199951171875,237.92999267578125\n", + "2024-01-05,351.95001220703125,237.49000549316406\n", + "2024-01-08,358.6600036621094,240.4499969482422\n", + "2024-01-09,357.42999267578125,234.9600067138672\n", + "2024-01-10,370.4700012207031,233.94000244140625\n", + "2024-01-11,369.6700134277344,227.22000122070312\n", + "2024-01-12,374.489990234375,218.88999938964844\n", + "2024-01-16,367.4599914550781,219.91000366210938\n", + "2024-01-17,368.3699951171875,215.5500030517578\n", + "2024-01-18,376.1300048828125,211.8800048828125\n", + "2024-01-19,383.45001220703125,212.19000244140625\n", + "2024-01-22,381.7799987792969,208.8000030517578\n", + "2024-01-23,385.20001220703125,209.13999938964844\n", + "2024-01-24,390.70001220703125,207.8300018310547\n", + "2024-01-25,393.17999267578125,182.6300048828125\n", + "2024-01-26,394.1400146484375,183.25\n", + "2024-01-29,401.0199890136719,190.92999267578125\n", + "2024-01-30,400.05999755859375,191.58999633789062\n", + "2024-01-31,390.1400146484375,187.2899932861328\n", + "2024-02-01,394.7799987792969,188.86000061035156\n", + "2024-02-02,474.989990234375,187.91000366210938\n", + "2024-02-05,459.4100036621094,181.05999755859375\n", + "2024-02-06,454.7200012207031,185.10000610351562\n", + "2024-02-07,469.5899963378906,187.5800018310547\n", + "2024-02-08,470.0,189.55999755859375\n", + "2024-02-09,468.1099853515625,193.57000732421875\n", + "2024-02-12,468.8999938964844,188.1300048828125\n", + "2024-02-13,460.1199951171875,184.02000427246094\n", + "2024-02-14,473.2799987792969,188.7100067138672\n", + "2024-02-15,484.0299987792969,200.4499969482422\n", + "2024-02-16,473.32000732421875,199.9499969482422\n", + "2024-02-20,471.75,193.75999450683594\n", + "2024-02-21,468.0299987792969,194.77000427246094\n", + "2024-02-22,486.1300048828125,197.41000366210938\n", + "2024-02-23,484.0299987792969,191.97000122070312\n", + "2024-02-26,481.739990234375,199.39999389648438\n", + "2024-02-27,487.04998779296875,199.72999572753906\n", + "2024-02-28,484.0199890136719,202.0399932861328\n", + "2024-02-29,490.1300048828125,201.8800048828125\n", + "2024-03-01,502.29998779296875,202.63999938964844\n", + "\"\"\"\n", + "\n", + "# Read the data into a pandas DataFrame\n", + "df = pd.read_csv(StringIO(data))\n", + "\n", + "# Calculate the percentage change for META and TSLA\n", + "meta_start = df['META'].iloc[0]\n", + "meta_end = df['META'].iloc[-1]\n", + "meta_change = ((meta_end - meta_start) / meta_start) * 100\n", + "\n", + "tsla_start = df['TSLA'].iloc[0]\n", + "tsla_end = df['TSLA'].iloc[-1]\n", + "tsla_change = ((tsla_end - tsla_start) / tsla_start) * 100\n", + "\n", + "# Print the results\n", + "print(f\"META stock changed by {meta_change:.2f}% from the beginning to the end of the period.\")\n", + "print(f\"TSLA stock changed by {tsla_change:.2f}% from the beginning to the end of the period.\")\n", + "```\n", "\n", - "# Define the tickers for Meta Platforms, Inc. and Tesla, Inc.\n", - "tickers = [\"META\", \"TSLA\"]\n", + "Please run this script to calculate the percentage change for both META and TSLA stocks. Once we have the results, we can proceed to write the blog post.\n", "\n", - "# Define the start and end dates for the YTD period\n", - "start_date = datetime(2024, 1, 1)\n", - "end_date = datetime(2024, 2, 16)\n", + "--------------------------------------------------------------------------------\n", + "\u001b[31m\n", + ">>>>>>>> EXECUTING CODE BLOCK 0 (inferred language is python)...\u001b[0m\n", + "\u001b[33muser_proxy\u001b[0m (to assistant):\n", "\n", - "# Fetch historical data for both tickers\n", - "data = yf.download(tickers, start=start_date, end=end_date)['Close']\n", + "exitcode: 0 (execution succeeded)\n", + "Code output: \n", + "META stock changed by 45.05% from the beginning to the end of the period.\n", + "TSLA stock changed by -18.43% from the beginning to the end of the period.\n", "\n", - "# Normalize the data to 100 (percentage change) based on the first closing price\n", - "normalized_data = (data / data.iloc[0]) * 100\n", "\n", - "# Plot the data\n", - "plt.figure(figsize=(14, 7))\n", - "for ticker in tickers:\n", - " plt.plot(normalized_data.index, normalized_data[ticker], label=ticker)\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33massistant\u001b[0m (to user_proxy):\n", "\n", - "# Add titles and labels\n", - "plt.title('Stock Price Change YTD')\n", - "plt.xlabel('Date')\n", - "plt.ylabel('Normalized Price (Base 100)')\n", - "plt.legend()\n", + "Based on the analysis, we can see that META stock experienced a significant increase of 45.05% from the beginning to the end of the period, while TSLA stock saw a decrease of 18.43% in the same timeframe. This information will be the foundation for our blog post.\n", "\n", - "# Save the plot to a PNG file\n", - "plt.savefig('stock_price_ytd.png')\n", + "Here's a draft for the blog post:\n", "\n", - "# Show the plot\n", - "plt.show()\n", - "```\n", + "---\n", "\n", - "Execute the script after installing `matplotlib` to generate and save the chart.\n", + "**A Tale of Two Stocks: META Soars as TSLA Dips in Early 2024**\n", "\n", - "--------------------------------------------------------------------------------\n", - "self.reply_at_receive[sender]self.reply_at_receive[sender] True\n", - "\u001b[31m\n", - ">>>>>>>> EXECUTING CODE BLOCK 0 (inferred language is sh)...\u001b[0m\n", - "\u001b[31m\n", - ">>>>>>>> EXECUTING CODE BLOCK 1 (inferred language is python)...\u001b[0m\n", - "recipitent sending user_proxy It appears that the `matplotlib` library is not installed in your Python environment. To proceed, you need to install the `matplotlib` library. Please run the following command to install it:\n", + "As we navigate through the early months of 2024, the stock market has presented a mixed bag of performances, with some companies experiencing remarkable growth and others facing downward trends. Two notable examples that have caught the attention of investors are META and TSLA.\n", "\n", - "```sh\n", - "pip install matplotlib\n", - "```\n", + "META, the social media giant, has seen its stock price skyrocket by an impressive 45.05% since the start of the year. This surge can be attributed to a series of successful product launches and strategic acquisitions, positioning the company at the forefront of innovation and profitability. Investors have shown their confidence in META's future, as the company continues to diversify its revenue streams and expand its global reach.\n", "\n", - "After the installation is complete, please try running the `plot_stock_price_ytd.py` script again. Here is the script for your convenience:\n", + "On the other hand, TSLA, the electric vehicle pioneer, has faced a challenging period with its stock price declining by 18.43%. The dip reflects concerns over production delays, increased competition in the electric vehicle market, and a series of high-profile controversies surrounding its CEO. Despite these setbacks, loyal supporters of TSLA believe in the company's long-term vision and its potential to rebound as it addresses these challenges.\n", "\n", - "```python\n", - "# filename: plot_stock_price_ytd.py\n", + "The contrasting trajectories of META and TSLA highlight the volatile nature of the stock market, where fortunes can shift rapidly based on consumer sentiment, market conditions, and internal company developments. As investors continue to monitor these stocks, the coming months will be crucial in determining whether META can maintain its upward momentum and if TSLA can steer back onto the path of growth.\n", "\n", - "import yfinance as yf\n", - "import matplotlib.pyplot as plt\n", - "from datetime import datetime\n", + "For those looking to invest, the current landscape serves as a reminder of the importance of due diligence and a balanced portfolio. While the allure of quick gains is tempting, the market's unpredictability necessitates a strategy that can withstand the ebbs and flows of stock valuations.\n", "\n", - "# Define the tickers for Meta Platforms, Inc. and Tesla, Inc.\n", - "tickers = [\"META\", \"TSLA\"]\n", + "As we move forward into 2024, all eyes will be on these two industry titans, as their stories unfold and continue to shape the investment world.\n", "\n", - "# Define the start and end dates for the YTD period\n", - "start_date = datetime(2024, 1, 1)\n", - "end_date = datetime(2024, 2, 16)\n", + "---\n", "\n", - "# Fetch historical data for both tickers\n", - "data = yf.download(tickers, start=start_date, end=end_date)['Close']\n", + "This blog post provides a narrative based on the data analysis we performed. It should engage readers by discussing the recent performance of both stocks and offering a broader perspective on market volatility.\n", "\n", - "# Normalize the data to 100 (percentage change) based on the first closing price\n", - "normalized_data = (data / data.iloc[0]) * 100\n", + "TERMINATE\n", "\n", - "# Plot the data\n", - "plt.figure(figsize=(14, 7))\n", - "for ticker in tickers:\n", - " plt.plot(normalized_data.index, normalized_data[ticker], label=ticker)\n", + "--------------------------------------------------------------------------------\n" + ] + } + ], + "source": [ + "def my_message_generator(sender, recipient, context):\n", + " # your CSV file\n", + " file_name = context.get(\"file_name\")\n", + " try:\n", + " with open(file_name, mode=\"r\", encoding=\"utf-8\") as file:\n", + " file_content = file.read()\n", + " except FileNotFoundError:\n", + " file_content = \"No data found.\"\n", + " return \"Analyze the data and write a brief but engaging blog post. \\n Data: \\n\" + file_content\n", + "\n", + "# followup of the previous question\n", + "chat_res = user_proxy.initiate_chat(\n", + " recipient=assistant,\n", + " message=my_message_generator,\n", + " file_name=\"coding/stock_price_ytd.csv\",\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's check the summary of the chat" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Based on the analysis, we can see that META stock experienced a significant increase of 45.05% from the beginning to the end of the period, while TSLA stock saw a decrease of 18.43% in the same timeframe. This information will be the foundation for our blog post.\n", "\n", - "# Add titles and labels\n", - "plt.title('Stock Price Change YTD')\n", - "plt.xlabel('Date')\n", - "plt.ylabel('Normalized Price (Base 100)')\n", - "plt.legend()\n", + "Here's a draft for the blog post:\n", "\n", - "# Save the plot to a PNG file\n", - "plt.savefig('stock_price_ytd.png')\n", + "---\n", "\n", - "# Show the plot\n", - "plt.show()\n", - "```\n", + "**A Tale of Two Stocks: META Soars as TSLA Dips in Early 2024**\n", "\n", - "Execute the script after installing `matplotlib` to generate and save the chart. None\n", - "\u001b[33muser_proxy\u001b[0m (to assistant):\n", + "As we navigate through the early months of 2024, the stock market has presented a mixed bag of performances, with some companies experiencing remarkable growth and others facing downward trends. Two notable examples that have caught the attention of investors are META and TSLA.\n", "\n", - "exitcode: 0 (execution succeeded)\n", - "Code output: \n", - "Collecting matplotlib\n", - " Downloading matplotlib-3.8.3-cp310-cp310-macosx_11_0_arm64.whl.metadata (5.8 kB)\n", - "Collecting contourpy>=1.0.1 (from matplotlib)\n", - " Using cached contourpy-1.2.0-cp310-cp310-macosx_11_0_arm64.whl.metadata (5.8 kB)\n", - "Collecting cycler>=0.10 (from matplotlib)\n", - " Using cached cycler-0.12.1-py3-none-any.whl.metadata (3.8 kB)\n", - "Collecting fonttools>=4.22.0 (from matplotlib)\n", - " Downloading fonttools-4.49.0-cp310-cp310-macosx_10_9_universal2.whl.metadata (159 kB)\n", - "\u001b[?25l \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m0.0/159.1 kB\u001b[0m \u001b[31m?\u001b[0m eta \u001b[36m-:--:--\u001b[0m\n", - "\u001b[2K \u001b[91m━━━━━━━━━━\u001b[0m\u001b[90m╺\u001b[0m\u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m41.0/159.1 kB\u001b[0m \u001b[31m1.0 MB/s\u001b[0m eta \u001b[36m0:00:01\u001b[0m\n", - "\u001b[2K \u001b[91m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[91m╸\u001b[0m\u001b[90m━\u001b[0m \u001b[32m153.6/159.1 kB\u001b[0m \u001b[31m2.1 MB/s\u001b[0m eta \u001b[36m0:00:01\u001b[0m\n", - "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m159.1/159.1 kB\u001b[0m \u001b[31m2.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", - "\u001b[?25hCollecting kiwisolver>=1.3.1 (from matplotlib)\n", - " Using cached kiwisolver-1.4.5-cp310-cp310-macosx_11_0_arm64.whl.metadata (6.4 kB)\n", - "Requirement already satisfied: numpy<2,>=1.21 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from matplotlib) (1.26.4)\n", - "Requirement already satisfied: packaging>=20.0 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from matplotlib) (23.2)\n", - "Collecting pillow>=8 (from matplotlib)\n", - " Using cached pillow-10.2.0-cp310-cp310-macosx_11_0_arm64.whl.metadata (9.7 kB)\n", - "Collecting pyparsing>=2.3.1 (from matplotlib)\n", - " Using cached pyparsing-3.1.1-py3-none-any.whl.metadata (5.1 kB)\n", - "Requirement already satisfied: python-dateutil>=2.7 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from matplotlib) (2.8.2)\n", - "Requirement already satisfied: six>=1.5 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from python-dateutil>=2.7->matplotlib) (1.16.0)\n", - "Downloading matplotlib-3.8.3-cp310-cp310-macosx_11_0_arm64.whl (7.5 MB)\n", - "\u001b[?25l \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m0.0/7.5 MB\u001b[0m \u001b[31m?\u001b[0m eta \u001b[36m-:--:--\u001b[0m\n", - "\u001b[2K \u001b[91m━\u001b[0m\u001b[91m╸\u001b[0m\u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m0.3/7.5 MB\u001b[0m \u001b[31m7.9 MB/s\u001b[0m eta \u001b[36m0:00:01\u001b[0m\n", - "\u001b[2K \u001b[91m━━━━\u001b[0m\u001b[91m╸\u001b[0m\u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m0.9/7.5 MB\u001b[0m \u001b[31m11.2 MB/s\u001b[0m eta \u001b[36m0:00:01\u001b[0m\n", - "\u001b[2K \u001b[91m━━━━━━━━\u001b[0m\u001b[90m╺\u001b[0m\u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m1.6/7.5 MB\u001b[0m \u001b[31m14.7 MB/s\u001b[0m eta \u001b[36m0:00:01\u001b[0m\n", - "\u001b[2K \u001b[91m━━━━━━━━━━━━━━━━\u001b[0m\u001b[91m╸\u001b[0m\u001b[90m━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m3.1/7.5 MB\u001b[0m \u001b[31m21.4 MB/s\u001b[0m eta \u001b[36m0:00:01\u001b[0m\n", - "\u001b[2K \u001b[91m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[91m╸\u001b[0m\u001b[90m━━━━━━━━━\u001b[0m \u001b[32m5.8/7.5 MB\u001b[0m \u001b[31m29.7 MB/s\u001b[0m eta \u001b[36m0:00:01\u001b[0m\n", - "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m7.5/7.5 MB\u001b[0m \u001b[31m33.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", - "\u001b[?25hUsing cached contourpy-1.2.0-cp310-cp310-macosx_11_0_arm64.whl (242 kB)\n", - "Using cached cycler-0.12.1-py3-none-any.whl (8.3 kB)\n", - "Downloading fonttools-4.49.0-cp310-cp310-macosx_10_9_universal2.whl (2.8 MB)\n", - "\u001b[?25l \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m0.0/2.8 MB\u001b[0m \u001b[31m?\u001b[0m eta \u001b[36m-:--:--\u001b[0m\n", - "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m2.8/2.8 MB\u001b[0m \u001b[31m81.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", - "\u001b[?25hUsing cached kiwisolver-1.4.5-cp310-cp310-macosx_11_0_arm64.whl (66 kB)\n", - "Using cached pillow-10.2.0-cp310-cp310-macosx_11_0_arm64.whl (3.3 MB)\n", - "Using cached pyparsing-3.1.1-py3-none-any.whl (103 kB)\n", - "Installing collected packages: pyparsing, pillow, kiwisolver, fonttools, cycler, contourpy, matplotlib\n", - "Successfully installed contourpy-1.2.0 cycler-0.12.1 fonttools-4.49.0 kiwisolver-1.4.5 matplotlib-3.8.3 pillow-10.2.0 pyparsing-3.1.1\n", - "\n", - "Figure(1400x700)\n", + "META, the social media giant, has seen its stock price skyrocket by an impressive 45.05% since the start of the year. This surge can be attributed to a series of successful product launches and strategic acquisitions, positioning the company at the forefront of innovation and profitability. Investors have shown their confidence in META's future, as the company continues to diversify its revenue streams and expand its global reach.\n", "\n", + "On the other hand, TSLA, the electric vehicle pioneer, has faced a challenging period with its stock price declining by 18.43%. The dip reflects concerns over production delays, increased competition in the electric vehicle market, and a series of high-profile controversies surrounding its CEO. Despite these setbacks, loyal supporters of TSLA believe in the company's long-term vision and its potential to rebound as it addresses these challenges.\n", "\n", - "--------------------------------------------------------------------------------\n", - "self.reply_at_receive[sender]self.reply_at_receive[sender] True\n", - "recipitent sending assistant exitcode: 0 (execution succeeded)\n", - "Code output: \n", - "Collecting matplotlib\n", - " Downloading matplotlib-3.8.3-cp310-cp310-macosx_11_0_arm64.whl.metadata (5.8 kB)\n", - "Collecting contourpy>=1.0.1 (from matplotlib)\n", - " Using cached contourpy-1.2.0-cp310-cp310-macosx_11_0_arm64.whl.metadata (5.8 kB)\n", - "Collecting cycler>=0.10 (from matplotlib)\n", - " Using cached cycler-0.12.1-py3-none-any.whl.metadata (3.8 kB)\n", - "Collecting fonttools>=4.22.0 (from matplotlib)\n", - " Downloading fonttools-4.49.0-cp310-cp310-macosx_10_9_universal2.whl.metadata (159 kB)\n", - "\u001b[?25l \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m0.0/159.1 kB\u001b[0m \u001b[31m?\u001b[0m eta \u001b[36m-:--:--\u001b[0m\n", - "\u001b[2K \u001b[91m━━━━━━━━━━\u001b[0m\u001b[90m╺\u001b[0m\u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m41.0/159.1 kB\u001b[0m \u001b[31m1.0 MB/s\u001b[0m eta \u001b[36m0:00:01\u001b[0m\n", - "\u001b[2K \u001b[91m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[91m╸\u001b[0m\u001b[90m━\u001b[0m \u001b[32m153.6/159.1 kB\u001b[0m \u001b[31m2.1 MB/s\u001b[0m eta \u001b[36m0:00:01\u001b[0m\n", - "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m159.1/159.1 kB\u001b[0m \u001b[31m2.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", - "\u001b[?25hCollecting kiwisolver>=1.3.1 (from matplotlib)\n", - " Using cached kiwisolver-1.4.5-cp310-cp310-macosx_11_0_arm64.whl.metadata (6.4 kB)\n", - "Requirement already satisfied: numpy<2,>=1.21 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from matplotlib) (1.26.4)\n", - "Requirement already satisfied: packaging>=20.0 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from matplotlib) (23.2)\n", - "Collecting pillow>=8 (from matplotlib)\n", - " Using cached pillow-10.2.0-cp310-cp310-macosx_11_0_arm64.whl.metadata (9.7 kB)\n", - "Collecting pyparsing>=2.3.1 (from matplotlib)\n", - " Using cached pyparsing-3.1.1-py3-none-any.whl.metadata (5.1 kB)\n", - "Requirement already satisfied: python-dateutil>=2.7 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from matplotlib) (2.8.2)\n", - "Requirement already satisfied: six>=1.5 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from python-dateutil>=2.7->matplotlib) (1.16.0)\n", - "Downloading matplotlib-3.8.3-cp310-cp310-macosx_11_0_arm64.whl (7.5 MB)\n", - "\u001b[?25l \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m0.0/7.5 MB\u001b[0m \u001b[31m?\u001b[0m eta \u001b[36m-:--:--\u001b[0m\n", - "\u001b[2K \u001b[91m━\u001b[0m\u001b[91m╸\u001b[0m\u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m0.3/7.5 MB\u001b[0m \u001b[31m7.9 MB/s\u001b[0m eta \u001b[36m0:00:01\u001b[0m\n", - "\u001b[2K \u001b[91m━━━━\u001b[0m\u001b[91m╸\u001b[0m\u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m0.9/7.5 MB\u001b[0m \u001b[31m11.2 MB/s\u001b[0m eta \u001b[36m0:00:01\u001b[0m\n", - "\u001b[2K \u001b[91m━━━━━━━━\u001b[0m\u001b[90m╺\u001b[0m\u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m1.6/7.5 MB\u001b[0m \u001b[31m14.7 MB/s\u001b[0m eta \u001b[36m0:00:01\u001b[0m\n", - "\u001b[2K \u001b[91m━━━━━━━━━━━━━━━━\u001b[0m\u001b[91m╸\u001b[0m\u001b[90m━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m3.1/7.5 MB\u001b[0m \u001b[31m21.4 MB/s\u001b[0m eta \u001b[36m0:00:01\u001b[0m\n", - "\u001b[2K \u001b[91m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[91m╸\u001b[0m\u001b[90m━━━━━━━━━\u001b[0m \u001b[32m5.8/7.5 MB\u001b[0m \u001b[31m29.7 MB/s\u001b[0m eta \u001b[36m0:00:01\u001b[0m\n", - "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m7.5/7.5 MB\u001b[0m \u001b[31m33.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", - "\u001b[?25hUsing cached contourpy-1.2.0-cp310-cp310-macosx_11_0_arm64.whl (242 kB)\n", - "Using cached cycler-0.12.1-py3-none-any.whl (8.3 kB)\n", - "Downloading fonttools-4.49.0-cp310-cp310-macosx_10_9_universal2.whl (2.8 MB)\n", - "\u001b[?25l \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m0.0/2.8 MB\u001b[0m \u001b[31m?\u001b[0m eta \u001b[36m-:--:--\u001b[0m\n", - "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m2.8/2.8 MB\u001b[0m \u001b[31m81.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", - "\u001b[?25hUsing cached kiwisolver-1.4.5-cp310-cp310-macosx_11_0_arm64.whl (66 kB)\n", - "Using cached pillow-10.2.0-cp310-cp310-macosx_11_0_arm64.whl (3.3 MB)\n", - "Using cached pyparsing-3.1.1-py3-none-any.whl (103 kB)\n", - "Installing collected packages: pyparsing, pillow, kiwisolver, fonttools, cycler, contourpy, matplotlib\n", - "Successfully installed contourpy-1.2.0 cycler-0.12.1 fonttools-4.49.0 kiwisolver-1.4.5 matplotlib-3.8.3 pillow-10.2.0 pyparsing-3.1.1\n", - "\n", - "Figure(1400x700)\n", - " None\n", - "\u001b[33massistant\u001b[0m (to user_proxy):\n", + "The contrasting trajectories of META and TSLA highlight the volatile nature of the stock market, where fortunes can shift rapidly based on consumer sentiment, market conditions, and internal company developments. As investors continue to monitor these stocks, the coming months will be crucial in determining whether META can maintain its upward momentum and if TSLA can steer back onto the path of growth.\n", "\n", - "The script has successfully executed, and the chart displaying the stock price change YTD for META and TESLA has been plotted and saved as `stock_price_ytd.png`.\n", + "For those looking to invest, the current landscape serves as a reminder of the importance of due diligence and a balanced portfolio. While the allure of quick gains is tempting, the market's unpredictability necessitates a strategy that can withstand the ebbs and flows of stock valuations.\n", "\n", - "You should now have the file `stock_price_ytd.png` in your current directory, which contains the chart of the YTD stock price changes for both companies.\n", + "As we move forward into 2024, all eyes will be on these two industry titans, as their stories unfold and continue to shape the investment world.\n", "\n", - "TERMINATE\n", + "---\n", "\n", - "--------------------------------------------------------------------------------\n", - "self.reply_at_receive[sender]self.reply_at_receive[sender] True\n" + "This blog post provides a narrative based on the data analysis we performed. It should engage readers by discussing the recent performance of both stocks and offering a broader perspective on market volatility.\n", + "\n", + "\n" ] } ], "source": [ - "# followup of the previous question\n", - "user_proxy.send(\n", - " recipient=assistant,\n", - " message=\"\"\"Plot a chart of their stock price change YTD and save to stock_price_ytd.png.\"\"\",\n", - ")" + "print(chat_res.summary)" ] }, { - "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ - "Let's display the generated figure." + "Let's check how much the above chat cost" ] }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 10, "metadata": {}, "outputs": [ { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAABXgAAAK8CAYAAABV1dcbAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/H5lhTAAAACXBIWXMAAA9hAAAPYQGoP6dpAADDjElEQVR4nOzdd3hUZfrG8Xtmkkz6pJGEQELvvYlIFxDEhgI2UEFsP0VXcdXV3VXXVREbyoqCimLDgoJdFAWkCEiX3iGhJJSQ3iYz5/dHyEgMSIJJTib5fq5rrsyc855znhNwJHfeeV6LYRiGAAAAAAAAAABex2p2AQAAAAAAAACAc0PACwAAAAAAAABeioAXAAAAAAAAALwUAS8AAAAAAAAAeCkCXgAAAAAAAADwUgS8AAAAAAAAAOClCHgBAAAAAAAAwEsR8AIAAAAAAACAlyLgBQAAAAAAAAAvRcALAAAAAAAAAF6KgBcAAAAAAAAAvBQBLwAAAAAAAAB4KQJeAAAAAAAAAPBSBLwAAAAAAAAA4KUIeAEAAAAAAADASxHwAgAAAAAAAICXIuAFAAAAAAAAAC9FwAsAAAAAAAAAXoqAFwAAAAAAAAC8FAEvAAAAAAAAAHgpAl4AAAAAAAAA8FIEvAAAAAAAAADgpQh4AQAAAAAAAMBLEfACAAAAAAAAgJci4AUAAAAAAAAAL0XACwAAAAAAAABeioAXAAAAAAAAALwUAS8AAAAAAAAAeCkCXgAAAAAAAADwUgS8AAAAAAAAAOClCHgBAAAAAAAAwEsR8AIAAAAAAACAlyLgBQAAAAAAAAAvRcALAAAAAAAAAF6KgBcAAAAAAAAAvBQBLwAAAAAAAAB4KQJeAAAAAAAAAPBSBLwAAAAAAAAA4KUIeAEAAAAAAADASxHwAgAAAAAAAICXIuAFAAAAAAAAAC9FwAsAAAAAAAAAXoqAFwAAAAAAAAC8FAEvAAAAAAAAAHgpAl4AAAAAAAAA8FIEvAAAAAAAAADgpQh4AQAAAAAAAMBLEfACAAAAAAAAgJci4AUAAAAAAAAAL0XACwAAAAAAAABeioAXAAAAAAAAALwUAS8AAAAAAAAAeCkCXgAAAAAAAADwUgS8AAAAAAAAAOClCHgBAAAAAAAAwEsR8AIAAAAAAACAlyLgBQAAAAAAAAAvRcALAAAAAAAAAF6KgBcAAAAAAAAAvBQBLwAAAAAAAAB4KQJeAAAAAAAAAPBSBLwAAAAos0WLFslisejTTz815fozZ86UxWLRvn37TLl+WfTr109t27Y1uwwAAADUEgS8AAAA1dzGjRs1YsQINWjQQP7+/qpXr54GDRqk//3vfyXGPf300/r888/NKbIM9u3bJ4vF4nnYbDYlJCToyiuv1Pr1680u76wyMjL0n//8Rx06dFBwcLACAgLUtm1bPfTQQzp06JDZ5VUJp9Opdu3aqUmTJsrNzS21f9++fQoMDNTIkSNL/Fn/2WPRokWl/m74+voqKipKF1xwgR555BElJiaacLcAAADewWIYhmF2EQAAADi9X375Rf3791dCQoJuuukmxcbGKikpSStWrNDu3bu1a9cuz9jg4GCNGDFCM2fOrLR6Fi1apP79+2v27NkaMWJEuY7dt2+fGjVqpOuuu05Dhw6Vy+XS1q1b9dprryk/P18rVqxQx44d//QcLpdLTqdTdrtdFovlL9xJ+ezZs0cDBw5UYmKiRo4cqV69esnPz0+//fabPvzwQ0VERGjHjh2SimbwHjt2TJs2baqy+qrS8uXL1bNnT/3jH//Q008/XWLfpZdeqqVLl2rr1q366aefSux79913NX/+fL333nsltg8aNEi5ubkl/m643W6dOHFCq1at0pw5c2SxWDRjxgxde+21lX5/AAAA3sbH7AIAAABwZk899ZQcDodWrVqlsLCwEvuOHDliTlF/UefOnTV69GjP6549e+ryyy/Xa6+9punTp5/2mOzsbAUFBclms8lms1VVqZKkwsJCXXXVVUpJSdGiRYvUq1evEvufeuopTZo0qUprMlOPHj10xx136Pnnn9eoUaPUpk0bSdJnn32mb775Rq+++qrq1q1b4s9YklasWKH58+eX2i7J03Ljj383JGn//v266KKLdNNNN6lVq1bq0KFD5dwYAACAl6JFAwAAQDW2e/dutWnTplS4K0nR0dGe5xaLRdnZ2XrnnXc8H3MfM2aMZ/+6det08cUXKzQ0VMHBwRowYIBWrFhR6pxpaWm677771LBhQ9ntdtWvX1833nijjh07dsYa8/Pzdemll8rhcOiXX34p9z1eeOGFkqS9e/dK+r3P7s8//6w777xT0dHRql+/fol9f+zB+91336lv374KCQlRaGiounXrplmzZpUYs3LlSg0ZMkQOh0OBgYHq27evli1bdtb6PvvsM23YsEH//Oc/S4W7khQaGqqnnnqq1PYtW7aof//+CgwMVL169fTss8+W2F9QUKBHH31UXbp0kcPhUFBQkHr37q2FCxeWGFfcvuD555/X66+/riZNmshut6tbt25atWpVqevOnj1brVu3lr+/v9q2bau5c+dqzJgxatiwYYlxbrdbL730ktq0aSN/f3/FxMTo9ttv14kTJ876PZk4caKioqJ0xx13yDAMZWVl6d577/WEvxWpQYMGmjlzpgoKCkp9DwEAAMAMXgAAgGqtQYMGWr58uTZt2vSnC3e99957uuWWW3TeeefptttukyQ1adJEkrR582b17t1boaGhevDBB+Xr66vp06erX79++vnnn9W9e3dJUlZWlnr37q2tW7fq5ptvVufOnXXs2DF9+eWXOnDggKKiokpdNzc3V1dccYVWr16tH3/8Ud26dSv3Pe7evVuSFBkZWWL7nXfeqTp16ujRRx9Vdnb2GY+fOXOmbr75ZrVp00YPP/ywwsLCtG7dOs2bN0/XX3+9JGnBggW6+OKL1aVLFz322GOyWq16++23deGFF2rJkiU677zzznj+L7/8UpJ0ww03lPmeTpw4oSFDhuiqq67S1VdfrU8//VQPPfSQ2rVrp4svvlhSUU/fN998U9ddd51uvfVWZWZmasaMGRo8eLB+/fXXUu0qZs2apczMTN1+++2yWCx69tlnddVVV2nPnj3y9fWVJH3zzTe65ppr1K5dO02cOFEnTpzQuHHjVK9evVI13n777Zo5c6bGjh2re+65R3v37tUrr7yidevWadmyZZ5zno7D4dCUKVM0cuRIvfnmm9qyZYtSUlL03XffVUrrjB49eqhJkyaaP39+hZ8bAADA6xkAAACotn744QfDZrMZNpvN6NGjh/Hggw8a33//vVFQUFBqbFBQkHHTTTeV2j5s2DDDz8/P2L17t2fboUOHjJCQEKNPnz6ebY8++qghyZgzZ06pc7jdbsMwDGPhwoWGJGP27NlGZmam0bdvXyMqKspYt27dWe9l7969hiTjP//5j3H06FEjOTnZWLRokdGpUydDkvHZZ58ZhmEYb7/9tiHJ6NWrl1FYWFjiHMX79u7daxiGYaSlpRkhISFG9+7djdzc3NPW7Ha7jWbNmhmDBw/2bDMMw8jJyTEaNWpkDBo06E/r7tSpk+FwOM56f8X69u1rSDLeffddz7b8/HwjNjbWGD58uGdbYWGhkZ+fX+LYEydOGDExMcbNN9/s2Vb8fYuMjDRSU1M927/44gtDkvHVV195trVr186oX7++kZmZ6dm2aNEiQ5LRoEEDz7YlS5YYkowPPvigxPXnzZt32u1ncumllxoOh8Ow2WzGww8//Kdj77rrLuNMP34U3+Nzzz13xuOvuOIKQ5KRnp5eptoAAABqC1o0AAAAVGODBg3S8uXLdfnll2vDhg169tlnNXjwYNWrV88zs/TPuFwu/fDDDxo2bJgaN27s2V63bl1df/31Wrp0qTIyMiQVtSLo0KGDrrzyylLn+eOszPT0dF100UXatm2bFi1adNbF0U712GOPqU6dOoqNjVW/fv20e/duTZo0SVdddVWJcbfeeutZ++3Onz9fmZmZ+sc//iF/f//T1rx+/Xrt3LlT119/vY4fP65jx47p2LFjys7O1oABA7R48WK53e4zXiMjI0MhISFlvj+paMG7U3vJ+vn56bzzztOePXs822w2m/z8/CQVtUtITU1VYWGhunbtqrVr15Y65zXXXKPw8HDP6969e0uS55yHDh3Sxo0bdeONNyo4ONgzrm/fvmrXrl2Jc82ePVsOh0ODBg3yfD+OHTumLl26KDg4uFSbiDOZOnWqCgoKFB8fr3//+99lOuZcFd9TZmZmpV4HAADA29CiAQAAoJrr1q2b5syZo4KCAm3YsEFz587V5MmTNWLECK1fv16tW7c+47FHjx5VTk6OWrRoUWpfq1at5Ha7lZSUpDZt2mj37t0aPnx4mWq69957lZeXp3Xr1nkW2Sqr2267TSNHjpTValVYWJjatGkju91ealyjRo3Oeq7i9g5/1r5i586dkqSbbrrpjGPS09NLhKenCg0NLRHMlkX9+vVLheLh4eH67bffSmx755139MILL2jbtm1yOp2e7ae794SEhFLnk+Tpmbt//35JUtOmTUsd27Rp0xKh8c6dO5Wenl6ij/OpyrqAX0JCgqKjo9WmTRsFBASU6ZhzlZWVJUnlDtsBAABqOgJeAAAAL+Hn56du3bqpW7duat68ucaOHavZs2frscceq/JarrjiCn300Ud65pln9O6778pqLfsHw5o1a6aBAweedVxFBYbFs3Ofe+65M840PnXG6x+1bNlS69atU1JSkuLj48t0zTPNPDYMw/P8/fff15gxYzRs2DA98MADio6Ols1m08SJEz3BdXnPWVZut1vR0dH64IMPTru/Tp065T5nZdu0aZOio6MVGhpqdikAAADVCgEvAACAF+ratask6fDhw55tp1vcqk6dOgoMDNT27dtL7du2bZusVqsntGzSpIk2bdpUpusPGzZMF110kcaMGaOQkBC99tpr53Ibf1nxQnKbNm067czVU8eEhoaWKVj+o8suu0wffvih3n//fT388MPnXuwffPrpp2rcuLHmzJlT4s/uXAP7Bg0aSJJ27dpVat8ftzVp0kQ//vijevbsWekzbyvC8uXLtXv37hJtLwAAAFCEHrwAAADV2MKFC087Q/Pbb7+VpBKtF4KCgpSWllZinM1m00UXXaQvvvhC+/bt82xPSUnRrFmz1KtXL8+MyOHDh3taQPzR6Wq48cYbNWXKFE2bNk0PPfTQudzeX3bRRRcpJCREEydOVF5eXol9xTV36dJFTZo00fPPP+/5mP+pjh49+qfXGDFihNq1a6ennnpKy5cvL7U/MzNT//znP8tde/GM3FO/tytXrjztNcoiLi5Obdu21bvvvlviPn/++Wdt3LixxNirr75aLpdL//3vf0udp7CwsNTfIzPt379fY8aMkZ+fnx544AGzywEAAKh2mMELAABQjd19993KycnRlVdeqZYtW6qgoEC//PKLPv74YzVs2FBjx471jO3SpYt+/PFHvfjii4qLi1OjRo3UvXt3Pfnkk5o/f7569eqlO++8Uz4+Ppo+fbry8/P17LPPeo5/4IEH9Omnn2rkyJG6+eab1aVLF6WmpurLL7/UtGnT1KFDh1L1jR8/XhkZGfrnP/8ph8OhRx55pEq+L8VCQ0M1efJk3XLLLerWrZuuv/56hYeHa8OGDcrJydE777wjq9WqN998UxdffLHatGmjsWPHql69ejp48KAWLlyo0NBQffXVV2e8hq+vr+bMmaOBAweqT58+uvrqq9WzZ0/5+vpq8+bNmjVrlsLDw/XUU0+Vq/ZLL71Uc+bM0ZVXXqlLLrlEe/fu1bRp09S6devTBtFl8fTTT+uKK65Qz549NXbsWJ04cUKvvPKK2rZtW+Kcffv21e23366JEydq/fr1uuiii+Tr66udO3dq9uzZevnllzVixIhzquGvWLt2rd5//3253W6lpaVp1apV+uyzz2SxWPTee++pffv2VV4TAABAdUfACwAAUI09//zzmj17tr799lu9/vrrKigoUEJCgu68807961//UlhYmGfsiy++qNtuu03/+te/lJubq5tuukndu3dXmzZttGTJEj388MOaOHGi3G63unfvrvfff1/du3f3HB8cHKwlS5boscce09y5c/XOO+8oOjpaAwYMUP369c9Y4yOPPKL09HRPyHvXXXdV5reklHHjxik6OlrPPPOM/vvf/8rX11ctW7bUfffd5xnTr18/LV++XP/973/1yiuvKCsrS7Gxserevbtuv/32s16jadOmWr9+vSZPnqy5c+fq888/l9vtVtOmTXXLLbfonnvuKXfdY8aMUXJysqZPn67vv/9erVu31vvvv6/Zs2dr0aJF5T6f9Hs7iccff1z/+Mc/1KxZM82cOVPvvPOONm/eXGLstGnT1KVLF02fPl2PPPKIfHx81LBhQ40ePVo9e/Y8p+v/VR9++KE+/PBD+fj4KDQ0VM2aNdO9996rO+64o9QicwAAAChiMc5lVQYAAAAAXqNjx46qU6eO5s+fb3YpAAAAqGD04AUAAABqCKfTqcLCwhLbFi1apA0bNqhfv37mFAUAAIBKxQxeAAAAoIbYt2+fBg4cqNGjRysuLk7btm3TtGnT5HA4tGnTJkVGRppdIgAAACoYPXgBAACAGiI8PFxdunTRm2++qaNHjyooKEiXXHKJnnnmGcJdAACAGooZvAAAAAAAAADgpejBCwAAAAAAAABeioAXAAAAAAAAALwUPXjhldxutw4dOqSQkBBZLBazywEAAAAAAKgQhmEoMzNTcXFxslqZm4mzI+CFVzp06JDi4+PNLgMAAAAAAKBSJCUlqX79+maXAS9AwAuvFBISIqnozS40NNTkagAAAAAAACpGRkaG4uPjPdkHcDYEvPBKxW0ZQkNDCXgBAAAAAECNQ0tKlBWNPAAAAAAAAADASxHwAgAAAAAAAICXIuAFAAAAAAAAAC9FD17UaC6XS06n0+wyagxfX1/ZbDazywAAAAAAAMBJBLyokQzDUHJystLS0swupcYJCwtTbGwszd4BAAAAAACqAQJe1EjF4W50dLQCAwMJIyuAYRjKycnRkSNHJEl169Y1uSIAAAAAAAAQ8KLGcblcnnA3MjLS7HJqlICAAEnSkSNHFB0dTbsGAAAAAAAAk7HIGmqc4p67gYGBJldSMxV/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LwAAAAAAAKotl9vQ/bM36OvfDsvXZtFrozurf4tos8sCqg0CXqAasFgsf/p4/PHHJUlz587V+eefL4fDoZCQELVp00b33nuv5zwzZ85UWFhYma7ZsmVL2e12JScnV/wNAQAAAABQAVxuQw/M3qAv1h+Sj9Wiqdd31oBWMWaXBVQrBLxANXD48GHP46WXXlJoaGiJbX//+9/1008/6ZprrtHw4cP166+/as2aNXrqqafkdDrLfb2lS5cqNzdXI0aM0DvvvFMJdwQAAAAAwF/jdht66LPfNGfdQdmsFr1yfSdd1CbW7LKAasfH7AIASLGxv/8PyuFwyGKxlNgmSV999ZV69uypBx54wLOtefPmGjZsWLmvN2PGDF1//fXq27ev/va3v+mhhx4659oBAAAAAKhobrehh+ds1KdrDshmtWjKtZ00pG1ds8sCqiVm8AJeIjY2Vps3b9amTZv+0nkyMzM1e/ZsjR49WoMGDVJ6erqWLFlSQVUCAAAAAPDXuN2G/vn5Jn28OklWi/TSNR11SXvCXeBMmMGL2sEwJGdO1V/XN1CyWCrkVHfffbeWLFmidu3aqUGDBjr//PN10UUXadSoUbLb7WU+z0cffaRmzZqpTZs2kqRrr71WM2bMUO/evSukTgAAAAAAzpVhGHr0y0368NdEWS3S5Gs66rIOcWaXBVRrBLyoHZw50tMm/A/hkUOSX1CFnCooKEjffPONdu/erYULF2rFihW6//779fLLL2v58uUKDAws03neeustjR492vN69OjR6tu3r/73v/8pJCSkQmoFAAAAAKC8DMPQf77aovdXJMpikZ4b0UFXdKxndllAtUeLBsDLNGnSRLfccovefPNNrV27Vlu2bNHHH39cpmO3bNmiFStW6MEHH5SPj498fHx0/vnnKycnRx999FElVw4AAAAAwOkZhqH/fr1VM3/ZJ4tFmjS8vYZ3qW92WYBXYAYvagffwKLZtGZctxI1bNhQgYGBys7OLtP4GTNmqE+fPpo6dWqJ7W+//bZmzJihW2+9tTLKBAAAAADgjAzD0MTvtumtZXslSROvbKeru8abXBXgPQh4UTtYLBXWKsEsjz/+uHJycjR06FA1aNBAaWlpmjJlipxOpwYNGuQZ53K5tH79+hLH2u12NW3aVO+9956eeOIJtW3btsT+W265RS+++KI2b97s6c0LAAAA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yMjIcns0Llq0SB9//LG+/fbb4nWbNm3SE088oZ9++kl+fhV7CxQdPzIyssLPXVEpKSmKj48vddyibfXq1Tut46NiGHPuY+7GG2/UgQMH1K1bN1mWpby8PN1zzz20aKhE3jTmKiI6OlqTJk3SX/7yF2VnZ+s///mPLrroIi1ZskSdOnWq8uf3Bt485qZNm6ZffvlFb775Zrn7PP7444qJiTlpGxHgVNSG99/mzZv16quvaty4cSc9dlnHTU9P19GjRxUcHFyhGnF6GHPuY+6JJ55Qenq6WrVqJV9fX+Xn5+uFF17QTTfdVKH6cXLeNOYqIiEhQe+8847at2+vtLQ0jRs3TomJiVqzZo3OPPPM0z4+cDxm8KJGuv/++7V69Wp99NFHp3yM1atXa8CAARo5cqR69eolyfSBvPHGGzVq1Ci1bNmyzMe9//77qlOnTvHy008/nXINx2vTpk3xcfm0uGZhzLmbN2+eXnzxRb3++utavny5PvvsM3377bd67rnnKq02b8eYc5eQkKC7775bnTt3VmJiot555x0lJiZqwoQJlVabt/PWMTd37lzddttteuutt9SmTZsyj/HSSy/po48+0ueff84FUFAlnP7+2717t/r06aNrr71Wf/3rX4vXH3vce+6559ReGKoEY87dtGnT9P777+uDDz7Q8uXLNXXqVI0bN05Tp071uDaUjTHnrmvXrho8eLA6duyoHj166LPPPlPDhg1P+GEzcDqYwYsa54EHHtA333yjH3/80e2TraioKOXk5Cg1NdXtE8C9e/eWuvDY2rVr1bNnT9111116+umni9cfPnxYv/76q1asWKEHHnhAkvmk0bIs+fn56fvvv9cVV1yhLl26FD+mcePGSk5OLn6u6Ohot+euyNU7i3z33XfKzc2VpOLZC1FRUW5XES06btE2VD3GXOkxN2LECN1yyy268847JUnt2rVTRkaG7rrrLj311FPy8eHzwdPhbWPuVJ133nlasGDBaR0DhreOufnz56t///6aMGGCBg8eXObjx40bp5deekmzZs1S+/btK/y8QEU5/f23Z88eXXzxxUpMTHS7IKskrVy5svh2eHh48esq698Z4eHhzN6tJoy50mPuscce0xNPPKFBgwZJMv+23b59u0aPHq0hQ4aU/8tEhXjbmDsV/v7+Ouecc7R58+ZTPgZwQva1/wXcFRQUWPfff78VExNjbdy4sdT2ogbtn376afG69evXl2rQvnr1aqtRo0bWY489VuoY+fn51qpVq9yWe++910pISLBWrVplHTlypNzaoqKirHHjxhWvS0tLq9QLXuXk5BSvGz58OBdZqwaMufLHXKdOnaxhw4a5Pe6DDz6wgoODrby8vAo9D0rz1jF3rPIuslaWpKQk66qrrvL4OVDCm8fc3LlzrdDQUOu1114rd58xY8ZY4eHhJ7zQC3CqasP7b9euXVaLFi2sQYMGVfjv/2HDhllt27Z1W3fDDTdwkbVqwJgrcfyYq1+/vvX666+77fPiiy9aLVq0qNBzoGzeOuaOVd5F1o6Xl5dnJSQkWA8//LDHzwFUBAEvaox7773XioiIsObNm2clJycXL5mZmcX73HPPPVZcXJw1Z84c69dff7W6du1qde3atXj7qlWrrIYNG1o333yz2zH27dtX7vNW5AqclmVZL730klW3bl3ryy+/tH7//XdrwIABVnx8vHX06NHifbZv326tWLHCGjVqlFWnTh1rxYoV1ooVK6zDhw+Xe9zU1FQrMjLSuuWWW6zVq1dbH330kRUSEmK9+eabxftkZ2cXHys6Otp69NFHrRUrVlibNm06ad0oH2Ou/DE3cuRIKywszPrwww+tLVu2WN9//73VvHlz67rrrjtp3Sift445y7KsNWvWWCtWrLD69+9vXXTRRcWPKzJhwgTriy++sDZt2mStWrXKeuihhywfHx9r1qxZJ60b5fPWMTdnzhwrJCTEGj58uFvNBw8edHvugIAA69NPP3Xb52RjGagop7//du3aZZ111llWz549rV27drk9/4ls2bLFCgkJsR577DFr3bp11r/+9S/L19fXmjFjRvE+hw8fLn4vS7LGjx9vrVixwtq+fftJ60b5GHPlj7khQ4ZYjRs3tr755htr69at1meffWadccYZpSY0wDPeOuYsyyo+h3Xu3Nm68cYbrRUrVlhr1qwp3j5q1Chr5syZ1h9//GEtW7bMGjRokBUUFOS2D1CZCHhRY0gqc5k8eXLxPkePHrXuu+8+q169elZISIh11VVXuZ18R44cWeYxmjRpUu7zVvQvh4KCAmvEiBFWZGSkFRgYaPXs2dPasGGD2z5Dhgwp8/nnzp17wmP/9ttvVrdu3azAwECrcePG1ksvveS2fevWrWUet0ePHietG+Vj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", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" + "name": "stdout", + "output_type": "stream", + "text": [ + "({'total_cost': 0.7510199999999999, 'gpt-4': {'cost': 0.7510199999999999, 'prompt_tokens': 14984, 'completion_tokens': 5025, 'total_tokens': 20009}}, {'total_cost': 0.3678, 'gpt-4': {'cost': 0.3678, 'prompt_tokens': 7478, 'completion_tokens': 2391, 'total_tokens': 9869}})\n" + ] } ], "source": [ - "try:\n", - " image = Image(filename=\"coding/stock_price_ytd.png\")\n", - " display(image)\n", - "except FileNotFoundError:\n", - " print(\"Image not found. Please check the file name and modify if necessary.\")" + "print(chat_res.cost)" ] }, { @@ -818,7 +786,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 14, "metadata": {}, "outputs": [], "source": [ @@ -827,13 +795,6 @@ " super().__init__(name, **kwargs)\n", " self._ipython = get_ipython()\n", "\n", - " def generate_init_message(self, *args, **kwargs) -> Union[str, Dict]:\n", - " return (\n", - " super().generate_init_message(*args, **kwargs)\n", - " + \"\"\"\n", - "If you suggest code, the code will be executed in IPython.\"\"\"\n", - " )\n", - "\n", " def run_code(self, code, **kwargs):\n", " result = self._ipython.run_cell(\"%%capture --no-display cap\\n\" + code)\n", " log = self._ipython.ev(\"cap.stdout\")\n", @@ -855,17 +816,35 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "The implementation overrides three functions in `UserProxyAgent`:\n", + "The implementation overrides two functions in `UserProxyAgent`:\n", "* constructor. We get the ipython instance as the code execution environment.\n", - "* `generate_init_message`. We generate a modified initial message to send to the assistant agent, by adding the info that the execution will be performed in IPython.\n", "* `run_code`. We execute the code with the ipython instance.\n", "\n", + "In addition, we create a **user defined message function** shown below to generate the initiate message to the chat. In this function, we append the raw message, carryover information (both of which are provide via `context`), and a string specifing IPython execution together as the final message." + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [], + "source": [ + "def my_ipy_message_generator(sender, recipient, context):\n", + " raw_message = context.get(\"raw_message\", \"\")\n", + " carryover = context.get(\"carryover\", \"\")\n", + " return raw_message + carryover + \"If you suggest code, the code will be executed in IPython.\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ "With the new `IPythonUserProxyAgent`, we are able to run the code within the current notebook environment and display the plot directly." ] }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 32, "metadata": {}, "outputs": [ { @@ -874,68 +853,122 @@ "text": [ "\u001b[33mipython_user_proxy\u001b[0m (to assistant):\n", "\n", - "Plot a chart of META and TESLA stock price gain YTD\n", - "If you suggest code, the code will be executed in IPython.\n", + "Plot a chart of META and TESLA stock price gain YTD. Use data from the following csv file if it exists: coding/stock_price_ytd.csv. Use csv to read the file. Otherwise, figure out how to get the data.If you suggest code, the code will be executed in IPython.\n", "\n", "--------------------------------------------------------------------------------\n", - "self.reply_at_receive[sender]self.reply_at_receive[sender] True\n", - "recipitent sending assistant Plot a chart of META and TESLA stock price gain YTD\n", - "If you suggest code, the code will be executed in IPython. None\n", "\u001b[33massistant\u001b[0m (to ipython_user_proxy):\n", "\n", - "To plot a chart of META (Facebook's parent company, Meta Platforms, Inc.) and TESLA (Tesla, Inc.) stock price gain year-to-date (YTD), we can use Python with libraries such as `pandas` for data manipulation and `matplotlib` or `plotly` for plotting. We will also use `yfinance` to fetch historical stock data.\n", - "\n", - "Here's the plan:\n", - "1. Install the `yfinance` library if it's not already installed.\n", - "2. Fetch the YTD stock price data for META and TESLA.\n", - "3. Calculate the YTD gain for each stock.\n", - "4. Plot the YTD gain on a chart.\n", + "First, we need to check if the file `coding/stock_price_ytd.csv` exists and if it contains the necessary data for META and TESLA stock price gains YTD (Year-To-Date). We will attempt to read the file using Python's `csv` module. If the file does not exist or we cannot obtain the necessary data from it, we will then look for an alternative way to get the data.\n", "\n", - "First, let's install `yfinance` and import the necessary libraries. Execute the following code:\n", + "Let's start by checking if the file exists and reading its contents.\n", "\n", "```python\n", - "# Install yfinance if not already installed\n", - "!pip install yfinance\n", + "# filename: check_csv_file.py\n", + "\n", + "import csv\n", + "import os\n", + "\n", + "# Define the path to the CSV file\n", + "file_path = 'coding/stock_price_ytd.csv'\n", + "\n", + "# Check if the file exists\n", + "if os.path.exists(file_path):\n", + " try:\n", + " # Attempt to read the file and print its contents\n", + " with open(file_path, mode='r') as file:\n", + " csv_reader = csv.DictReader(file)\n", + " meta_data = []\n", + " tesla_data = []\n", + " for row in csv_reader:\n", + " if 'META' in row:\n", + " meta_data.append(row)\n", + " if 'TESLA' in row:\n", + " tesla_data.append(row)\n", + " print(\"META data:\", meta_data)\n", + " print(\"TESLA data:\", tesla_data)\n", + " except Exception as e:\n", + " print(f\"An error occurred while reading the file: {e}\")\n", + "else:\n", + " print(\"The file does not exist.\")\n", + "```\n", "\n", - "import yfinance as yf\n", - "import pandas as pd\n", - "import matplotlib.pyplot as plt\n", - "from datetime import datetime\n", + "Please execute the above code to check for the file and read its contents. If the file exists and contains the required data, we will proceed to plot the chart. If not, we will explore alternative ways to obtain the data.\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[31m\n", + ">>>>>>>> EXECUTING CODE BLOCK 0 (inferred language is python)...\u001b[0m\n", + "\u001b[33mipython_user_proxy\u001b[0m (to assistant):\n", + "\n", + "exitcode: 0 (execution succeeded)\n", + "Code output: \n", + "META data: [{'Date': '2024-01-02', 'META': '346.2900085449219', 'TSLA': '248.4199981689453'}, {'Date': '2024-01-03', 'META': '344.4700012207031', 'TSLA': '238.4499969482422'}, {'Date': '2024-01-04', 'META': '347.1199951171875', 'TSLA': '237.92999267578125'}, {'Date': '2024-01-05', 'META': '351.95001220703125', 'TSLA': '237.49000549316406'}, {'Date': '2024-01-08', 'META': '358.6600036621094', 'TSLA': '240.4499969482422'}, {'Date': '2024-01-09', 'META': '357.42999267578125', 'TSLA': '234.9600067138672'}, {'Date': '2024-01-10', 'META': '370.4700012207031', 'TSLA': '233.94000244140625'}, {'Date': '2024-01-11', 'META': '369.6700134277344', 'TSLA': '227.22000122070312'}, {'Date': '2024-01-12', 'META': '374.489990234375', 'TSLA': '218.88999938964844'}, {'Date': '2024-01-16', 'META': '367.4599914550781', 'TSLA': '219.91000366210938'}, {'Date': '2024-01-17', 'META': '368.3699951171875', 'TSLA': '215.5500030517578'}, {'Date': '2024-01-18', 'META': '376.1300048828125', 'TSLA': '211.8800048828125'}, {'Date': '2024-01-19', 'META': '383.45001220703125', 'TSLA': '212.19000244140625'}, {'Date': '2024-01-22', 'META': '381.7799987792969', 'TSLA': '208.8000030517578'}, {'Date': '2024-01-23', 'META': '385.20001220703125', 'TSLA': '209.13999938964844'}, {'Date': '2024-01-24', 'META': '390.70001220703125', 'TSLA': '207.8300018310547'}, {'Date': '2024-01-25', 'META': '393.17999267578125', 'TSLA': '182.6300048828125'}, {'Date': '2024-01-26', 'META': '394.1400146484375', 'TSLA': '183.25'}, {'Date': '2024-01-29', 'META': '401.0199890136719', 'TSLA': '190.92999267578125'}, {'Date': '2024-01-30', 'META': '400.05999755859375', 'TSLA': '191.58999633789062'}, {'Date': '2024-01-31', 'META': '390.1400146484375', 'TSLA': '187.2899932861328'}, {'Date': '2024-02-01', 'META': '394.7799987792969', 'TSLA': '188.86000061035156'}, {'Date': '2024-02-02', 'META': '474.989990234375', 'TSLA': '187.91000366210938'}, {'Date': '2024-02-05', 'META': '459.4100036621094', 'TSLA': '181.05999755859375'}, {'Date': '2024-02-06', 'META': '454.7200012207031', 'TSLA': '185.10000610351562'}, {'Date': '2024-02-07', 'META': '469.5899963378906', 'TSLA': '187.5800018310547'}, {'Date': '2024-02-08', 'META': '470.0', 'TSLA': '189.55999755859375'}, {'Date': '2024-02-09', 'META': '468.1099853515625', 'TSLA': '193.57000732421875'}, {'Date': '2024-02-12', 'META': '468.8999938964844', 'TSLA': '188.1300048828125'}, {'Date': '2024-02-13', 'META': '460.1199951171875', 'TSLA': '184.02000427246094'}, {'Date': '2024-02-14', 'META': '473.2799987792969', 'TSLA': '188.7100067138672'}, {'Date': '2024-02-15', 'META': '484.0299987792969', 'TSLA': '200.4499969482422'}, {'Date': '2024-02-16', 'META': '473.32000732421875', 'TSLA': '199.9499969482422'}, {'Date': '2024-02-20', 'META': '471.75', 'TSLA': '193.75999450683594'}, {'Date': '2024-02-21', 'META': '468.0299987792969', 'TSLA': '194.77000427246094'}, {'Date': '2024-02-22', 'META': '486.1300048828125', 'TSLA': '197.41000366210938'}, {'Date': '2024-02-23', 'META': '484.0299987792969', 'TSLA': '191.97000122070312'}, {'Date': '2024-02-26', 'META': '481.739990234375', 'TSLA': '199.39999389648438'}, {'Date': '2024-02-27', 'META': '487.04998779296875', 'TSLA': '199.72999572753906'}, {'Date': '2024-02-28', 'META': '484.0199890136719', 'TSLA': '202.0399932861328'}, {'Date': '2024-02-29', 'META': '490.1300048828125', 'TSLA': '201.8800048828125'}, {'Date': '2024-03-01', 'META': '502.29998779296875', 'TSLA': '202.63999938964844'}]\n", + "TESLA data: []\n", "\n", - "# Check if today's date is required or the last trading day\n", - "today = datetime.today().strftime('%Y-%m-%d')\n", "\n", - "# Fetch YTD stock data for META and TESLA\n", - "meta_data = yf.download('META', start='2023-01-01', end=today)\n", - "tesla_data = yf.download('TSLA', start='2023-01-01', end=today)\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33massistant\u001b[0m (to ipython_user_proxy):\n", "\n", - "# Calculate the YTD gain for each stock\n", - "meta_ytd_gain = (meta_data['Close'] - meta_data['Close'].iloc[0]) / meta_data['Close'].iloc[0] * 100\n", - "tesla_ytd_gain = (tesla_data['Close'] - tesla_data['Close'].iloc[0]) / tesla_data['Close'].iloc[0] * 100\n", + "The output indicates that the file `coding/stock_price_ytd.csv` exists and contains the necessary data for META stock price gains YTD. However, it seems that the TESLA data is not separated correctly, as the TESLA data appears to be within the same rows as the META data, but the script is looking for a separate 'TESLA' entry in the rows.\n", "\n", - "# Plot the YTD gain on a chart\n", - "plt.figure(figsize=(14, 7))\n", - "plt.plot(meta_ytd_gain.index, meta_ytd_gain, label='META YTD Gain %')\n", - "plt.plot(tesla_ytd_gain.index, tesla_ytd_gain, label='TESLA YTD Gain %')\n", - "plt.title('META vs TESLA Stock Price Gain YTD')\n", - "plt.xlabel('Date')\n", - "plt.ylabel('Gain %')\n", - "plt.legend()\n", - "plt.grid(True)\n", - "plt.show()\n", + "We need to adjust the script to correctly parse the TESLA data from the same rows as the META data. Let's modify the script to extract both META and TESLA stock prices from the same rows and then plot the chart.\n", + "\n", + "```python\n", + "# filename: plot_stock_prices.py\n", + "\n", + "import csv\n", + "import os\n", + "import matplotlib.pyplot as plt\n", + "\n", + "# Define the path to the CSV file\n", + "file_path = 'coding/stock_price_ytd.csv'\n", + "\n", + "# Initialize lists to hold the parsed data\n", + "dates = []\n", + "meta_prices = []\n", + "tesla_prices = []\n", + "\n", + "# Check if the file exists\n", + "if os.path.exists(file_path):\n", + " try:\n", + " # Read the file and parse the data\n", + " with open(file_path, mode='r') as file:\n", + " csv_reader = csv.DictReader(file)\n", + " for row in csv_reader:\n", + " dates.append(row['Date'])\n", + " meta_prices.append(float(row['META']))\n", + " tesla_prices.append(float(row['TSLA']))\n", + " \n", + " # Plot the data\n", + " plt.figure(figsize=(14, 7))\n", + " plt.plot(dates, meta_prices, label='META', marker='o')\n", + " plt.plot(dates, tesla_prices, label='TESLA', marker='x')\n", + " \n", + " # Formatting the plot\n", + " plt.title('META vs TESLA Stock Price Gain YTD')\n", + " plt.xlabel('Date')\n", + " plt.ylabel('Stock Price')\n", + " plt.xticks(rotation=45)\n", + " plt.legend()\n", + " plt.tight_layout()\n", + " \n", + " # Show the plot\n", + " plt.show()\n", + " except Exception as e:\n", + " print(f\"An error occurred while processing the file: {e}\")\n", + "else:\n", + " print(\"The file does not exist.\")\n", "```\n", "\n", - "This code will install `yfinance`, fetch the YTD stock data for META and TESLA, calculate the YTD gain, and plot it on a chart. Please execute the code in your IPython environment.\n", + "Please execute the above code to plot the chart of META and TESLA stock price gains YTD.\n", "\n", "--------------------------------------------------------------------------------\n", - "self.reply_at_receive[sender]self.reply_at_receive[sender] True\n", "\u001b[31m\n", ">>>>>>>> EXECUTING CODE BLOCK 0 (inferred language is python)...\u001b[0m\n" ] }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAABJgAAAJwCAYAAADFk9tlAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/H5lhTAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdd1yV9fvH8dc5cNggogwHIG5x59acKZqjoWW2zHap7fW1aVnZt1/btNKvaUObjsrU3Jq5zb33RlyAgMDhnPv3x4GjBCjIwQP2fj4e58E59/zc53wgz9V1XbfJMAwDERERERERERGRy2R29wBERERERERERKRsU4BJRERERERERESKRQEmEREREREREREpFgWYRERERERERESkWBRgEhERERERERGRYlGASUREREREREREikUBJhERERERERERKRYFmEREREREREREpFgUYBIRERERERERkWJRgElERESkjBk0aBABAQFuO3+nTp3o1KmT287vasOHD8dkMrl7GCIiImWaAkwiIiL5mDhxIiaTCZPJxNKlS/OsNwyDyMhITCYTvXv3zrUuZ7/8Ho888giLFi266DYXPi7Uv39/TCYTL7zwQolee2F16tSpUNcwfPhwAKpVq1bgNj169Mh17KVLl3L99ddTpUoVfHx8iIqKok+fPkyePDnXdiaTiaFDhxZ6zGPGjMFkMtGqVasiXavdbufrr7+mVatWhISEEBgYSO3atRk4cCArVqxwbrd161aGDx/O/v37i3T8KyknmJLz8PPzIzY2lpdffpnk5GR3D++SNm7cyL333ktMTAw+Pj4EBATQpEkTnn/+efbu3evu4fHOO+9gMpn4448/8l3fs2dPypUrR1xcXKF+fwYNGgTk/n0zm80EBQVRp04d7r77bubOnXsFr1BERCR/nu4egIiISGnm4+PD5MmTufbaa3MtX7x4MYcPH8bb2zvf/bp168bAgQPzLK9duzbR0dF88803uZYPGzaMgIAAXnrppXyPl5yczG+//Ua1atX47rvvnF9i3emll17igQcecL5evXo1n3zyCS+++CL16tVzLm/UqJHzeZMmTXjmmWfyHKty5crO5z/99BO33XYbTZo04YknnqB8+fLs27ePJUuWMG7cOO64447LHvOkSZOoVq0aq1atYvfu3dSsWbNQ+z3++OOMHj2aG2+8kTvvvBNPT0927NjBrFmzqF69Oq1btwYcAabXX3+dTp06Ua1atcse55Xw2WefERAQQEpKCnPmzOGtt95iwYIF/PXXX5ecW3PmzLlCo8xt3LhxPProo1SsWJE777yTunXrkpWVxebNm/n666/56KOPOHfuHB4eHkU67ssvv8x//vMfl4zxmWeeYfLkyQwePJjNmzfj6+vrXPfTTz8xa9YsRo8eTdOmTXP9jdi3bx+vvvoqDz30EO3bt3cur1GjhvN51apVGTlyJACpqans3r2bqVOn8u2339K/f3++/fZbLBaLS65DRESkyAwRERHJY8KECQZg9O3b16hYsaJhtVpzrX/wwQeNZs2aGdHR0UavXr1yrQOMIUOGFOl89evXNzp27Fjg+i+//NKwWCzGggULDMBYtGhRkY5/Jfz0008GYCxcuDDf9fm9V/mJjY016tevb2RkZORZd/z48Vyvi/Je79271wCMqVOnGqGhocbw4cMLtV98fLxhMpmMBx98MM86u92ea0yXeg9c5Z577jH8/f0va9/XXnvNAIwTJ07kWt63b18DMJYtW1bgvqmpqZd1Tlf466+/DA8PD6NDhw5GcnJynvXnzp0zXn75ZSMrK8sNo8tt+fLlhtlsNoYNG+ZclpycbFSuXNlo3bq1YbPZ8uyzevVqAzAmTJiQ7zE7duxo1K9fP8/yrKwsY/DgwQZgPP/88y67BhERkaJSiZyIiMhF3H777Zw6dSpXCUpmZiY///xzsTJpimrSpEl069aNzp07U69ePSZNmnTJfaxWKyEhIdx777151iUnJ+Pj48Ozzz7rXDZq1Cjq16+Pn58f5cuXp3nz5nlK0q6EPXv20KJFC7y8vPKsCwsLu+zjTpo0ifLly9OrVy9uueWWQr2H4MgsMQyDdu3a5VlnMpmcY5o4cSK33norAJ07d3aWMy1atMi5/ZgxY6hfvz7e3t5UrlyZIUOGkJiYmOe4K1eupGfPnpQvXx5/f38aNWrExx9/fNFxrl+/ntDQUDp16kRKSkqhru1CXbp0cV4vOEqyGjRowNq1a+nQoQN+fn68+OKLznX/7MGUnp7O8OHDqV27Nj4+PlSqVIm+ffuyZ88e5zZ2u52PPvqI+vXr4+PjQ3h4OA8//DBnzpy55Phef/11TCYTkyZNIjAwMM96Hx8fRowYkSt76c8//+TWW28lKioKb29vIiMjeeqppzh37lyuffPrwZRTfjl9+nQaNGiAt7c39evXZ/bs2Zcca+vWrXnkkUd477332Lp1K+DIkkpISGDs2LGYza77J7iHhweffPIJsbGxfPrppyQlJbns2CIiIkWhAJOIiMhFVKtWjTZt2vDdd985l82aNYukpCQGDBhQ4H7p6emcPHkyzyMzM7PIYzh69CgLFy7k9ttvBxxBr59//vmSx7JYLNx8881Mnz49z7bTp08nIyPDeQ3jxo3j8ccfJzY2lo8++ojXX3+dJk2asHLlyiKP92KsVmu+78uFX/ijo6OZP38+hw8fdum5J02aRN++ffHy8uL2229n165drF69+pL7RUdHA47yprS0tAK369ChA48//jgAL774It988w3ffPONs1xw+PDhDBkyhMqVK/P+++/Tr18/vvjiC+Li4rBarc7jzJ07lw4dOrB161aeeOIJ3n//fTp37syMGTMKPPfq1avp0qULTZs2ZdasWZfVADwnEFShQgXnslOnTnH99dfTpEkTPvroIzp37pzvvjabjd69e/P666/TrFkz3n//fZ544gmSkpLYvHmzc7uHH36Y5557jnbt2vHxxx9z7733MmnSJLp3757rPfintLQ0FixYQKdOnahatWqhrynnM3v00UcZNWoU3bt3Z9SoUfmWr+Zn6dKlDB48mAEDBvDuu++Snp5Ov379OHXq1CX3HTlyJKGhoTz88MOsXbuW0aNH8+yzz9KwYcNCj7+wPDw8uP3220lLS8u3Z5yIiMgV4e4UKhERkdIop0Ru9erVxqeffmoEBgYaaWlphmEYxq233mp07tzZMIz8y76AAh/fffddvue7WInce++9Z/j6+jrLgnbu3GkAxrRp0y55HX/88YcBGL/99luu5T179jSqV6/ufH3jjTfmW35TFIUpkSvofRk5cqRzu/HjxxuA4eXlZXTu3Nl45ZVXjD///DPfsiIKWSK3Zs0aAzDmzp1rGIajtK1q1arGE088UahrGzhwoAEY5cuXN26++WbjvffeM7Zt21bo9yAhIcHw8vIy4uLicl3Hp59+agDGl19+aRiGo9wpJibGiI6ONs6cOZPrGHa73fn8whK5pUuXGkFBQUavXr2M9PT0S15LToncjh07jBMnThj79u0zvvjiC8Pb29sIDw93lsF17NjRAIzPP/88zzE6duyYa75++eWXBmB88MEHebbN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nuTTTz/Nsy5n3P3798dmszFixIg822RlZeW53n969dVXsdls3HXXXfmWyv3z/cnJPrpwuWEYfPzxx5e8nrLEZrPx+OOPs23bNh5//PGLlsyKiIiUJGUwiYiIFFJRyrJ27tzpLG+7UHh4ON26dSvUMSZNmoSHh4cz+PBPN9xwAy+99BLff/89Tz/99EWPddtttzFq1Chee+01GjZsSL169XKtj4uLIyIignbt2hEeHs62bdv49NNPczUXd4UjR47k+74EBARw0003AY4G6TExMfTp04caNWqQmprKvHnz+O2335yBlAutWbOGN998M88xO3XqxJEjRzh79iw33HBDvuNp3bo1oaGhTJo0KU/QLcfhw4dp2bIlXbp04brrriMiIoKEhAS+++47NmzYwJNPPuksNWvSpAkeHh7897//JSkpCW9vb7p06UJYWBjDhg3j9ddfp0ePHtxwww3s2LGDMWPG0KJFC+666y7AEQz87LPP6NOnD02aNOHee++lUqVKbN++nS1btvDHH3/kGZ+vry8zZsygS5cuXH/99SxevLhQPZxcaeDAgXz99dc8/fTTrFq1ivbt2zs/t8GDB3PjjTfSsWNHHn74YUaOHMn69euJi4vDYrGwa9cufvrpJz7++OOL9jZr3749n376KY899hi1atXizjvvpG7dumRmZrJz504mTZqEl5cXERERANStW5caNWrw7LPPcuTIEYKCgpgyZUqR+ieVNklJSc7fn7S0NHbv3s3UqVPZs2cPAwYMyDd4JyIicsW46/Z1IiIipdmECRMMwFi9evVFt4uOjjZ69eqVaxlQ4OPCW7tfqH79+rnWZWZmGhUqVDDat29/0fPHxMQYTZs2veT12O12IzIy0gCMN998M8/6L774wujQoYNRoUIFw9vb26hRo4bx3HPPGUlJSZc8do6ffvrJAIyFCxfmuz46OrrA9yU6Otq53XfffWcMGDDAqFGjhuHr62v4+PgYsbGxxksvvWQkJyfnOubF3usRI0YYffr0MXx8fIzU1NQCxz1o0CDDYrEYJ0+ezHd9cnKy8fHHHxvdu3c3qlatalgsFiMwMNBo06aNMW7cOMNut+fafty4cUb16tUNDw+PPO/Hp59+atStW9ewWCxGeHi48eijjxpnzpzJc86lS5ca3bp1MwIDAw1/f3+jUaNGxqhRo5zr77nnHsPf3z/XPidPnjRiY2ONiIgIY9euXQVe72uvvWYAxokTJwrcxjAMo2PHjkb9+vULXPfPuZyWlma89NJLRkxMjGGxWIyIiAjjlltuMfbs2ZNru7FjxxrNmjUzfH19jcDAQKNhw4bG888/bxw9evSi48mxbt06Y+DAgUZUVJTh5eXlfH+eeeYZY/fu3bm23bp1q9G1a1cjICDAqFixovHggw8aGzZsMABjwoQJed6TCwHGkCFD8pw/OjrauOeeewo11guPfan3e/Xq1XnGdaGOHTvmmt8BAQFGrVq1jLvuusuYM2dOoccjIiJSUkyGUQq7FIqIiIiIiIiISJmhHkwiIiIiIiIiIlIsCjCJiIiIiIiIiEixKMAkIiIiIiIiIiLFogCTiIiIiIiIiIgUiwJMIiIiIiIiIiJSLAowiYiIiIiIiIhIsXi6ewClgd1u5+jRowQGBmIymdw9HBERERERERERlzAMg7Nnz1K5cmXM5hLMMzLcaMyYMUbDhg2NwMBAIzAw0GjdurUxc+ZM5/pz584ZgwcPNkJCQgx/f3+jb9++Rnx8fK5jHDhwwOjZs6fh6+trhIaGGs8++6xhtVqLNI5Dhw4ZgB566KGHHnrooYceeuihhx566KHHVfk4dOiQS2I5BXFrBlPVqlV55513qFWrFoZh8NVXX3HjjTeybt066tevz1NPPcXvv//OTz/9RLly5Rg6dCh9+/blr7/+AsBms9GrVy8iIiJYtmwZx44dY+DAgVgsFt5+++1CjyMwMBCAQ4cOERQUVCLX6kpWq5U5c+YQFxeHxWJx93CkDNHcEVfRXBJX0nySkqB5Ja6iuSSupPkkxXU5cyg5OZnIyEhn7KOkuDXA1KdPn1yv33rrLT777DNWrFhB1apVGT9+PJMnT6ZLly4ATJgwgXr16rFixQpat27NnDlz2Lp1K/PmzSM8PJwmTZowYsQIXnjhBYYPH46Xl1ehxpFTFhcUFFRmAkx+fn4EBQXpj5IUieaOuIrmkriS5pOUBM0rcRXNJXElzScpruLMoZJuCVRqejDZbDZ++uknUlNTadOmDWvXrsVqtdK1a1fnNnXr1iUqKorly5fTunVrli9fTsOGDQkPD3du0717dx599FG2bNlC06ZN8z1XRkYGGRkZztfJycmA44OyWq0ldIWukzPGsjBWKV00d8RVNJfElTSfpCRoXomraC6JK2k+SXFdzhy6UvPN7QGmTZs20aZNG9LT0wkICGDatGnExsayfv16vLy8CA4OzrV9eHg48fHxAMTHx+cKLuWsz1lXkJEjR/L666/nWT5nzhz8/PyKeUVXzty5c909BCmjNHfEVTSXxJU0n6QkaF6Jq2guiStpPklxFWUOpaWlleBIznN7gKlOnTqsX7+epKQkfv75Z+655x4WL15couccNmwYTz/9tPN1Tj1iXFxcmSmRmzt3Lt26dVNapRSJ5o64iuaSuJLmk5QEzStxFc0lcSXNJymuy5lDOVVbJc3tASYvLy9q1qwJQLNmzVi9ejUff/wxt912G5mZmSQmJubKYjp+/DgREREAREREsGrVqlzHO378uHNdQby9vfH29s6z3GKxFPgB2Wy2UpPGaLPZ8PT0xGazlewtBuWq4eHhgafn+V/3i811kaLQXBJX0nySkqB5Ja6iuSSupPkkxVWUOXSl5prbA0z/ZLfbycjIoFmzZlgsFubPn0+/fv0A2LFjBwcPHqRNmzYAtGnThrfeeouEhATCwsIAR5pYUFAQsbGxLhtTSkoKhw8fxjAMlx2zOAzDICIigkOHDpV4ky65evj5+REaGuruYYiIiIiIiMhVyK0BpmHDhnH99dcTFRXF2bNnmTx5MosWLeKPP/6gXLly3H///Tz99NOEhIQQFBTEY489Rps2bWjdujUAcXFxxMbGcvfdd/Puu+8SHx/Pyy+/zJAhQ/LNULocNpuNw4cPO7+cl4aAjt1uJyUlhYCAAGUwySUZhkFmZiYnTpzg4MGD7h6OiIiIiIiIXIXcGmBKSEhg4MCBHDt2jHLlytGoUSP++OMPunXrBsCHH36I2WymX79+ZGRk0L17d8aMGePc38PDgxkzZvDoo4/Spk0b/P39ueeee3jjjTdcNkar1YphGISGhuLr6+uy4xaH3W4nMzMTHx8fBZikUHx9fbFYLOzfvx8PDw93D0dERERERESuMm4NMI0fP/6i6318fBg9ejSjR48ucJvo6Ghmzpzp6qHlURoyl0SKIycYqbksIiIiIiIirqb0FxERERERERERKRYFmEREREREREREpFgUYBJxkYkTJxIcHOzuYYiIiIiIiIhccQowXaUGDRqEyWTikUceybNuyJAhmEwmBg0alGf7fz569OjBokWL8l134WPRokUAHD58GC8vLxo0aHDR8RmGQdeuXenevXuedWPGjCE4OJiuXbte9JzVqlUDoFOnTs5l3t7eVKlShT59+jB16tRCvVfx8fE88cQT1KxZEx8fH8LDw2nXrh2fffYZaWlphToGwG233cbOnTsLvX1+9u/fT4cOHfD396dDhw7s378/1/revXszZcqUYp1DRERERERExNUUYLqKRUZG8v3333Pu3DnnsvT0dCZPnkxUVFSe7Xv06MGxY8dyPb777jvatm2ba1n//v3zbNu2bVvAkcXTv39/kpOTWblyZYFjM5lMTJgwgZUrV/LFF184l+/bt4/nn3+eUaNGMWXKlFznAJgwYYLz9erVq537Pfjggxw7dow9e/YwZcoUYmNjGTBgAA899NBF36O9e/fStGlT5syZw9tvv826detYvnw5zz//PDNmzGDevHmFe7Nx3KktLCys0Nvn55lnnqFKlSqsX7+eSpUq8eyzzzrX/fDDD867KoqIiIiIiIiUJm69i1xZZBgG56w2t5zb1+JRpDuAXXPNNezZs4epU6dy5513AjB16lSioqKIiYnJs723tzcRERH5HuvC5b6+vmRkZOTZ1jAMJkyYwJgxY6hatSrjx4+nVatWBY4vMjKSjz/+mKFDhxIXF0e1atW4//77iYuL4+677wagXLlyufYJDg7Od4x+fn7O5VWrVqV169bUrVuX++67j/79+9O1a9d8xzB48GA8PT1Zs2YN/v7+zuXVq1fnxhtvxDAM57IPPviACRMmsHfvXkJCQujTpw/vvvsuAQEBgCO49uSTT5KYmAjA8OHDmT59Os888wyvvPIKZ86c4frrr2fcuHEEBgbmO55t27bxwQcfUKtWLQYNGuQMMCUmJvLyyy+zYMGCAt9PEREREREREXdRgKmIzlltxL76h1vOvfWN7vh5Fe0ju++++5gwYYIzwPTll19y7733OkvaXGnhwoWkpaXRtWtXqlSpQtu2bfnwww9zBW7+6Z577mHatGncd9999O3bl82bN7NlyxaXjOeee+7hmWeeYerUqfkGmE6dOuXMXCpojBcG9MxmM5988gkxMTHs3buXwYMH8/zzzzNmzJgCx7Bnzx6mT5/OjBkzOHPmDP379+edd97hrbfeynf7xo0bM2/ePOLi4pgzZw6NGjUC4LnnnmPIkCFERkYW5S0QERERERERuSJUIneVu+uuu1i6dCkHDhzgwIED/PXXX9x11135bjtjxgwCAgJyPd5+++1Cn2v8+PEMGDAADw8PGjRoQPXq1fnpp58uud/YsWPZvHkzTz75JGPHjiU0NLTQ57wYs9lM7dq18/QxyrF7924Mw6BOnTq5llesWNF5/S+88IJz+ZNPPknnzp2pVq0aXbp04c033+THH3+86BjsdjsTJ06kQYMGtG/fnrvvvpv58+cXuP17773H9u3bqVatGrt27eK9995jyZIlrF+/noEDB9K/f3+qV6/OI488QmZmZuHfDBEREREREZESpAymIvK1eLD1jbyNqa/UuYsqNDSUXr16MXHiRAzDoFevXlSsWDHfbTt37sxnn32Wa1lISEihzpOYmMjUqVNZunSpc9ldd93F+PHjczUTz09YWBgPP/ww06dP56abbirU+QrLMIwilRUCrFq1Crvdzp133klGRoZz+bx58xg5ciTbt28nOTmZrKws0tPTSUtLw8/PL99jVatWLVc5XKVKlUhISCjw3FWqVGHGjBnO1xkZGXTv3p2vvvqKN998k8DAQHbs2EGPHj344osveOyxx4p0bSIiIiIiIiIlQQGmIjKZTEUuU3O3++67j6FDhwIwevToArfz9/enZs2al3WOyZMnk56enqvnkmEY2O12du7cSe3atS+6v6enJ56ern1fbTYbu3btokWLFvmur1mzJiaTiR07duRaXr16dcDRayrH/v376d27N48++ihvvfUWISEhLF26lPvvv5/MzMwCA0wWiyXXa5PJhN1uL/Q1vP3228TFxdGsWTMefPBB3nzzTSwWC3379mXBggUKMImIiIiIiEipoBK5f4EePXqQmZmJ1Wqle/eSyb4aP348zzzzDOvXr3c+NmzYQPv27fnyyy9L5JyX8tVXX3HmzJkC77pWoUIFunXrxqeffkpqaupFj7V27Vrsdjvvv/8+rVu3pnbt2hw9erQkhu20bds2Jk+ezIgRIwBHwMxqtQJgtVqx2dzTbF5ERERERETkn8pWKo5cFg8PD7Zt2+Z8XpCMjAzi4+NzLfP09CywpC7H+vXr+fvvv5k0aRJ169bNte7222/njTfe4M0333R5htKF0tLSiI+PJysri8OHDzNt2jQ+/PBDHn30UTp37lzgfmPGjKFdu3Y0b96c4cOH06hRI8xmM6tXr2b79u00a9YMcGQ7Wa1WRo0aRZ8+ffjrr7/4/PPPS+x6DMPgoYceytUkvV27dowbN47atWvz9ddfc/vtt5fY+UVERERERESKQhlM/xJBQUEEBQVddJvZs2dTqVKlXI9rr732ksceP348sbGxeYJLADfffDMJCQnMnDnzssdeGOPGjaNSpUrUqFGDvn37snXrVn744YeL3uENoEaNGqxbt46uXbsybNgwGjduTPPmzRk1ahTPPvusM3uocePGfPDBB/z3v/+lQYMGTJo0iZEjR5bY9YwdO5bw8HB69+7tXDZ8+HBnGWLNmjUZMmRIiZ1fRERERETk3274r1vo+fGf/L7xmLuHUiaYDMMw3D0Id0tOTqZcuXIkJSXlCcKkp6ezb98+YmJi8PHxcdMIc7Pb7SQnJxMUFITZrBihFE56ejp79+5l3759xMXF5ekPJVIUVquVmTNn0rNnT80lKTbNJykJmlfiKppL4kqaT2VLv8+WsfbAGT65vSk3NK7s7uEAlzeHLhbzcCVFJ0RERERERERELmAYBruOnwWgdniAm0dTNijAJCIiIiIiIiJygRNnM0hOz8JsgpiK/u4eTpmgAJOIiIiIiIiIyAV2Hk8BoFoFf7w9C75ZlpynAJOIiIiIiIiIyAV2JTjK42qGqTyusBRgEhERERERERG5wK4ERwZTLfVfKjQFmERERERERERELrA7u0SuVligm0dSdijAJCIiIiIiIiKSzTAMdmaXyCmDqfAUYBIRERERERERyXYyJZPENCsmE9QIVYCpsBRgEhERERERERHJltPgOyrEDx+L7iBXWAowiZSwiRMnEhwc7O5hiIiIiIiISCHszmnwrTvIFYkCTFchk8l00cfw4cPZv39/getXrFgBgM1m45133qFu3br4+voSEhJCq1at+N///uc816BBg7jpppsuOabDhw/j5eVFgwYNLrqdYRh07dqV7t2751k3ZswYgoOD6dq160Wvr1q1agB06tTJuczb25sqVarQp08fpk6dWqj3MT4+nieeeIKaNWvi4+NDeHg47dq147PPPiMtLa1QxwC47bbb2LlzZ6G3z8/+/fvp0KED/v7+dOjQgf379+da37t3b6ZMmVKsc4iIiIiIiJQ2S3aeYPORpCt6zl3ZDb5rqsF3kSjAdBU6duyY8/HRRx8RFBSUa9mzzz7r3HbevHm51h07doxmzZoB8Prrr/Phhx8yYsQItm7dysKFC3nooYdITEws8pgm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QogIUgaTOynAJCIiIiIiIiKlTk6JnOdFSuRyVC3vV9LDkUtQiZyIiIiIiIiIlDo5JXJel8hgktJBn5KIiIiIiIiIlDqFLZGT0kGfkoiIiIiIiIiUOkUpkRP3U4BJREREREREREodlciVLfqURERERERERKTUyVKJXJmiT0lERERERERESp3MLJXIlSUKMImIiIiIiIhIqWO1qUSuLNGnJCIiIiIiIiKlTk6JnDKYygYFmERERERERESkVDEMw5nBpB5MZYM+JREREREREREpVXKCS6AAU1mhT0lERERERERESpWc8jgAi0rkygQFmERERERERESkVLFmKYOprNGnJCIiIiIiIiKlivWCDCZPszKYygIFmERERERERESkVLHaHAEmi4cJk0kBprJAASYRERERERERKVVySuRUHld26JMSERERERERkVIlp0ROAaayQ5+UiIiIiIiIiJQqF5bISdmgAJOIiIiIiIiIlCoqkSt73PpJjRw5khYtWhAYGEhYWBg33XQTO3bsyLVNp06dMJlMuR6PPPJIrm0OHjxIr1698PPzIywsjOeee46srKwreSkiIiIiIiIi4iIqkSt7PN158sWLFzNkyBBatGhBVlYWL774InFxcWzduhV/f3/ndg8++CBvvPGG87Wfn5/zuc1mo1evXkRERLBs2TKOHTvGwIEDsVgsvP3221f0ekRERERERESk+KxZjgCTp0rkygy3Bphmz56d6/XEiRMJCwtj7dq1dOjQwbncz8+PiIiIfI8xZ84ctm7dyrx58wgPD6dJkyaMGDGCF154geHDh+Pl5VWi1yAiIiIiIiIirmW1OUrkvJTBVGa4NcD0T0lJSQCEhITkWj5p0iS+/fZbIiIi6NOnD6+88oozi2n58uU0bNiQ8PBw5/bdu3fn0UcfZcuWLTRt2jTPeTIyMsjIyHC+Tk5OBsBqtWK1Wl1+Xa6WM8ayMFYpXTR3xFU0l8SVNJ+kJGheiatoLokraT4VXnpmJgCeZpPerwtczhy6Uu+fyTAM44qc6RLsdjs33HADiYmJLF261Ll87NixREdHU7lyZTZu3MgLL7xAy5YtmTp1KgAPPfQQBw4c4I8//nDuk5aWhr+/PzNnzuT666/Pc67hw4fz+uuv51k+efLkXOV3IiIiIiIiInLlbTpt4n87PKgWYPBUQ5u7h1OmpaWlcccdd5CUlERQUFCJnafUZDANGTKEzZs35wougSOAlKNhw4ZUqlSJ6667jj179lCjRo3LOtewYcN4+umnna+Tk5OJjIwkLi6uRN9sV7FarcydO5du3bphsVjcPRwpQzR3xFU0l8SVNJ+kJGheiatoLokraT4VnmlzPOzYSGjFEHr2bOHu4ZQalzOHcqq2SlqpCDANHTqUGTNmsGTJEqpWrXrRbVu1agXA7t27qVGjBhEREaxatSrXNsePHwcosG+Tt7c33t7eeZZbLJYy9Ute1sYrpYfmjriK5pK4kuaTlATNK3EVzSVxJc2nSzNMjt5L3p4eeq/yUZQ5dKXeP7d2yzIMg6FDhzJt2jQWLFhATEzMJfdZv349AJUqVQKgTZs2bNq0iYSEBOc2c+fOJSgoiNjY2BIZt4iIiIiIiIiUnEzdRa7McWsG05AhQ5g8eTK//PILgYGBxMfHA1CuXDl8fX3Zs2cPkydPpmfPnlSoUIGNGzfy1FNP0aFDBxo1agRAXFwcsbGx3H333bz77rvEx8fz8ssvM2TIkHyzlERERERERESkdMu5i5xFd5ErM9z6SX322WckJSXRqVMnKlWq5Hz88MMPAHh5eTFv3jzi4uKoW7cuzzzzDP369eO3335zHsPDw4MZM2bg4eFBmzZtuOuuuxg4cCBvvPGGuy5LRERERERERIohy+7IYLIog6nMcGsG06VuYBcZGcnixYsveZzo6GhmzpzpqmGJiIiIiIiIiBvllMgpg6ns0CclIiIiIiIiIqVKll0lcmWNPikRERERERERKVWsWSqRK2sUYBIRERERERGRUsVqU4lcWaNPSkRERERERERKFatK5MocfVIiIiIiIiIiUqrklMh5qkSuzFCASURERERERERKlZwSOS9lMJUZ+qREREREREREpFRRiVzZo09KREREREREREoVlciVPQowiYiIiIiIiEipohK5skeflIiIiIiIiIiUKiqRK3v0SYmIiIiIiIhIqaISubJHASYRERERERERKVVySuSUwVR26JMSERERERERkVIlK7tETj2Yyg59UiIiIiIiIiJSqmSqRK7MUYBJREREREREREoVlciVPfqkRERERERERKRUUYlc2aNPSkRERERERERKFZXIlT0KMImIiIiIiIhIqaISubJHn5SIiIiIiIiIlCo5JXIKMJUd+qREREREREREpFSxZuVkMKlErqxQgElEREREREREShWrMpjKHH1SIiIiIiIiIlKqnO/BpAymskIBJhEREREREREpVc6XyClsUVbokxIRERERERGRUkUlcmWPPikRERERERERKTUMw3CWyHmqRK7MUIBJREREREREREoNm93AcCQw4aUMpjJDn5SIiIiIiIiIlBpZ2eVxoBK5skSflIiIiIiIiIiUGpnZ5XGgErmyRAEmERERERERESk1cu4gB2AxK2xRVuiTEhEREREREZFSI6dEztNswmxWBlNZoQCTiIiIiIiIiJQamVm6g1xZpACTiIiIiIiIiJQa1uweTGrwXbbo0xIRERERERGRUiOnRM5LAaYyRZ+WiIiIiIiIiJQaKpErmxRgEhEREREREZFSQyVyZZM+LREREREREREpNVQiVzbp0xIRERERERGRUsOqErkySQEmERERERERESk1MlUiVybp0xIRERERERGRUiPL5iiRU4CpbNGnJSIiIiIiIiKlxvkm3yqRK0sUYBIRERERERGRK2r5nlN8MHcnx5LO5VlntSuDqSzydPcAREREREREROTfY9uxZO6duIp0q50vFu/h3nYxPNalJv7ejhDF+SbfCjCVJfq0REREREREROSKSE638ui3a0m32gny8SQjy87ni/cwctY25zY5JXJeKpErUxRgEhEREREREZESZxgGz/64gf2n0qgS7Mui5zrzxo31AVi2+5RzO5XIlU36tERERERERESkxI1dspc5W4/j5WFmzJ3XEOLvRY8GEQDsP5XKuUwboBK5skqfloiIiIiIiIiUqBV7T/Hf2dsBeLVPLI0jgwEIDfCmgr8XdgN2JZwFdBe5skoBJhEREREREREpMQnJ6QydvA67ATc3rcKdraKc60wmE3UrBQKw/ZgjwJSVXSLnpQymMkWfloiIiIiIiIiUCKvNzpDJf3MyJYM64YG8dXMDTKbcmUl1woMA2BafDECms0ROGUxliQJMIiIiIiIiIlIi3p29ndX7zxDg7clnd12Dn5dnnm1yMph2xP+zRE4hi7JEn5aIiIiIiIiIuNzMTccY9+c+AN67tRHVQwPy3a5eRHYG07FkDMMgI0sBprIob+hQREREREREROQynUzJ4NMFu5m08gAAD3WoTo8GlQrcvlZ4AGYTnEmzknA2g0U7EgCoWUBASkonBZhERERERERExCWW7TnJQ1+v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", + "image/png": "iVBORw0KGgoAAAANSUhEUgAABW0AAAKyCAYAAACuWPzHAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAA9hAAAPYQGoP6dpAAD4XElEQVR4nOzdd3hUZfrG8Xsy6W0gPUAIIdRQpBcbvSgiq1hQse3qKrJrXde6ApbVdVdX14L+XDsgNiywgoIFFVB6DVJDS4WETHqbOb8/QkbGJGQCSWaSfD/XNReZ97TnDAnizXue12QYhiEAAAAAAAAAgEfwcncBAAAAAAAAAIBfEdoCAAAAAAAAgAchtAUAAAAAAAAAD0JoCwAAAAAAAAAehNAWAAAAAAAAADwIoS0AAAAAAAAAeBBCWwAAAAAAAADwIIS2AAAAAAAAAOBBCG0BAAAAAAAAwIMQ2gIAAABucsMNNyg4ONht1x85cqRGjhzptus3tNmzZ8tkMrm7DAAAgDNGaAsAAFq0t956SyaTSSaTST/++GO17YZhKC4uTiaTSRdddJHTtqrjanrdeuut+u677065z8mvk11xxRUymUy67777GvXeXTVy5EiX7mH27NmSpE6dOtW6z8SJE53O/eOPP+qCCy5Q+/bt5e/vr44dO2ry5MlasGCB034mk0l/+tOfXK755Zdflslk0tChQ+t1r3a7Xe+8846GDh2qsLAwhYSEqFu3brruuuv0008/OfZLTk7W7NmzdeDAgXqdvylVBZRVr8DAQCUlJenhhx9WXl6eu8ur09atW3XjjTcqISFB/v7+Cg4OVr9+/fTXv/5V+/fvd3d5euqpp2QymfTll1/WuP3CCy+UxWLR+PHjXfr5ueGGGyQ5/7x5eXkpNDRU3bt317XXXqvly5c34R0CAABP5u3uAgAAAJqCv7+/FixYoHPPPddpfOXKlTpy5Ij8/PxqPG7cuHG67rrrqo1369ZN8fHxevfdd53GH3jgAQUHB+uhhx6q8Xx5eXlavHixOnXqpPfee88RDLnTQw89pJtuusnxft26dfrPf/6jBx98UD179nSM9+3b1/F1v379dM8991Q7V7t27Rxff/jhh7ryyivVr18/3XHHHWrbtq1SUlL0/fff67XXXtPVV1992jXPnz9fnTp10tq1a7V371516dLFpeNuv/12vfTSS5oyZYquueYaeXt7a9euXVq6dKk6d+6sYcOGSaoMbefMmaORI0eqU6dOp11nU5g7d66Cg4NVUFCgr776Sk888YS++eYbrVq1qs7vra+++qqJqnT22muvacaMGYqIiNA111yjHj16qKKiQtu3b9c777yj5557TsXFxTKbzfU678MPP6z777+/QWq85557tGDBAt12223avn27AgICHNs+/PBDLV26VC+99JL69+/v9GdESkqKHnnkEf3xj3/Ueeed5xhPTEx0fN2hQwc9+eSTkqTCwkLt3btXixYt0rx583TFFVdo3rx58vHxaZD7AAAAzZQBAADQgr355puGJOPSSy81IiIijPLycqftN998szFw4EAjPj7emDRpktM2ScbMmTPrdb1evXoZI0aMqHX7G2+8Yfj4+BjffPONIcn47rvv6nX+pvDhhx8akoxvv/22xu01fVY1SUpKMnr16mWUlpZW25aZmen0vj6f9f79+w1JxqJFi4zIyEhj9uzZLh2XkZFhmEwm4+abb662zW63O9VU12fQUK6//nojKCjotI6dNWuWIck4evSo0/ill15qSDJWr15d67GFhYWndc2GsGrVKsNsNhvnn3++kZeXV217cXGx8fDDDxsVFRVuqM7ZmjVrDC8vL+OBBx5wjOXl5Rnt2rUzhg0bZthstmrHrFu3zpBkvPnmmzWec8SIEUavXr2qjVdUVBi33XabIcn461//2mD3AAAAmifaIwAAgFbhqquuUnZ2ttPjx2VlZfroo4/OaMZnfc2fP1/jxo3TqFGj1LNnT82fP7/OY8rLyxUWFqYbb7yx2ra8vDz5+/vrL3/5i2PshRdeUK9evRQYGKi2bdtq0KBB1doRNIV9+/Zp8ODB8vX1rbYtKirqtM87f/58tW3bVpMmTdJll13m0mcoVc6ANAxD55xzTrVtJpPJUdNbb72lyy+/XJI0atQox6Ps3333nWP/l19+Wb169ZKfn5/atWunmTNnKjc3t9p5f/75Z1144YVq27atgoKC1LdvXz3//POnrHPz5s2KjIzUyJEjVVBQ4NK9nWz06NGO+5UqH8fv3bu3NmzYoPPPP1+BgYF68MEHHdt+29O2pKREs2fPVrdu3eTv76/Y2Fhdeuml2rdvn2Mfu92u5557Tr169ZK/v7+io6N1yy236Pjx43XWN2fOHJlMJs2fP18hISHVtvv7++uxxx5zmmX7ww8/6PLLL1fHjh3l5+enuLg43XXXXSouLnY6tqaetlWtNz799FP17t1bfn5+6tWrl5YtW1ZnrcOGDdOtt96qf/3rX0pOTpZUOZs3KytL//d//ycvr4b73ymz2az//Oc/SkpK0osvviir1dpg5wYAAM0PoS0AAGgVOnXqpOHDh+u9995zjC1dulRWq1XTpk2r9biSkhIdO3as2qusrKzeNaSlpenbb7/VVVddJakySP7oo4/qPJePj48uueQSffrpp9X2/fTTT1VaWuq4h9dee0233367kpKS9Nxzz2nOnDnq16+ffv7553rXeyrl5eU1fi4nh2jx8fH6+uuvdeTIkQa99vz583XppZfK19dXV111lfbs2aN169bVeVx8fLykykfbi4qKat3v/PPP1+233y5JevDBB/Xuu+/q3XffdbSKmD17tmbOnKl27drpmWee0dSpU/Xqq69q/PjxKi8vd5xn+fLlOv/885WcnKw77rhDzzzzjEaNGqUlS5bUeu1169Zp9OjR6t+/v5YuXXpai5RVhavh4eGOsezsbF1wwQXq16+fnnvuOY0aNarGY202my666CLNmTNHAwcO1DPPPKM77rhDVqtV27dvd+x3yy236N5779U555yj559/XjfeeKPmz5+vCRMmOH0Gv1VUVKRvvvlGI0eOVIcOHVy+p6rfsxkzZuiFF17QhAkT9MILL9TYuqQmP/74o2677TZNmzZNTz/9tEpKSjR16lRlZ2fXeeyTTz6pyMhI3XLLLdqwYYNeeukl/eUvf1GfPn1crt9VZrNZV111lYqKimrswQ0AAFoRd0/1BQAAaExV7RHWrVtnvPjii0ZISIhRVFRkGIZhXH755caoUaMMw6j5kX9Jtb7ee++9Gq93qvYI//rXv4yAgADHI+G7d+82JBmffPJJnffx5ZdfGpKMxYsXO41feOGFRufOnR3vp0yZUuOj1/XhSnuE2j6XJ5980rHf66+/bkgyfH19jVGjRhl/+9vfjB9++KHGR8rlYnuE9evXG5KM5cuXG4ZR2dagQ4cOxh133OHSvV133XWGJKNt27bGJZdcYvzrX/8ydu7c6fJnkJWVZfj6+hrjx493uo8XX3zRkGS88cYbhmFUPuqekJBgxMfHG8ePH3c6h91ud3x9cnuEH3/80QgNDTUmTZpklJSU1HkvVe0Rdu3aZRw9etRISUkxXn31VcPPz8+Ijo52tEAYMWKEIcl45ZVXqp1jxIgRTt+vb7zxhiHJePbZZ6vtW1X3Dz/8YEgy5s+f77R92bJlNY6fbMuWLYYk484776y2LTs72zh69KjjdXJbjaqf2ZM9+eSThslkMg4ePFjtMzlZ1ffg3r17q9Xxwgsv1FrryT766CNDkhEWFmZ07ty5xnqqnG57hCqffPKJIcl4/vnnXaoNAAC0TMy0BQAArcYVV1yh4uJiLVmyRPn5+VqyZEmdrRGmTJmi5cuXV3vVNlPxVObPn69JkyY5Hgnv2rWrBg4c6NLj/aNHj1ZERITef/99x9jx48e1fPlyXXnllY6xNm3a6MiRIy7NPD0TQ4cOrfFzqZpFLEm///3vtWzZMo0cOVI//vijHnvsMZ133nnq2rWrVq9efVrXnT9/vqKjox2fv8lk0pVXXqmFCxfKZrPVefybb76pF198UQkJCfrkk0/0l7/8RT179tSYMWOUmppa5/ErVqxQWVmZ7rzzTqdH42+++WaFhobqf//7nyRp06ZNSklJ0Z133qk2bdo4naOmxcG+/fZbTZgwQWPGjNGiRYtqXRivJt27d1dkZKQSEhJ0yy23qEuXLvrf//6nwMBAxz5+fn41ttf4rY8//lgRERH685//XG1bVd0ffvihLBaLxo0b5zTLeuDAgQoODta3335b6/nz8vIkqcYZxJ07d1ZkZKTj9fnnnzu2nbwIWGFhoY4dO6azzz5bhmFo06ZNdd7X2LFjnRYC69u3r0JDQ7V///46j5WkqVOn6sILL1ROTo5eeuklp3oaWtVnk5+f32jXAAAAns/b3QUAAAA0lcjISI0dO1YLFixQUVGRbDabLrvsslMe06FDB40dO/aMr71z505t2rRJ1113nfbu3esYHzlypF566SXl5eUpNDS01uO9vb01depULViwQKWlpfLz89OiRYtUXl7uFNred999WrFihYYMGaIuXbpo/Pjxuvrqq2vs43omIiIiXPpcJkyYoAkTJqioqEgbNmzQ+++/r1deeUUXXXSRfvnll3r1trXZbFq4cKFGjRrl6NcqVQbIzzzzjL7++muNHz/+lOfw8vLSzJkzNXPmTGVnZ2vVqlV65ZVXtHTpUk2bNk0//PDDKY8/ePCgpMqg9GS+vr7q3LmzY3tVi4LevXvXeV8lJSWaNGmSBg4cqA8++EDe3vX7K/rHH3+s0NBQ+fj4qEOHDk7hZJX27dvX2Fv4t/bt26fu3bufsoY9e/bIarXW+nuXlZVV67FV/2BRU6/ezz77TOXl5dqyZYtTj2ZJOnTokB555BF9/vnn1frmutL7tWPHjtXG2rZt61IP3iqDBw/WF198oUGDBrl8zOmo+mxq6vcLAABaD0JbAADQqlx99dW6+eablZGRoQsuuKDaLMjGMm/ePEnSXXfdpbvuuqva9o8//rjOmZDTpk3Tq6++qqVLl+p3v/udPvjgA/Xo0UNnnXWWY5+ePXtq165dWrJkiZYtW6aPP/5YL7/8sh555BHNmTOnYW+qHgIDA3XeeefpvPPOU0REhObMmaOlS5fq+uuvd/kc33zzjdLT07Vw4UItXLiw2vb58+fXGdqeLDw8XBdffLEuvvhijRw5UitXrtTBgwcdvW+bip+fny688EJ99tlnWrZsmS666KJ6HX/++ecrIiLilPs05MxQu92uqKioWmeIR0ZG1npsly5d5O3t7dQft8qIESMkqVpgbLPZNG7cOOXk5Oi+++5Tjx49FBQUpNTUVN1www2y2+111nzyomYnMwyjzmObWtVn06VLFzdXAgAA3InQFgAAtCqXXHKJbrnlFv30009OrQYak2EYWrBggUaNGqXbbrut2vbHHntM8+fPrzO0Pf/88xUbG6v3339f5557rr755hs99NBD1fYLCgrSlVdeqSuvvFJlZWW69NJL9cQTT+iBBx6Qv79/g93X6aqaqZienl6v4+bPn6+oqCi99NJL1bYtWrRIn3zyiV555ZXTCigHDRqklStXKj09XfHx8TW2MJB+Xcxs165d6ty5s2O8rKxMKSkpjtnHVbNdt2/fXueMZJPJpPnz52vKlCm6/PLLtXTpUo0cObLe99AQEhMT9fPPP6u8vFw+Pj617rNixQqdc8459f6sg4KCHAF5amqq2rdvX+cx27Zt0+7du/X22287LTy2fPnyel27ObDZbFqwYIECAwN17rnnurscAADgRvS0BQAArUpwcLDmzp2r2bNna/LkyU1yzVWrVunAgQO68cYbddlll1V7XXnllfr222+VlpZ2yvN4eXnpsssu0+LFi/Xuu++qoqLCqTWCJGVnZzu99/X1VVJSkgzDUHl5eYPf26l8/fXXNY5/8cUXkqq3GDiV4uJiLVq0SBdddFGNn+Gf/vQn5efnO/VB/a2MjAwlJydXGy8rK9PXX38tLy8vx+zGoKAgSVJubq7TvmPHjpWvr6/+85//OM3SfP3112W1WjVp0iRJ0oABA5SQkKDnnnuu2jlqmt3p6+urRYsWafDgwZo8ebLWrl3r0ufS0KZOnapjx47pxRdfrLatqu4rrrhCNptNjz32WLV9Kioqqt3vbz3yyCOy2WyaPn16jW0Sfvv5VM2SPXncMAw9//zzdd5Pc2Kz2XT77bdr586duv3220/ZLgUAALR8zLQFAACtTn0eyd+9e7ejtcHJoqOjNW7cOJfOMX/+fJnNZkeg91sXX3yxHnroIS1cuFB33333Kc915ZVX6oUXXtCsWbPUp08f9ezZ02n7+PHjFRMTo3POOUfR0dHauXOnXnzxRacF0BpCampqjZ9LcHCwfve730mqXMQtISFBkydPVmJiogoLC7VixQotXrzYEU6ebP369Xr88cernXPkyJFKTU1Vfn6+Lr744hrrGTZsmCIjIzV//vxqQXaVI0eOaMiQIRo9erTGjBmjmJgYZWVl6b333tOWLVt05513OtoM9OvXT2azWf/4xz9ktVrl5+en0aNHKyoqSg888IDmzJmjiRMn6uKLL9auXbv08ssva/DgwZo+fbqkyoB97ty5mjx5svr166cbb7xRsbGx+uWXX7Rjxw59+eWX1eoLCAjQkiVLNHr0aF1wwQVauXKlSz1xG9J1112nd955R3fffbfWrl2r8847z/H7dtttt2nKlCkaMWKEbrnlFj355JPavHmzxo8fLx8fH+3Zs0cffvihnn/++VP2ij7vvPP04osv6s9//rO6du2qa665Rj169FBZWZl2796t+fPny9fXVzExMZKkHj16KDExUX/5y1+Umpqq0NBQffzxx/XqR+tprFar4+enqKhIe/fu1aJFi7Rv3z5NmzatxkAcAAC0MgYAAEAL9uabbxqSjHXr1p1yv/j4eGPSpElOY5JqfY0YMaLG8/Tq1ctpW1lZmREeHm6cd955p7x+QkKC0b9//zrvx263G3FxcYYk4/HHH6+2/dVXXzXOP/98Izw83PDz8zMSExONe++917BarXWeu8qHH35oSDK+/fbbGrfHx8fX+rnEx8c79nvvvfeMadOmGYmJiUZAQIDh7+9vJCUlGQ899JCRl5fndM5TfdaPPfaYMXnyZMPf398o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z9a///1vBQUFNWC1AAAAAAAAaCzZBaWaszhZn29JkyQlRATpqUv7aGjncDdX1jIR2tZXeZH093and+z3/6x81fa+Lg+mSb4NG3SeffbZ8vLychorKKhc5e/ZZ5/VZZddppiYGPXq1Utnn322pkyZogsuuKBe13j99dc1bdo0mc1m9e7dW507d9aHH36oG264oaFuAwAAAAAAAGfAZje0NiVHWfkligrx15CEMJm9TDIMQ4u3pmv25zuUU1gmL5N08/mdddfYbvL3Mbu77BaL0LaVe//999WzZ88atyUlJWn79u3asGGDVq1ape+//16TJ0/WDTfcoP/+978unT83N1eLFi3Sjz/+6BibPn26Xn/9dUJbAAAAAAAAD7Bse7rmLE5WurXEMRZr8dftY7rq651ZWrEzU5LUIyZET1/WV307tHFTpa0HoW19+QRWznitr6qWCGbfyjYJ599b2SqhvtduYHFxcerSpUut2728vDR48GANHjxYd955p+bNm6drr71WDz30kBISEuo8/4IFC1RSUuLUw9YwDNntdu3evVvdunVrkPsAAAAAAABA/S3bnq4Z8zbK+M14urVEDyzaJknyMZv0p1FdNWNkony9vaqfBA2O0La+TKb6tyhY+XRlYDvqocrFyKoWITP7Oi9O1gwkJSVJkgoLXevD+/rrr+uee+6pNqv2tttu0xtvvKGnnnqqoUsEAAAAAACAC2x2Q3MWJ1cLbE/mYzbps5nnKqldaJPVBULbxlcV0FYFttKvv377hPN7N8jOzlZGRobTWJs2beTv76/LLrtM55xzjs4++2zFxMQoJSVFDzzwgLp166YePXo49rdardq8ebPTOcLDw5Wdna2NGzdq/vz5TvtL0lVXXaVHH31Ujz/+uLy9+TYEAAAAAABoamtTcpxaItSk3GbIWlzeRBWhCmlZY7PbnAPbKlXv7bamr+kkY8eOrTb23nvvadq0aZowYYLee+89Pfnkk7JarYqJidHo0aM1e/Zsp6D1u+++U//+/Z3O8Yc//EEBAQFKSkqqFthK0iWXXKI//elP+uKLL3TxxRc3/I0BAAAAAAA0gNoW6GruDMPQlsO5Lu2blX/qYBcNz2QYxqlmQLcKeXl5slgsslqtCg39dap3SUmJUlJSlJCQIH9/fzdW2LrwuQMAAAAAAE9Q2wJdsyYnaWLvWDdWdnoMw1By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3r3bWrZsaQ8//LBt2bLFNm7caMOHD7cuXbrYHXfcEdQsv2g51v/yyy9Wq1Yte/TRR23v3r22fv1683g89sUXX4Qs041jvRvHebPoOda7sb+EAkVbFNvhw4dtxIgRNnz4cMvIyAgUt/7xj39Yq1at7MiRI0HfKQ4dOmS333673XHHHZaVlRU4+V599dX25JNP2h/+8IeQvvn517/+ZRMnTrQFCxbYxRdfbP3797f58+fbxIkTbcOGDUHLOXDggPXt29cSExMD86666irr2LGjeTweO//88+2FF14IWp7f4sWLrUWLFrZq1arAvFtvvdWuvPJKGzp0qN1+++2B1zmYb3xmz55t7du3ty1btgTmrVy50s444wyrUaNGvg/0wbJv3z5r166dffTRR4F5WVlZtnDhQmvTpo117do1MD8Y27HP57PXXnvNBgwYYAsWLLARI0ZY165d8xVug/1mMiMjw0aNGmXXX3+9HTx4MPDaff7551avXj3btWtXUPPyGjFiRKD4361bNzv//POtV69eduaZZ9qZZ55p69atM7PgrPOWLVusYcOG+VpdzZkzx+rXr29vvPGGmYWmBd+6deusZcuWNm/evMC8kSNHWvfu3e2iiy6ySy+91DZt2mRmwS3UpKSkWJs2bWz16tWBedu3b7c2bdpY3bp1rWPHjkHLMuNYXxaP9WZm11xzjT3//PNmZta9e3c777zzrFmzZtasWTPr3Llz4MN1sF5bN47zZmabNm2y5s2b2w8//BCYd/DgQfvvf/9rrVq1squuuiqoednZ2fbcc8/ZZZddZkuWLLGLL77YOnbsGNLCbUZGho0fP96uvvpqW758ubVq1cratWuX78NJsDMPHDhg1113XeCLT//j/+EPf7ALLrjAzIJ/Ttu7d6916dLFGjduHJh3/fXXW+fOnS0uLs4uv/zyfOf0YBowYIBNmTLFzMx69eplvXr1smrVqlnbtm3tiiuuCHreypUrzev12tixYwPz/vGPf1h8fLwtW7bMzELzBcCsWbOsdevW+fbT3/72t3bPPffYyJEjbcKECUHP/Oyzz6xLly62d+/ewDrNnTvXatasaU2bNg168YtzGue0YElJSbGmTZsG9kkz5zj1pz/9yTp06GAPPPBA0LLMoudYn5aWZkOHDrW7777bfD5f4PGvuOIK+/vf/24vv/yyzZo1K6iZfqV5rHfrOG8WHcd6N/aXUKFPWxSbmSkrK0vnnHOO4uPjFRMTI0mqXbu29u7dq4yMjKBnxsTE6IorrtBdd92l2NhYeb1ePfXUU/rPf/6j1atX69tvv9Wzzz6rBx54IOjZkpSYmKhp06apc+fOGj16tBITE3XllVdq3LhxKleunKTgDDgSGxur2267TXXr1tVll12mAQMGKDs7W48++qh+/PFHnXHGGZoyZUrQOyuvWLGiMjIy9O677yozM1NPPvmk/u///k+tWrVSvXr1NGfOHJ177rmSgttnZ0ZGhvbv369t27YF5h09elQ1a9bUY489pg0bNuj9998PWp4kJSUlyePx6Ntvvw3Mi42NVadOnfTaa6/pwIEDGj16tKTgDKDg8Xh0+eWX684771Tnzp3117/+VZ07d9aHH36oV155RYcOHQp6f6Rmpvj4ePXp00cVK1YM7KPVq1fX4cOHQ7KP5rV48WL961//UvXq1TVt2jT973//008//aQGDRpo0KBBkoKzHcXFxenVV1/Vs88+G5jXq1cvXXrppXr66aeVnp4eWPdgSkpKUnZ2tl555RWlpqbq8ccf1z//+U9ddtlluvTSS7V//37169dPGRkZQR+E48CBA0pJSQlcT0tLk9fr1QsvvKD9+/fney5KimN92TvWS86gdYsXL9Zrr72mpKQkffzxx/r55581ZcoUZWRk6IorrpAUvAFk3DjOS85r6fP59OOPPwbmVaxYUQMHDtS4ceO0fv16vfrqq0HLi4mJUZ8+fXTjjTeqffv2+vzzz1W7dm1NnDhR06ZNCxwPgnms93q96tatm4YMGaLWrVsrOTlZWVlZuvXWW7Vo0SL5fL6gH4N8Pp/S09PVtWtXeb3ewOM3atRIW7duVVZWVlDzJGc9r7jiClWvXl133XWX+vbtq/3792vEiBGaNm2a9u3bp+eff14zZswIenZ2draSk5M1ceJEVapUSR9++KFSUlL06KOPasOGDRo5cmRQ82JiYvTiiy9qwoQJgW1l+PDh6tq1qyZMmKDMzMyQDO4UGxurw4cP64svvpAkTZw4Ue+99568Xq92796tDz74QNdcc01QM9PS0rRv3z4dPXo0sE45OTlq3ry5hgwZop9++klz5swJWp7P5+OcxjktKCpVqqSsrKzAGApmpqpVq+qOO+7Q4MGDNXv2bH3++edBy/N6verevXtUHOsvvvhi3XHHHfJ4PPJ6vXr66ac1bdo0TZs2Ta+88ooefPBBvfDCC0HPLs1jvVvHeSk6jvVuvDcKGZeKxSgj/D/DNcttyTZv3jw7++yz833rtmLFiqBlHjlyJPB3SkqKVapUKV//nGPHjrVOnTrZjh07gpbp/2Zx9erV1q1bt8D8/v37W4UKFax79+42c+bMoOWZOS0B/vvf/1rTpk2tZ8+e+Z7r/fv323nnnWfXXnttUDP3799vo0ePtoYNG1q/fv0sLi7O/vvf/wZunzVrltWpUyfoPxH59ddfrUmTJnb99dfblClTbObMmZaUlBT45rFnz55B7RfL/63ak08+aT179rRPP/003+3Z2dn20EMPWd++fQMto0IhKyurwBa3b775Zokf27+Ou3fvDszz75ObNm2yFi1a2J49ewK3/fTTTyXOzJs7e/ZsO+ecc6xnz56Bn7z48+fPn28NGjSwn3/+ucR5BX277583a9Ysa9q0qf373/8+6X1LIisry/72t79Zo0aNbMCAAVahQgV7//33A7dv3LjRqlatmm9eMOzZs8cuvPBCu+KKK2zSpEn26aefWpUqVezBBx80M7Nrr73Wbr755qBmRtOx3szK9LHev4++88471q9fP+vfv789+uij+e7z4YcfWqtWrQIt4oNh06ZNduaZZ5bacd7v8OHDdvPNN1v//v1tyZIl+W47cuSIXXnllTZkyJCgZh7/E+CMjIx8LW79t3/yySdBy8y7v5iZHT16NF+rEjPntQ/m9rt58+bA3/7jwscff2ydO3fOd7+8LXlKas+ePfanP/3JzjjjDLvgggvy7f87d+60s846y+69996g5fmPCePHj7fLLrvMrrjiinz9/GdmZtqzzz5rPXv2tH379gUt92TGjx9vLVu2DDynwT6v7dixw6655hpr3Lix9e/f32JiYvIdd9966y0766yzLCUlJWiZK1eutAoVKtj9999vP/zwg82bN88SExMDLb2aNGlizzzzTFCy/Me/vNtNqM9p/sy87ydL65zmVxrnNP96Hj161D766KNSO6f5X6/SPqeZOb/au+CCC2zQoEEn/HotLS3NOnToYCNGjAhq5tGjR0+4XhaP9YcPHw78/dNPP1nlypVt6tSplp2dbVlZWTZ06FDr37//Cc9HcfnX68knnyyVY/2pWniG+jhv5u6x/r777gv5sd7PjfdGoUDRFkWya9cuW7Roka1cuTJfwSfvweSnn36yhg0b2sGDB83MeRPSr1+/Yh/g8mbu3bvXzJydy3+w2759e75leOONN6x169YlOqDmzcz7OD6fz84//3zbuHGj3XDDDVavXj177bXXbNCgQdalS5cSFTMLem4PHDhgn3/+uX355ZeBk4n/8v7777fzzjuvRAfygjL3799vGzZssB9++MHOPvvsfJ2wL1q0yJo1a2bz588vdubxuf6i4vz5861Dhw525plnWsOGDfMNInXdddcF+qkqrrwfov3bzsaNG61Xr1528cUX27fffpvv/u+99541a9YsX9GzJJnH87+OmZmZgcLtM888Y3fccYfFxMTYxo0bS5SZ9+dE/ut+a9eutTp16tjWrVvNzGzcuHHWrl27Yne4X9B67tmzx2655RaLi4uzvn375rtt2bJl1qpVqxK9ESjsz9z8r28wFLQNZWdn2759+2zFihXWunXrwOvm8/lszZo11rp16xO2reLm5n1Nf/nlFxs8eLC1bNnSWrRoke8Dyr333lvivjrT0tJs/fr1tnXr1sCx3Cy0x/q8mXn7eg7lsT5vZt4PCD6fzy644IKQHOsLWs+DBw+G9Fhf0Hr++uuv1qdPn8CAInnNnj3bWrRoUaKfzebN9A8K4z/ON23aNCTHeTPng8isWbNsxowZgW1m2bJlVrduXRs0aFC+bkXMzF588UXr0KFDvu28JJn+gkveY4SZ80HBX7j94IMP7M4777S6desGjsNFtW/fPlu7dq2lpqbm62LH5/MFBn88cuRI4MPJ3LlzbcSIEda+fftiH+v9mTt37sz3fOXtfmbq1KnWokWLwPUxY8bYddddF1jG4mampqYGMlNTU+3111+3r7766oTn+frrr7eBAwcWK6ugTP9yr1ixItAv3vFfLnz66afWsmVL27lzZ9By/fupf73867l//36rXbu2jRo1qkRZBWX6n99t27bZokWL7OOPP7YOHTrkG2xoxowZduaZZ9rKlSuDkuk/Nnz11VdWs2bNQHcpeZ/jiy++uMSFeP8+cfx7o1Ce0woahDWvUJzTTpUZqnNa3kz/dnrkyJGQntMKWs/Nmzdb3759Q3ZOM3O6udi1a5cdPHgwsAzz5s2z+Ph4u+eee04YAG3s2LHWp0+f024Lhc08vquvUB3rC1pPs/z7S7CP9adaz6NHj9qvv/5qZrnb0bPPPmsdOnTI994tGJkrV64M6bE+b6b/+Tz+p/rBPs4fn+v/XLFjx46QHusLyvz666+tVq1aITvWu/HeqDRQtEWhLV261Jo3b25Nmza1Bg0aWOfOnW3u3Lkn3O+HH36wKlWq2OHDh+3xxx+32NjYYhf5CpN5/En/vvvusyFDhhT7IH6qzMzMTDv//POtTp061rBhQ1u8eLGZOW82hw4dGjihBCNzzpw5ZuZ8M1/QyX7o0KF2zz33FLsvluMzO3XqFMg0czru7ty5c75vnh577DFr3759iVoBFJTr72tw165dtnnz5nwniKysLLvkkkvsqaeeMrPi9T2zcuVKu+6662zhwoWBx/CfnFesWBEYkMbf/2lmZqY98MADdv755xf7g/zxmQXxL4O/xW1CQoIlJiYWeyThwmSaOQWMChUq2M6dO238+PEWHx9f7H20oEz/Prl582YbMmSIlStXzm677Tbz+Xy2e/due/LJJ61Dhw7FftNTlOf2m2++sbp16+b79jgYmXmLiWbOm4TOnTvnG/DiiSeesFatWpWo5UFBuf7jQXp6uqWnp+c77vh8Phs8eHCJWiympKRYr169rEWLFnbmmWfa/fffX+BrFcxjfWEyj9/3S3qsP1VmRkZGSI71BWX6P7iH6lhfUKa/5dOaNWusS5cuVrVq1cCAIkeOHLHHH3/cevbsGfiiNBiZ/uJkampqSI7zZs5IyGeffba1bt3aGjdubL/5zW8CuQsXLrTKlSvbVVddZd98803gf+644w4bOHBgsX9VcXzmJZdccsK2639dMzIy7JJLLrG4uDirWLHiaY/VJ7N06VJr166dnXXWWXbmmWfakCFD7JdffjGz3OOv/wPS0aNHrW3bthYbG2vly5cPaaaZ03q4QYMGZmb26KOPWkxMTL5+v0uauXz5cjNzjn/Hv2Y5OTl2xRVX2Lhx44qVd7JMf9+CS5cuterVq1uDBg3yHevHjBljffv2LXDE+pLkHv/8+i8fffRR69q1a6DP9GBlDh48OPD8mjnFqO7du9v69esD88aMGWPdu3cv9hfaBWX6n99ff/3VkpOTA8dbM+d41KdPH3v55ZfNrHjHhtWrV9vo0aNP+MLmeME8pxUmM9jntJNl+ny+kH1+KSgzb8viUJzTCsr0v+dbu3ZtSM5pZs575379+lmbNm2sTZs29uKLLwYeb+rUqZaQkGDDhw/PNy7I9ddfb9ddd12xx1U4PvOll16y9PT0fPcJ9rG+MJlmwT3WFzYzrzvuuMNuueWWYg9ud6rXc/ny5SE51hdmPYN9nC8o98UXX8z35dD8+fODfqw/VeaWLVssJSUl6Md6N94blRaKtiiU7du3W6NGjeyRRx6xVatW2ccff2xDhw61uLi4wE9//TvXzz//bF26dLGHHnrIEhISAk3PQ5GZ16FDh2zs2LFWs2bNfB3CByvTP0DA+++/bz169DhhvYr7zeKpMv0doR+fM3bsWKtTp06xv/0qzHO7c+dO69q1q1144YU2ePBgu+WWW6xatWr5DrDByo2NjbV33333hPtv2bLFxo4dazVq1Djtm+2TWbdunTVs2NCqVKliV111VaAgmrf4tWrVKhs8eLC1aNHC6tevb3369LGqVasWe11PllkQ/0nkrrvusqpVqxZ72y1K5oYNG6xjx442fPjwEu2jp3pu/W9Qt27dar///e+tQYMGlpiYaJ06dbI6deoUuzBdlPU0c1oMNWzY0B5++OFit+ooTGZ6eroNHTrUevToYb169bJrr73WatSoUaL95VTPb0Hrsnr1ahszZoxVrVo18CalqH755RerWbOmPfTQQ/bDDz/YU089ZV27dg10k5L3TVSwjvVFyTQLzrH+dJlmZh988IH17NkzaMf6k2X+5z//KfD+wTjWFyZz3bp1ds0111ijRo2sVq1adt5551n16tWLvY8WdT2DcZw3c76Aq1Gjhv3+97+3DRs22JQpU6xZs2b53ogvWLDAOnbsaJ06dbI2bdrY5ZdfbomJiSd0m1DSzLzPnX9f9R8TR44cadWqVSv2trt582arU6eOPfjgg/bTTz/ZSy+9ZAMGDLAqVaoEvmDO+4WgmTMwZPXq1fMV5IKd6f8gNHXqVDv33HPt8ccft4SEhGJ/EDpZZlJSkv34449mlr9YnJ2dbePGjbP69esXezs6Veb3339vZs5I3126dLEWLVpYs2bN7NJLL7UqVaqU6FhflNfUzPmA7fF47F//+lfQM5OSkgKZ69evtxo1athll11m9957r40YMcKqVq1a7P3lVJl5Bwr027Nnj40dO9Zq165d7J+1r1271mrVqmWJiYn2wAMP2Nq1a09632Cd04qSaRacc9qpMv3n0GCf04q7niU5p50sM+/7zmCf08yc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", "text/plain": [ "
" ] @@ -947,133 +980,31 @@ "name": "stdout", "output_type": "stream", "text": [ - "recipitent sending ipython_user_proxy To plot a chart of META (Facebook's parent company, Meta Platforms, Inc.) and TESLA (Tesla, Inc.) stock price gain year-to-date (YTD), we can use Python with libraries such as `pandas` for data manipulation and `matplotlib` or `plotly` for plotting. We will also use `yfinance` to fetch historical stock data.\n", - "\n", - "Here's the plan:\n", - "1. Install the `yfinance` library if it's not already installed.\n", - "2. Fetch the YTD stock price data for META and TESLA.\n", - "3. Calculate the YTD gain for each stock.\n", - "4. Plot the YTD gain on a chart.\n", - "\n", - "First, let's install `yfinance` and import the necessary libraries. Execute the following code:\n", - "\n", - "```python\n", - "# Install yfinance if not already installed\n", - "!pip install yfinance\n", - "\n", - "import yfinance as yf\n", - "import pandas as pd\n", - "import matplotlib.pyplot as plt\n", - "from datetime import datetime\n", - "\n", - "# Check if today's date is required or the last trading day\n", - "today = datetime.today().strftime('%Y-%m-%d')\n", - "\n", - "# Fetch YTD stock data for META and TESLA\n", - "meta_data = yf.download('META', start='2023-01-01', end=today)\n", - "tesla_data = yf.download('TSLA', start='2023-01-01', end=today)\n", - "\n", - "# Calculate the YTD gain for each stock\n", - "meta_ytd_gain = (meta_data['Close'] - meta_data['Close'].iloc[0]) / meta_data['Close'].iloc[0] * 100\n", - "tesla_ytd_gain = (tesla_data['Close'] - tesla_data['Close'].iloc[0]) / tesla_data['Close'].iloc[0] * 100\n", - "\n", - "# Plot the YTD gain on a chart\n", - "plt.figure(figsize=(14, 7))\n", - "plt.plot(meta_ytd_gain.index, meta_ytd_gain, label='META YTD Gain %')\n", - "plt.plot(tesla_ytd_gain.index, tesla_ytd_gain, label='TESLA YTD Gain %')\n", - "plt.title('META vs TESLA Stock Price Gain YTD')\n", - "plt.xlabel('Date')\n", - "plt.ylabel('Gain %')\n", - "plt.legend()\n", - "plt.grid(True)\n", - "plt.show()\n", - "```\n", - "\n", - "This code will install `yfinance`, fetch the YTD stock data for META and TESLA, calculate the YTD gain, and plot it on a chart. Please execute the code in your IPython environment. None\n", "\u001b[33mipython_user_proxy\u001b[0m (to assistant):\n", "\n", "exitcode: 0 (execution succeeded)\n", "Code output: \n", - "Requirement already satisfied: yfinance in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (0.2.36)\n", - "Requirement already satisfied: pandas>=1.3.0 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (2.2.0)\n", - "Requirement already satisfied: numpy>=1.16.5 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (1.26.4)\n", - "Requirement already satisfied: requests>=2.31 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (2.31.0)\n", - "Requirement already satisfied: multitasking>=0.0.7 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (0.0.11)\n", - "Requirement already satisfied: lxml>=4.9.1 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (5.1.0)\n", - "Requirement already satisfied: appdirs>=1.4.4 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (1.4.4)\n", - "Requirement already satisfied: pytz>=2022.5 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (2024.1)\n", - "Requirement already satisfied: frozendict>=2.3.4 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (2.4.0)\n", - "Requirement already satisfied: peewee>=3.16.2 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (3.17.1)\n", - "Requirement already satisfied: beautifulsoup4>=4.11.1 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (4.12.3)\n", - "Requirement already satisfied: html5lib>=1.1 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (1.1)\n", - "Requirement already satisfied: soupsieve>1.2 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from beautifulsoup4>=4.11.1->yfinance) (2.5)\n", - "Requirement already satisfied: six>=1.9 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from html5lib>=1.1->yfinance) (1.16.0)\n", - "Requirement already satisfied: webencodings in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from html5lib>=1.1->yfinance) (0.5.1)\n", - "Requirement already satisfied: python-dateutil>=2.8.2 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from pandas>=1.3.0->yfinance) (2.8.2)\n", - "Requirement already satisfied: tzdata>=2022.7 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from pandas>=1.3.0->yfinance) (2024.1)\n", - "Requirement already satisfied: charset-normalizer<4,>=2 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from requests>=2.31->yfinance) (3.3.2)\n", - "Requirement already satisfied: idna<4,>=2.5 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from requests>=2.31->yfinance) (3.6)\n", - "Requirement already satisfied: urllib3<3,>=1.21.1 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from requests>=2.31->yfinance) (1.26.18)\n", - "Requirement already satisfied: certifi>=2017.4.17 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from requests>=2.31->yfinance) (2024.2.2)\n", - "/Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages/yfinance/utils.py:775: FutureWarning: The 'unit' keyword in TimedeltaIndex construction is deprecated and will be removed in a future version. Use pd.to_timedelta instead.\n", - " df.index += _pd.TimedeltaIndex(dst_error_hours, 'h')\n", - "[*********************100%%**********************] 1 of 1 completed\n", - "/Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages/yfinance/utils.py:775: FutureWarning: The 'unit' keyword in TimedeltaIndex construction is deprecated and will be removed in a future version. Use pd.to_timedelta instead.\n", - " df.index += _pd.TimedeltaIndex(dst_error_hours, 'h')\n", - "[*********************100%%**********************] 1 of 1 completed\n", "\n", "\n", "--------------------------------------------------------------------------------\n", - "self.reply_at_receive[sender]self.reply_at_receive[sender] True\n", - "recipitent sending assistant exitcode: 0 (execution succeeded)\n", - "Code output: \n", - "Requirement already satisfied: yfinance in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (0.2.36)\n", - "Requirement already satisfied: pandas>=1.3.0 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (2.2.0)\n", - "Requirement already satisfied: numpy>=1.16.5 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (1.26.4)\n", - "Requirement already satisfied: requests>=2.31 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (2.31.0)\n", - "Requirement already satisfied: multitasking>=0.0.7 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (0.0.11)\n", - "Requirement already satisfied: lxml>=4.9.1 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (5.1.0)\n", - "Requirement already satisfied: appdirs>=1.4.4 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (1.4.4)\n", - "Requirement already satisfied: pytz>=2022.5 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (2024.1)\n", - "Requirement already satisfied: frozendict>=2.3.4 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (2.4.0)\n", - "Requirement already satisfied: peewee>=3.16.2 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (3.17.1)\n", - "Requirement already satisfied: beautifulsoup4>=4.11.1 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (4.12.3)\n", - "Requirement already satisfied: html5lib>=1.1 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (1.1)\n", - "Requirement already satisfied: soupsieve>1.2 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from beautifulsoup4>=4.11.1->yfinance) (2.5)\n", - "Requirement already satisfied: six>=1.9 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from html5lib>=1.1->yfinance) (1.16.0)\n", - "Requirement already satisfied: webencodings in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from html5lib>=1.1->yfinance) (0.5.1)\n", - "Requirement already satisfied: python-dateutil>=2.8.2 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from pandas>=1.3.0->yfinance) (2.8.2)\n", - "Requirement already satisfied: tzdata>=2022.7 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from pandas>=1.3.0->yfinance) (2024.1)\n", - "Requirement already satisfied: charset-normalizer<4,>=2 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from requests>=2.31->yfinance) (3.3.2)\n", - "Requirement already satisfied: idna<4,>=2.5 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from requests>=2.31->yfinance) (3.6)\n", - "Requirement already satisfied: urllib3<3,>=1.21.1 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from requests>=2.31->yfinance) (1.26.18)\n", - "Requirement already satisfied: certifi>=2017.4.17 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from requests>=2.31->yfinance) (2024.2.2)\n", - "/Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages/yfinance/utils.py:775: FutureWarning: The 'unit' keyword in TimedeltaIndex construction is deprecated and will be removed in a future version. Use pd.to_timedelta instead.\n", - " df.index += _pd.TimedeltaIndex(dst_error_hours, 'h')\n", - "[*********************100%%**********************] 1 of 1 completed\n", - "/Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages/yfinance/utils.py:775: FutureWarning: The 'unit' keyword in TimedeltaIndex construction is deprecated and will be removed in a future version. Use pd.to_timedelta instead.\n", - " df.index += _pd.TimedeltaIndex(dst_error_hours, 'h')\n", - "[*********************100%%**********************] 1 of 1 completed\n", - " None\n", "\u001b[33massistant\u001b[0m (to ipython_user_proxy):\n", "\n", - "The code has executed successfully, and the `yfinance` library has been used to fetch the YTD stock data for META and TESLA. The YTD gain for each stock has been calculated, and a chart should have been plotted to visualize the stock price gains.\n", + "It appears that the code executed successfully and the chart should have been displayed on your screen. Since I cannot view the chart, I will assume that you were able to see the META and TESLA stock price gains YTD plotted correctly.\n", "\n", - "Since the code has been executed without any errors and the chart should have been displayed in your IPython environment, this completes the task.\n", + "If you have any further requests or need assistance with another task, feel free to ask. Otherwise, if everything is done, please let me know.\n", "\n", "TERMINATE\n", "\n", - "--------------------------------------------------------------------------------\n", - "self.reply_at_receive[sender]self.reply_at_receive[sender] True\n" + "--------------------------------------------------------------------------------\n" ] }, { "data": { "text/plain": [ - "ChatResult(chat_history=[{'content': 'Plot a chart of META and TESLA stock price gain YTD\\nIf you suggest code, the code will be executed in IPython.', 'role': 'assistant'}, {'content': \"To plot a chart of META (Facebook's parent company, Meta Platforms, Inc.) and TESLA (Tesla, Inc.) stock price gain year-to-date (YTD), we can use Python with libraries such as `pandas` for data manipulation and `matplotlib` or `plotly` for plotting. We will also use `yfinance` to fetch historical stock data.\\n\\nHere's the plan:\\n1. Install the `yfinance` library if it's not already installed.\\n2. Fetch the YTD stock price data for META and TESLA.\\n3. Calculate the YTD gain for each stock.\\n4. Plot the YTD gain on a chart.\\n\\nFirst, let's install `yfinance` and import the necessary libraries. Execute the following code:\\n\\n```python\\n# Install yfinance if not already installed\\n!pip install yfinance\\n\\nimport yfinance as yf\\nimport pandas as pd\\nimport matplotlib.pyplot as plt\\nfrom datetime import datetime\\n\\n# Check if today's date is required or the last trading day\\ntoday = datetime.today().strftime('%Y-%m-%d')\\n\\n# Fetch YTD stock data for META and TESLA\\nmeta_data = yf.download('META', start='2023-01-01', end=today)\\ntesla_data = yf.download('TSLA', start='2023-01-01', end=today)\\n\\n# Calculate the YTD gain for each stock\\nmeta_ytd_gain = (meta_data['Close'] - meta_data['Close'].iloc[0]) / meta_data['Close'].iloc[0] * 100\\ntesla_ytd_gain = (tesla_data['Close'] - tesla_data['Close'].iloc[0]) / tesla_data['Close'].iloc[0] * 100\\n\\n# Plot the YTD gain on a chart\\nplt.figure(figsize=(14, 7))\\nplt.plot(meta_ytd_gain.index, meta_ytd_gain, label='META YTD Gain %')\\nplt.plot(tesla_ytd_gain.index, tesla_ytd_gain, label='TESLA YTD Gain %')\\nplt.title('META vs TESLA Stock Price Gain YTD')\\nplt.xlabel('Date')\\nplt.ylabel('Gain %')\\nplt.legend()\\nplt.grid(True)\\nplt.show()\\n```\\n\\nThis code will install `yfinance`, fetch the YTD stock data for META and TESLA, calculate the YTD gain, and plot it on a chart. Please execute the code in your IPython environment.\", 'role': 'user'}, {'content': \"exitcode: 0 (execution succeeded)\\nCode output: \\nRequirement already satisfied: yfinance in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (0.2.36)\\r\\nRequirement already satisfied: pandas>=1.3.0 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (2.2.0)\\r\\nRequirement already satisfied: numpy>=1.16.5 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (1.26.4)\\r\\nRequirement already satisfied: requests>=2.31 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (2.31.0)\\r\\nRequirement already satisfied: multitasking>=0.0.7 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (0.0.11)\\r\\nRequirement already satisfied: lxml>=4.9.1 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (5.1.0)\\r\\nRequirement already satisfied: appdirs>=1.4.4 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (1.4.4)\\r\\nRequirement already satisfied: pytz>=2022.5 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (2024.1)\\r\\nRequirement already satisfied: frozendict>=2.3.4 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (2.4.0)\\r\\nRequirement already satisfied: peewee>=3.16.2 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (3.17.1)\\r\\nRequirement already satisfied: beautifulsoup4>=4.11.1 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (4.12.3)\\r\\nRequirement already satisfied: html5lib>=1.1 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (1.1)\\r\\nRequirement already satisfied: soupsieve>1.2 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from beautifulsoup4>=4.11.1->yfinance) (2.5)\\r\\nRequirement already satisfied: six>=1.9 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from html5lib>=1.1->yfinance) (1.16.0)\\r\\nRequirement already satisfied: webencodings in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from html5lib>=1.1->yfinance) (0.5.1)\\r\\nRequirement already satisfied: python-dateutil>=2.8.2 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from pandas>=1.3.0->yfinance) (2.8.2)\\r\\nRequirement already satisfied: tzdata>=2022.7 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from pandas>=1.3.0->yfinance) (2024.1)\\r\\nRequirement already satisfied: charset-normalizer<4,>=2 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from requests>=2.31->yfinance) (3.3.2)\\r\\nRequirement already satisfied: idna<4,>=2.5 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from requests>=2.31->yfinance) (3.6)\\r\\nRequirement already satisfied: urllib3<3,>=1.21.1 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from requests>=2.31->yfinance) (1.26.18)\\r\\nRequirement already satisfied: certifi>=2017.4.17 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from requests>=2.31->yfinance) (2024.2.2)\\r\\n/Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages/yfinance/utils.py:775: FutureWarning: The 'unit' keyword in TimedeltaIndex construction is deprecated and will be removed in a future version. Use pd.to_timedelta instead.\\n df.index += _pd.TimedeltaIndex(dst_error_hours, 'h')\\n\\r[*********************100%%**********************] 1 of 1 completed\\n/Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages/yfinance/utils.py:775: FutureWarning: The 'unit' keyword in TimedeltaIndex construction is deprecated and will be removed in a future version. Use pd.to_timedelta instead.\\n df.index += _pd.TimedeltaIndex(dst_error_hours, 'h')\\n\\r[*********************100%%**********************] 1 of 1 completed\\n\", 'role': 'assistant'}, {'content': 'The code has executed successfully, and the `yfinance` library has been used to fetch the YTD stock data for META and TESLA. The YTD gain for each stock has been calculated, and a chart should have been plotted to visualize the stock price gains.\\n\\nSince the code has been executed without any errors and the chart should have been displayed in your IPython environment, this completes the task.\\n\\nTERMINATE', 'role': 'user'}], summary='The code has executed successfully, and the `yfinance` library has been used to fetch the YTD stock data for META and TESLA. The YTD gain for each stock has been calculated, and a chart should have been plotted to visualize the stock price gains.\\n\\nSince the code has been executed without any errors and the chart should have been displayed in your IPython environment, this completes the task.\\n\\n', cost=({'total_cost': 0.6870599999999999, 'gpt-4': {'cost': 0.6870599999999999, 'prompt_tokens': 18324, 'completion_tokens': 2289, 'total_tokens': 20613}}, {'total_cost': 0.6154499999999999, 'gpt-4': {'cost': 0.6154499999999999, 'prompt_tokens': 17333, 'completion_tokens': 1591, 'total_tokens': 18924}}), human_input=[])" + "ChatResult(chat_id=None, chat_history=[{'content': 'Plot a chart of META and TESLA stock price gain YTD. Use data from the following csv file if it exists: coding/stock_price_ytd.csv. Use csv to read the file. Otherwise, figure out how to get the data.If you suggest code, the code will be executed in IPython.', 'role': 'assistant'}, {'content': 'First, we need to check if the file `coding/stock_price_ytd.csv` exists and if it contains the necessary data for META and TESLA stock price gains YTD (Year-To-Date). We will attempt to read the file using Python\\'s `csv` module. If the file does not exist or we cannot obtain the necessary data from it, we will then look for an alternative way to get the data.\\n\\nLet\\'s start by checking if the file exists and reading its contents.\\n\\n```python\\n# filename: check_csv_file.py\\n\\nimport csv\\nimport os\\n\\n# Define the path to the CSV file\\nfile_path = \\'coding/stock_price_ytd.csv\\'\\n\\n# Check if the file exists\\nif os.path.exists(file_path):\\n try:\\n # Attempt to read the file and print its contents\\n with open(file_path, mode=\\'r\\') as file:\\n csv_reader = csv.DictReader(file)\\n meta_data = []\\n tesla_data = []\\n for row in csv_reader:\\n if \\'META\\' in row:\\n meta_data.append(row)\\n if \\'TESLA\\' in row:\\n tesla_data.append(row)\\n print(\"META data:\", meta_data)\\n print(\"TESLA data:\", tesla_data)\\n except Exception as e:\\n print(f\"An error occurred while reading the file: {e}\")\\nelse:\\n print(\"The file does not exist.\")\\n```\\n\\nPlease execute the above code to check for the file and read its contents. If the file exists and contains the required data, we will proceed to plot the chart. If not, we will explore alternative ways to obtain the data.', 'role': 'user'}, {'content': \"exitcode: 0 (execution succeeded)\\nCode output: \\nMETA data: [{'Date': '2024-01-02', 'META': '346.2900085449219', 'TSLA': '248.4199981689453'}, {'Date': '2024-01-03', 'META': '344.4700012207031', 'TSLA': '238.4499969482422'}, {'Date': '2024-01-04', 'META': '347.1199951171875', 'TSLA': '237.92999267578125'}, {'Date': '2024-01-05', 'META': '351.95001220703125', 'TSLA': '237.49000549316406'}, {'Date': '2024-01-08', 'META': '358.6600036621094', 'TSLA': '240.4499969482422'}, {'Date': '2024-01-09', 'META': '357.42999267578125', 'TSLA': '234.9600067138672'}, {'Date': '2024-01-10', 'META': '370.4700012207031', 'TSLA': '233.94000244140625'}, {'Date': '2024-01-11', 'META': '369.6700134277344', 'TSLA': '227.22000122070312'}, {'Date': '2024-01-12', 'META': '374.489990234375', 'TSLA': '218.88999938964844'}, {'Date': '2024-01-16', 'META': '367.4599914550781', 'TSLA': '219.91000366210938'}, {'Date': '2024-01-17', 'META': '368.3699951171875', 'TSLA': '215.5500030517578'}, {'Date': '2024-01-18', 'META': '376.1300048828125', 'TSLA': '211.8800048828125'}, {'Date': '2024-01-19', 'META': '383.45001220703125', 'TSLA': '212.19000244140625'}, {'Date': '2024-01-22', 'META': '381.7799987792969', 'TSLA': '208.8000030517578'}, {'Date': '2024-01-23', 'META': '385.20001220703125', 'TSLA': '209.13999938964844'}, {'Date': '2024-01-24', 'META': '390.70001220703125', 'TSLA': '207.8300018310547'}, {'Date': '2024-01-25', 'META': '393.17999267578125', 'TSLA': '182.6300048828125'}, {'Date': '2024-01-26', 'META': '394.1400146484375', 'TSLA': '183.25'}, {'Date': '2024-01-29', 'META': '401.0199890136719', 'TSLA': '190.92999267578125'}, {'Date': '2024-01-30', 'META': '400.05999755859375', 'TSLA': '191.58999633789062'}, {'Date': '2024-01-31', 'META': '390.1400146484375', 'TSLA': '187.2899932861328'}, {'Date': '2024-02-01', 'META': '394.7799987792969', 'TSLA': '188.86000061035156'}, {'Date': '2024-02-02', 'META': '474.989990234375', 'TSLA': '187.91000366210938'}, {'Date': '2024-02-05', 'META': '459.4100036621094', 'TSLA': '181.05999755859375'}, {'Date': '2024-02-06', 'META': '454.7200012207031', 'TSLA': '185.10000610351562'}, {'Date': '2024-02-07', 'META': '469.5899963378906', 'TSLA': '187.5800018310547'}, {'Date': '2024-02-08', 'META': '470.0', 'TSLA': '189.55999755859375'}, {'Date': '2024-02-09', 'META': '468.1099853515625', 'TSLA': '193.57000732421875'}, {'Date': '2024-02-12', 'META': '468.8999938964844', 'TSLA': '188.1300048828125'}, {'Date': '2024-02-13', 'META': '460.1199951171875', 'TSLA': '184.02000427246094'}, {'Date': '2024-02-14', 'META': '473.2799987792969', 'TSLA': '188.7100067138672'}, {'Date': '2024-02-15', 'META': '484.0299987792969', 'TSLA': '200.4499969482422'}, {'Date': '2024-02-16', 'META': '473.32000732421875', 'TSLA': '199.9499969482422'}, {'Date': '2024-02-20', 'META': '471.75', 'TSLA': '193.75999450683594'}, {'Date': '2024-02-21', 'META': '468.0299987792969', 'TSLA': '194.77000427246094'}, {'Date': '2024-02-22', 'META': '486.1300048828125', 'TSLA': '197.41000366210938'}, {'Date': '2024-02-23', 'META': '484.0299987792969', 'TSLA': '191.97000122070312'}, {'Date': '2024-02-26', 'META': '481.739990234375', 'TSLA': '199.39999389648438'}, {'Date': '2024-02-27', 'META': '487.04998779296875', 'TSLA': '199.72999572753906'}, {'Date': '2024-02-28', 'META': '484.0199890136719', 'TSLA': '202.0399932861328'}, {'Date': '2024-02-29', 'META': '490.1300048828125', 'TSLA': '201.8800048828125'}, {'Date': '2024-03-01', 'META': '502.29998779296875', 'TSLA': '202.63999938964844'}]\\nTESLA data: []\\n\", 'role': 'assistant'}, {'content': 'The output indicates that the file `coding/stock_price_ytd.csv` exists and contains the necessary data for META stock price gains YTD. However, it seems that the TESLA data is not separated correctly, as the TESLA data appears to be within the same rows as the META data, but the script is looking for a separate \\'TESLA\\' entry in the rows.\\n\\nWe need to adjust the script to correctly parse the TESLA data from the same rows as the META data. Let\\'s modify the script to extract both META and TESLA stock prices from the same rows and then plot the chart.\\n\\n```python\\n# filename: plot_stock_prices.py\\n\\nimport csv\\nimport os\\nimport matplotlib.pyplot as plt\\n\\n# Define the path to the CSV file\\nfile_path = \\'coding/stock_price_ytd.csv\\'\\n\\n# Initialize lists to hold the parsed data\\ndates = []\\nmeta_prices = []\\ntesla_prices = []\\n\\n# Check if the file exists\\nif os.path.exists(file_path):\\n try:\\n # Read the file and parse the data\\n with open(file_path, mode=\\'r\\') as file:\\n csv_reader = csv.DictReader(file)\\n for row in csv_reader:\\n dates.append(row[\\'Date\\'])\\n meta_prices.append(float(row[\\'META\\']))\\n tesla_prices.append(float(row[\\'TSLA\\']))\\n \\n # Plot the data\\n plt.figure(figsize=(14, 7))\\n plt.plot(dates, meta_prices, label=\\'META\\', marker=\\'o\\')\\n plt.plot(dates, tesla_prices, label=\\'TESLA\\', marker=\\'x\\')\\n \\n # Formatting the plot\\n plt.title(\\'META vs TESLA Stock Price Gain YTD\\')\\n plt.xlabel(\\'Date\\')\\n plt.ylabel(\\'Stock Price\\')\\n plt.xticks(rotation=45)\\n plt.legend()\\n plt.tight_layout()\\n \\n # Show the plot\\n plt.show()\\n except Exception as e:\\n print(f\"An error occurred while processing the file: {e}\")\\nelse:\\n print(\"The file does not exist.\")\\n```\\n\\nPlease execute the above code to plot the chart of META and TESLA stock price gains YTD.', 'role': 'user'}, {'content': 'exitcode: 0 (execution succeeded)\\nCode output: \\n', 'role': 'assistant'}, {'content': 'It appears that the code executed successfully and the chart should have been displayed on your screen. Since I cannot view the chart, I will assume that you were able to see the META and TESLA stock price gains YTD plotted correctly.\\n\\nIf you have any further requests or need assistance with another task, feel free to ask. Otherwise, if everything is done, please let me know.\\n\\nTERMINATE', 'role': 'user'}], summary='It appears that the code executed successfully and the chart should have been displayed on your screen. Since I cannot view the chart, I will assume that you were able to see the META and TESLA stock price gains YTD plotted correctly.\\n\\nIf you have any further requests or need assistance with another task, feel free to ask. Otherwise, if everything is done, please let me know.\\n\\n', cost=({'total_cost': 2.1070799999999994, 'gpt-4': {'cost': 2.1070799999999994, 'prompt_tokens': 45338, 'completion_tokens': 12449, 'total_tokens': 57787}}, {'total_cost': 1.7238599999999995, 'gpt-4': {'cost': 1.7238599999999995, 'prompt_tokens': 37832, 'completion_tokens': 9815, 'total_tokens': 47647}}), human_input=[])" ] }, - "execution_count": 7, + "execution_count": 32, "metadata": {}, "output_type": "execute_result" } @@ -1092,12 +1023,21 @@ "# the assistant receives a message from the user, which contains the task description\n", "ipy_user.initiate_chat(\n", " assistant,\n", - " message=\"\"\"Plot a chart of META and TESLA stock price gain YTD\"\"\",\n", + " message=my_ipy_message_generator,\n", + " raw_message=\"\"\"Plot a chart of META and TESLA stock price gain YTD. \"\"\",\n", + " carryover=\"Use data from the following csv file if it exists: coding/stock_price_ytd.csv. Use csv to read the file. Otherwise, figure out how to get the data.\",\n", ")" ] } ], "metadata": { + "front_matter": { + "description": "Use conversable language learning model agents to solve tasks and provide automatic feedback through a comprehensive example of writing, executing, and debugging Python code to compare stock price changes.", + "tags": [ + "code generation", + "debugging" + ] + }, "kernelspec": { "display_name": "Python 3", "language": "python", diff --git a/notebook/agentchat_capability_long_context_handling.ipynb b/notebook/agentchat_capability_long_context_handling.ipynb index edeb8216be38..7d2ef12a561c 100644 --- a/notebook/agentchat_capability_long_context_handling.ipynb +++ b/notebook/agentchat_capability_long_context_handling.ipynb @@ -4,19 +4,20 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Handling A Long Context via `TransformChatHistory`\n", + "# Handling A Long Context via `TransformChatHistory`\n", "\n", - "This notebook illustrates how you can use the `TransformChatHistory` capability to give any `Conversable` agent an ability to handle a long context. " - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "## Uncomment to install pyautogen if you don't have it already\n", - "#! pip install pyautogen" + "This notebook illustrates how you can use the `TransformChatHistory` capability to give any `Conversable` agent an ability to handle a long context. \n", + "\n", + "````{=mdx}\n", + ":::info Requirements\n", + "Install `pyautogen`:\n", + "```bash\n", + "pip install pyautogen\n", + "```\n", + "\n", + "For more information, please refer to the [installation guide](/docs/installation/).\n", + ":::\n", + "````" ] }, { @@ -45,6 +46,12 @@ "cell_type": "markdown", "metadata": {}, "source": [ + "````{=mdx}\n", + ":::tip\n", + "Learn more about configuring LLMs for agents [here](/docs/topics/llm_configuration).\n", + ":::\n", + "````\n", + "\n", "To add this ability to any agent, define the capability and then use `add_to_agent`." ] }, @@ -652,6 +659,13 @@ } ], "metadata": { + "front_matter": { + "description": "Use the TransformChatHistory capability to handle long contexts", + "tags": [ + "long context handling", + "capability" + ] + }, "kernelspec": { "display_name": "Python 3", "language": "python", @@ -667,7 +681,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.13" + "version": "3.11.7" } }, "nbformat": 4, diff --git a/notebook/agentchat_chess.ipynb b/notebook/agentchat_chess.ipynb deleted file mode 100644 index 21a3c29fb35c..000000000000 --- a/notebook/agentchat_chess.ipynb +++ /dev/null @@ -1,1020 +0,0 @@ -{ - "cells": [ - { - "attachments": {}, - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\"Open" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Auto Generated Agent Chat: Chess Game Playing While Chitchatting by GPT-4 Agents\n", - "\n", - "AutoGen offers conversable agents powered by LLM, tool, or human, which can be used to perform tasks collectively via automated chat. This framework allows tool use and human participation through multi-agent conversation.\n", - "Please find documentation about this feature [here](https://microsoft.github.io/autogen/docs/Use-Cases/agent_chat).\n", - "\n", - "This notebook is modified based on https://github.com/ekzhu/FLAML/blob/evaluation/evaluation/chess/play_chess.ipynb\n", - "\n", - "## Requirements\n", - "\n", - "AutoGen requires `Python>=3.8`. To run this notebook example, please install:\n", - "```bash\n", - "pip install pyautogen\n", - "```" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "%%capture --no-stderr\n", - "# %pip install \"pyautogen>=0.2.3\"\n", - "from collections import defaultdict\n", - "from typing import Any, Dict, List, Optional, Union\n", - "\n", - "import chess\n", - "import chess.svg\n", - "\n", - "import autogen\n", - "\n", - "%pip install chess -U" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Set your API Endpoint\n", - "\n", - "The [`config_list_from_json`](https://microsoft.github.io/autogen/docs/reference/oai/openai_utils#config_list_from_json) function loads a list of configurations from an environment variable or a json file." - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], - "source": [ - "config_list_gpt4 = autogen.config_list_from_json(\n", - " \"OAI_CONFIG_LIST\",\n", - " filter_dict={\n", - " \"model\": [\"gpt-4\", \"gpt4\", \"gpt-4-32k\", \"gpt-4-32k-0314\", \"gpt-4-32k-v0314\"],\n", - " },\n", - ")\n", - "# config_list_gpt35 = autogen.config_list_from_json(\n", - "# \"OAI_CONFIG_LIST\",\n", - "# filter_dict={\n", - "# \"model\": {\n", - "# \"gpt-3.5-turbo\",\n", - "# \"gpt-3.5-turbo-16k\",\n", - "# \"gpt-3.5-turbo-16k-0613\",\n", - "# \"gpt-3.5-turbo-0301\",\n", - "# \"chatgpt-35-turbo-0301\",\n", - "# \"gpt-35-turbo-v0301\",\n", - "# },\n", - "# },\n", - "# )" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": {}, - "source": [ - "It first looks for environment variable \"OAI_CONFIG_LIST\" which needs to be a valid json string. If that variable is not found, it then looks for a json file named \"OAI_CONFIG_LIST\". It filters the configs by models (you can filter by other keys as well). Only the gpt-4 models are kept in the list based on the filter condition.\n", - "\n", - "The config list looks like the following:\n", - "```python\n", - "config_list = [\n", - " {\n", - " 'model': 'gpt-4',\n", - " 'api_key': '',\n", - " },\n", - " {\n", - " 'model': 'gpt-4',\n", - " 'api_key': '',\n", - " 'base_url': '',\n", - " 'api_type': 'azure',\n", - " 'api_version': '2024-02-15-preview',\n", - " },\n", - " {\n", - " 'model': 'gpt-4-32k',\n", - " 'api_key': '',\n", - " 'base_url': '',\n", - " 'api_type': 'azure',\n", - " 'api_version': '2024-02-15-preview',\n", - " },\n", - "]\n", - "```\n", - "\n", - "You can set the value of config_list in any way you prefer. Please refer to this [notebook](https://github.com/microsoft/autogen/blob/main/notebook/oai_openai_utils.ipynb) for full code examples of the different methods." - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Define Agents\n", - "\n", - "We'll define a BoardAgent and a ChessPlayerAgent class." - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [], - "source": [ - "sys_msg = \"\"\"You are an AI-powered chess board agent.\n", - "You translate the user's natural language input into legal UCI moves.\n", - "You should only reply with a UCI move string extracted from the user's input.\"\"\"\n", - "\n", - "\n", - "class BoardAgent(autogen.AssistantAgent):\n", - " board: chess.Board\n", - " correct_move_messages: Dict[autogen.Agent, List[Dict]]\n", - "\n", - " def __init__(self, board: chess.Board):\n", - " super().__init__(\n", - " name=\"BoardAgent\",\n", - " system_message=sys_msg,\n", - " llm_config={\"temperature\": 0.0, \"config_list\": config_list_gpt4},\n", - " max_consecutive_auto_reply=10,\n", - " )\n", - " self.register_reply(autogen.ConversableAgent, BoardAgent._generate_board_reply)\n", - " self.board = board\n", - " self.correct_move_messages = defaultdict(list)\n", - "\n", - " def _generate_board_reply(\n", - " self,\n", - " messages: Optional[List[Dict]] = None,\n", - " sender: Optional[autogen.Agent] = None,\n", - " config: Optional[Any] = None,\n", - " ) -> Union[str, Dict, None]:\n", - " message = messages[-1]\n", - " # extract a UCI move from player's message\n", - " reply = self.generate_reply(\n", - " self.correct_move_messages[sender] + [message], sender, exclude=[BoardAgent._generate_board_reply]\n", - " )\n", - " uci_move = reply if isinstance(reply, str) else str(reply[\"content\"])\n", - " try:\n", - " self.board.push_uci(uci_move)\n", - " except ValueError as e:\n", - " # invalid move\n", - " return True, f\"Error: {e}\"\n", - " else:\n", - " # valid move\n", - " m = chess.Move.from_uci(uci_move)\n", - " display( # noqa: F821\n", - " chess.svg.board(\n", - " self.board, arrows=[(m.from_square, m.to_square)], fill={m.from_square: \"gray\"}, size=200\n", - " )\n", - " )\n", - " self.correct_move_messages[sender].extend([message, self._message_to_dict(uci_move)])\n", - " self.correct_move_messages[sender][-1][\"role\"] = \"assistant\"\n", - " return True, uci_move" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [], - "source": [ - "sys_msg_tmpl = \"\"\"Your name is {name} and you are a chess player.\n", - "You are playing against {opponent_name}.\n", - "You are playing as {color}.\n", - "You communicate your move using universal chess interface language.\n", - "You also chit-chat with your opponent when you communicate a move to light up the mood.\n", - "You should ensure both you and the opponent are making legal moves.\n", - "Do not apologize for making illegal moves.\"\"\"\n", - "\n", - "\n", - "class ChessPlayerAgent(autogen.AssistantAgent):\n", - " def __init__(\n", - " self,\n", - " color: str,\n", - " board_agent: BoardAgent,\n", - " max_turns: int,\n", - " **kwargs,\n", - " ):\n", - " if color not in [\"white\", \"black\"]:\n", - " raise ValueError(f\"color must be either white or black, but got {color}\")\n", - " opponent_color = \"black\" if color == \"white\" else \"white\"\n", - " name = f\"Player {color}\"\n", - " opponent_name = f\"Player {opponent_color}\"\n", - " sys_msg = sys_msg_tmpl.format(\n", - " name=name,\n", - " opponent_name=opponent_name,\n", - " color=color,\n", - " )\n", - " super().__init__(\n", - " name=name,\n", - " system_message=sys_msg,\n", - " max_consecutive_auto_reply=max_turns,\n", - " **kwargs,\n", - " )\n", - " self.register_reply(BoardAgent, ChessPlayerAgent._generate_reply_for_board, config=board_agent.board)\n", - " self.register_reply(ChessPlayerAgent, ChessPlayerAgent._generate_reply_for_player, config=board_agent)\n", - " self.update_max_consecutive_auto_reply(board_agent.max_consecutive_auto_reply(), board_agent)\n", - "\n", - " def _generate_reply_for_board(\n", - " self,\n", - " messages: Optional[List[Dict]] = None,\n", - " sender: Optional[autogen.Agent] = None,\n", - " config: Optional[chess.Board] = None,\n", - " ) -> Union[str, Dict, None]:\n", - " board = config\n", - " # add a system message about the current state of the board.\n", - " board_state_msg = [{\"role\": \"system\", \"content\": f\"Current board:\\n{board}\"}]\n", - " last_message = messages[-1]\n", - " if last_message[\"content\"].startswith(\"Error\"):\n", - " # try again\n", - " last_message[\"role\"] = \"system\"\n", - " return True, self.generate_reply(\n", - " messages + board_state_msg, sender, exclude=[ChessPlayerAgent._generate_reply_for_board]\n", - " )\n", - " else:\n", - " return True, None\n", - "\n", - " def _generate_reply_for_player(\n", - " self,\n", - " messages: Optional[List[Dict]] = None,\n", - " sender: Optional[autogen.Agent] = None,\n", - " config: Optional[BoardAgent] = None,\n", - " ) -> Union[str, Dict, None]:\n", - " board_agent = config\n", - " # add a system message about the current state of the board.\n", - " board_state_msg = [{\"role\": \"system\", \"content\": f\"Current board:\\n{board_agent.board}\"}]\n", - " # propose a reply which will be sent to the board agent for verification.\n", - " message = self.generate_reply(\n", - " messages + board_state_msg, sender, exclude=[ChessPlayerAgent._generate_reply_for_player]\n", - " )\n", - " if message is None:\n", - " return True, None\n", - " # converse with the board until a legal move is made or max allowed retries.\n", - " # change silent to False to see that conversation.\n", - " self.initiate_chat(board_agent, clear_history=False, message=message, silent=self.human_input_mode == \"NEVER\")\n", - " # last message sent by the board agent\n", - " last_message = self._oai_messages[board_agent][-1]\n", - " if last_message[\"role\"] == \"assistant\":\n", - " # didn't make a legal move after a limit times of retries.\n", - " print(f\"{self.name}: I yield.\")\n", - " return True, None\n", - " return True, self._oai_messages[board_agent][-2]" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Construct Agents" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [], - "source": [ - "max_turn = 10\n", - "\n", - "board = chess.Board()\n", - "board_agent = BoardAgent(board=board)\n", - "player_black = ChessPlayerAgent(\n", - " color=\"black\",\n", - " board_agent=board_agent,\n", - " max_turns=max_turn,\n", - " llm_config={\"temperature\": 0.5, \"cache_seed\": 1, \"config_list\": config_list_gpt4},\n", - ")\n", - "player_white = ChessPlayerAgent(\n", - " color=\"white\",\n", - " board_agent=board_agent,\n", - " max_turns=max_turn,\n", - " llm_config={\"temperature\": 0.5, \"cache_seed\": 2, \"config_list\": config_list_gpt4},\n", - ")" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Start Game" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\u001b[33mPlayer black\u001b[0m (to Player white):\n", - "\n", - "Your turn.\n", - "\n", - "--------------------------------------------------------------------------------\n" - ] - }, - { - "data": { - "image/svg+xml": [ - "
r n b q k b n r\n",
-       "p p p p p p p p\n",
-       ". . . . . . . .\n",
-       ". . . . . . . .\n",
-       ". . . . P . . .\n",
-       ". . . . . . . .\n",
-       "P P P P . P P P\n",
-       "R N B Q K B N R
" - ], - "text/plain": [ - "'
r n b q k b n r\\np p p p p p p p\\n. . . . . . . .\\n. . . . . . . .\\n. . . . P . . .\\n. . . . . . . .\\nP P P P . P P P\\nR N B Q K B N R
'" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\u001b[33mPlayer white\u001b[0m (to Player black):\n", - "\n", - "Alright, let's kick things off. I'll move my pawn from e2 to e4. The center of the board is the heart of the battle, isn't it? Your move. \n", - "\n", - "e2e4\n", - "\n", - "--------------------------------------------------------------------------------\n" - ] - }, - { - "data": { - "image/svg+xml": [ - "
r n b q k b n r\n",
-       "p p p p . p p p\n",
-       ". . . . . . . .\n",
-       ". . . . p . . .\n",
-       ". . . . P . . .\n",
-       ". . . . . . . .\n",
-       "P P P P . P P P\n",
-       "R N B Q K B N R
" - ], - "text/plain": [ - "'
r n b q k b n r\\np p p p . p p p\\n. . . . . . . .\\n. . . . p . . .\\n. . . . P . . .\\n. . . . . . . .\\nP P P P . P P P\\nR N B Q K B N R
'" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\u001b[33mPlayer black\u001b[0m (to Player white):\n", - "\n", - "Ah, the King's Pawn Opening, a classic. Let's see how this plays out. I'll move my pawn from e7 to e5. \n", - "\n", - "e7e5\n", - "\n", - "You know, I've always admired how chess reflects life. It's all about making strategic decisions, isn't it? Your move.\n", - "\n", - "--------------------------------------------------------------------------------\n" - ] - }, - { - "data": { - "image/svg+xml": [ - "
r n b q k b n r\n",
-       "p p p p . p p p\n",
-       ". . . . . . . .\n",
-       ". . . . p . . .\n",
-       ". . . . P . . .\n",
-       ". . . . . N . .\n",
-       "P P P P . P P P\n",
-       "R N B Q K B . R
" - ], - "text/plain": [ - "'
r n b q k b n r\\np p p p . p p p\\n. . . . . . . .\\n. . . . p . . .\\n. . . . P . . .\\n. . . . . N . .\\nP P P P . P P P\\nR N B Q K B . R
'" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\u001b[33mPlayer white\u001b[0m (to Player black):\n", - "\n", - "Indeed, chess is a mirror of life in many ways. Every move matters, just like every decision in life. I'll move my knight from g1 to f3, aiming to control the center.\n", - "\n", - "g1f3\n", - "\n", - "--------------------------------------------------------------------------------\n" - ] - }, - { - "data": { - "image/svg+xml": [ - "
r n b q k b . r\n",
-       "p p p p . p p p\n",
-       ". . . . . n . .\n",
-       ". . . . p . . .\n",
-       ". . . . P . . .\n",
-       ". . . . . N . .\n",
-       "P P P P . P P P\n",
-       "R N B Q K B . R
" - ], - "text/plain": [ - "'
r n b q k b . r\\np p p p . p p p\\n. . . . . n . .\\n. . . . p . . .\\n. . . . P . . .\\n. . . . . N . .\\nP P P P . P P P\\nR N B Q K B . R
'" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\u001b[33mPlayer black\u001b[0m (to Player white):\n", - "\n", - "Well said! Chess is indeed a game of deep strategy and foresight. I will move my knight from g8 to f6, matching your control of the center.\n", - "\n", - "g8f6\n", - "\n", - "Did you know, the knight's move is actually based on the 'L' shape, which stands for 'leap'? Quite interesting, isn't it? Your move.\n", - "\n", - "--------------------------------------------------------------------------------\n" - ] - }, - { - "data": { - "image/svg+xml": [ - "
r n b q k b . r\n",
-       "p p p p . p p p\n",
-       ". . . . . n . .\n",
-       ". . . . p . . .\n",
-       ". . B . P . . .\n",
-       ". . . . . N . .\n",
-       "P P P P . P P P\n",
-       "R N B Q K . . R
" - ], - "text/plain": [ - "'
r n b q k b . r\\np p p p . p p p\\n. . . . . n . .\\n. . . . p . . .\\n. . B . P . . .\\n. . . . . N . .\\nP P P P . P P P\\nR N B Q K . . R
'" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\u001b[33mPlayer white\u001b[0m (to Player black):\n", - "\n", - "That's a fun fact! The knight's L-shaped leap makes it a unique piece on the board. Now, I'll move my bishop from f1 to c4, putting a little pressure on your side.\n", - "\n", - "f1c4\n", - "\n", - "--------------------------------------------------------------------------------\n" - ] - }, - { - "data": { - "image/svg+xml": [ - "
r n b q k . . r\n",
-       "p p p p . p p p\n",
-       ". . . . . n . .\n",
-       ". . b . p . . .\n",
-       ". . B . P . . .\n",
-       ". . . . . N . .\n",
-       "P P P P . P P P\n",
-       "R N B Q K . . R
" - ], - "text/plain": [ - "'
r n b q k . . r\\np p p p . p p p\\n. . . . . n . .\\n. . b . p . . .\\n. . B . P . . .\\n. . . . . N . .\\nP P P P . P P P\\nR N B Q K . . R
'" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\u001b[33mPlayer black\u001b[0m (to Player white):\n", - "\n", - "A strong move, indeed! I can see you're not one to hold back. I'll move my bishop from f8 to c5, maintaining the balance.\n", - "\n", - "f8c5\n", - "\n", - "You know, the bishop was originally an elephant in ancient chess. It's fascinating how the game has evolved over the centuries, isn't it? Your move.\n", - "\n", - "--------------------------------------------------------------------------------\n" - ] - }, - { - "data": { - "image/svg+xml": [ - "
r n b q k . . r\n",
-       "p p p p . p p p\n",
-       ". . . . . n . .\n",
-       ". . b . p . . .\n",
-       ". . B . P . . .\n",
-       ". . . . . N . .\n",
-       "P P P P . P P P\n",
-       "R N B Q . R K .
" - ], - "text/plain": [ - "'
r n b q k . . r\\np p p p . p p p\\n. . . . . n . .\\n. . b . p . . .\\n. . B . P . . .\\n. . . . . N . .\\nP P P P . P P P\\nR N B Q . R K .
'" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\u001b[33mPlayer white\u001b[0m (to Player black):\n", - "\n", - "Absolutely, the evolution of chess is quite fascinating. It's a testament to the game's timeless appeal. Now, I'll castle kingside to ensure my king's safety. \n", - "\n", - "e1g1\n", - "\n", - "--------------------------------------------------------------------------------\n" - ] - }, - { - "data": { - "image/svg+xml": [ - "
r n b q . r k .\n",
-       "p p p p . p p p\n",
-       ". . . . . n . .\n",
-       ". . b . p . . .\n",
-       ". . B . P . . .\n",
-       ". . . . . N . .\n",
-       "P P P P . P P P\n",
-       "R N B Q . R K .
" - ], - "text/plain": [ - "'
r n b q . r k .\\np p p p . p p p\\n. . . . . n . .\\n. . b . p . . .\\n. . B . P . . .\\n. . . . . N . .\\nP P P P . P P P\\nR N B Q . R K .
'" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\u001b[33mPlayer black\u001b[0m (to Player white):\n", - "\n", - "A wise decision, safety first! I'll follow your lead and castle kingside as well. \n", - "\n", - "e8g8\n", - "\n", - "They say the king is a fighting piece, but in the early game, it's all about keeping him safe, isn't it? Your move.\n", - "\n", - "--------------------------------------------------------------------------------\n" - ] - }, - { - "data": { - "image/svg+xml": [ - "
r n b q . r k .\n",
-       "p p p p . p p p\n",
-       ". . . . . n . .\n",
-       ". . b . p . . .\n",
-       ". . B P P . . .\n",
-       ". . . . . N . .\n",
-       "P P P . . P P P\n",
-       "R N B Q . R K .
" - ], - "text/plain": [ - "'
r n b q . r k .\\np p p p . p p p\\n. . . . . n . .\\n. . b . p . . .\\n. . B P P . . .\\n. . . . . N . .\\nP P P . . P P P\\nR N B Q . R K .
'" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\u001b[33mPlayer white\u001b[0m (to Player black):\n", - "\n", - "I see, it looks like we had a bit of a mix-up. Let's get back to the game. I'll move my pawn from d2 to d4, opening up lines for my queen and bishop.\n", - "\n", - "d2d4\n", - "\n", - "--------------------------------------------------------------------------------\n" - ] - }, - { - "data": { - "image/svg+xml": [ - "
r n b q . r k .\n",
-       "p p p p . p p p\n",
-       ". b . . . n . .\n",
-       ". . . . p . . .\n",
-       ". . B P P . . .\n",
-       ". . . . . N . .\n",
-       "P P P . . P P P\n",
-       "R N B Q . R K .
" - ], - "text/plain": [ - "'
r n b q . r k .\\np p p p . p p p\\n. b . . . n . .\\n. . . . p . . .\\n. . B P P . . .\\n. . . . . N . .\\nP P P . . P P P\\nR N B Q . R K .
'" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\u001b[33mPlayer black\u001b[0m (to Player white):\n", - "\n", - "Indeed, opening lines for your major pieces is a crucial part of the game. I'll move my bishop from c5 to b6. \n", - "\n", - "c5b6\n", - "\n", - "Chess is a lot like a dance, don't you think? Each piece moving in harmony with the others. Your move.\n", - "\n", - "--------------------------------------------------------------------------------\n" - ] - }, - { - "data": { - "image/svg+xml": [ - "
r n b q . r k .\n",
-       "p p p p . p p p\n",
-       ". b . . . n . .\n",
-       ". . . . p . . .\n",
-       ". . B P P . . .\n",
-       ". . . . . N . .\n",
-       "P P P . Q P P P\n",
-       "R N B . . R K .
" - ], - "text/plain": [ - "'
r n b q . r k .\\np p p p . p p p\\n. b . . . n . .\\n. . . . p . . .\\n. . B P P . . .\\n. . . . . N . .\\nP P P . Q P P P\\nR N B . . R K .
'" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\u001b[33mPlayer white\u001b[0m (to Player black):\n", - "\n", - "I see, it looks like we had a bit of a mix-up. Let's get back to the game. I'll move my queen from d1 to e2, aiming to control the center.\n", - "\n", - "d1e2\n", - "\n", - "--------------------------------------------------------------------------------\n" - ] - }, - { - "data": { - "image/svg+xml": [ - "
r n b . . r k .\n",
-       "p p p p q p p p\n",
-       ". b . . . n . .\n",
-       ". . . . p . . .\n",
-       ". . B P P . . .\n",
-       ". . . . . N . .\n",
-       "P P P . Q P P P\n",
-       "R N B . . R K .
" - ], - "text/plain": [ - "'
r n b . . r k .\\np p p p q p p p\\n. b . . . n . .\\n. . . . p . . .\\n. . B P P . . .\\n. . . . . N . .\\nP P P . Q P P P\\nR N B . . R K .
'" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\u001b[33mPlayer black\u001b[0m (to Player white):\n", - "\n", - "Indeed, control of the center is key. I'll move my queen from d8 to e7, matching your control of the center.\n", - "\n", - "d8e7\n", - "\n", - "Did you know the queen wasn't always the most powerful piece on the board? In the original game of chess, the piece could only move one square diagonally! Your move.\n", - "\n", - "--------------------------------------------------------------------------------\n" - ] - }, - { - "data": { - "image/svg+xml": [ - "
r n b . . r k .\n",
-       "p p p p q p p p\n",
-       ". b . . . n . .\n",
-       ". . . . P . . .\n",
-       ". . B . P . . .\n",
-       ". . . . . N . .\n",
-       "P P P . Q P P P\n",
-       "R N B . . R K .
" - ], - "text/plain": [ - "'
r n b . . r k .\\np p p p q p p p\\n. b . . . n . .\\n. . . . P . . .\\n. . B . P . . .\\n. . . . . N . .\\nP P P . Q P P P\\nR N B . . R K .
'" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\u001b[33mPlayer white\u001b[0m (to Player black):\n", - "\n", - "Indeed, the queen has come a long way from its humble beginnings. Now, I'll move my pawn from d4 to e5, adding some tension to the center.\n", - "\n", - "d4e5\n", - "\n", - "--------------------------------------------------------------------------------\n" - ] - }, - { - "data": { - "image/svg+xml": [ - "
r n b . . r k .\n",
-       "p p p p q p p p\n",
-       ". b . . . . . .\n",
-       ". . . n P . . .\n",
-       ". . B . P . . .\n",
-       ". . . . . N . .\n",
-       "P P P . Q P P P\n",
-       "R N B . . R K .
" - ], - "text/plain": [ - "'
r n b . . r k .\\np p p p q p p p\\n. b . . . . . .\\n. . . n P . . .\\n. . B . P . . .\\n. . . . . N . .\\nP P P . Q P P P\\nR N B . . R K .
'" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\u001b[33mPlayer black\u001b[0m (to Player white):\n", - "\n", - "Interesting move! This is shaping up to be quite the game. I'll move my knight from f6 to d5.\n", - "\n", - "f6d5\n", - "\n", - "You know, the knight is the only piece that can jump over others. It's like the horse in a game of polo, leaping over obstacles. Your move.\n", - "\n", - "--------------------------------------------------------------------------------\n" - ] - }, - { - "data": { - "image/svg+xml": [ - "
r n b . . r k .\n",
-       "p p p p q p p p\n",
-       ". b . . . . . .\n",
-       ". . . n P . . .\n",
-       ". . B . P . . .\n",
-       ". . N . . N . .\n",
-       "P P P . Q P P P\n",
-       "R . B . . R K .
" - ], - "text/plain": [ - "'
r n b . . r k .\\np p p p q p p p\\n. b . . . . . .\\n. . . n P . . .\\n. . B . P . . .\\n. . N . . N . .\\nP P P . Q P P P\\nR . B . . R K .
'" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\u001b[33mPlayer white\u001b[0m (to Player black):\n", - "\n", - "Indeed, the knight's ability to jump over other pieces is quite unique. Now, I'll move my knight from b1 to c3, challenging your knight.\n", - "\n", - "b1c3\n", - "\n", - "--------------------------------------------------------------------------------\n" - ] - }, - { - "data": { - "image/svg+xml": [ - "
r . b . . r k .\n",
-       "p p p p q p p p\n",
-       ". b n . . . . .\n",
-       ". . . n P . . .\n",
-       ". . B . P . . .\n",
-       ". . N . . N . .\n",
-       "P P P . Q P P P\n",
-       "R . B . . R K .
" - ], - "text/plain": [ - "'
r . b . . r k .\\np p p p q p p p\\n. b n . . . . .\\n. . . n P . . .\\n. . B . P . . .\\n. . N . . N . .\\nP P P . Q P P P\\nR . B . . R K .
'" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\u001b[33mPlayer black\u001b[0m (to Player white):\n", - "\n", - "Apologies for the confusion. It seems there was a misunderstanding. I'll correct that and move my knight from b8 to c6.\n", - "\n", - "b8c6\n", - "\n", - "Did you know that in the Middle Ages, the knight piece was usually carved to resemble a horse's head? Your move.\n", - "\n", - "--------------------------------------------------------------------------------\n" - ] - }, - { - "data": { - "image/svg+xml": [ - "
r . b . . r k .\n",
-       "p p p p q p p p\n",
-       ". b n . . . . .\n",
-       ". . . n P . B .\n",
-       ". . B . P . . .\n",
-       ". . N . . N . .\n",
-       "P P P . Q P P P\n",
-       "R . . . . R K .
" - ], - "text/plain": [ - "'
r . b . . r k .\\np p p p q p p p\\n. b n . . . . .\\n. . . n P . B .\\n. . B . P . . .\\n. . N . . N . .\\nP P P . Q P P P\\nR . . . . R K .
'" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\u001b[33mPlayer white\u001b[0m (to Player black):\n", - "\n", - "That's a fascinating bit of history! The knight piece's design certainly adds to the charm of the game. Now, I'll move my bishop from c1 to g5, putting a little pressure on your queen.\n", - "\n", - "c1g5\n", - "\n", - "--------------------------------------------------------------------------------\n" - ] - }, - { - "data": { - "image/svg+xml": [ - "
r . b . . r k .\n",
-       "p p p p . p p p\n",
-       ". b n . q . . .\n",
-       ". . . n P . B .\n",
-       ". . B . P . . .\n",
-       ". . N . . N . .\n",
-       "P P P . Q P P P\n",
-       "R . . . . R K .
" - ], - "text/plain": [ - "'
r . b . . r k .\\np p p p . p p p\\n. b n . q . . .\\n. . . n P . B .\\n. . B . P . . .\\n. . N . . N . .\\nP P P . Q P P P\\nR . . . . R K .
'" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\u001b[33mPlayer black\u001b[0m (to Player white):\n", - "\n", - "Well played! I see you're not one to shy away from a challenge. I'll move my queen from e7 to e6, keeping her safe.\n", - "\n", - "e7e6\n", - "\n", - "Did you know that the queen's ability to move any number of squares along a rank, file, or diagonal is a relatively recent development in the history of chess? Your move.\n", - "\n", - "--------------------------------------------------------------------------------\n" - ] - }, - { - "data": { - "image/svg+xml": [ - "
r . b . . r k .\n",
-       "p p p p . p p p\n",
-       ". b n . q . . .\n",
-       ". . . n P . B .\n",
-       ". . B . P . . .\n",
-       ". . N . . N . .\n",
-       "P P P . Q P P P\n",
-       ". . . R . R K .
" - ], - "text/plain": [ - "'
r . b . . r k .\\np p p p . p p p\\n. b n . q . . .\\n. . . n P . B .\\n. . B . P . . .\\n. . N . . N . .\\nP P P . Q P P P\\n. . . R . R K .
'" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\u001b[33mPlayer white\u001b[0m (to Player black):\n", - "\n", - "Indeed, the queen's powers were significantly enhanced during the Middle Ages, transforming the game of chess. Now, I'll move my rook from a1 to d1, aligning it with your queen.\n", - "\n", - "a1d1\n", - "\n", - "--------------------------------------------------------------------------------\n" - ] - }, - { - "data": { - "image/svg+xml": [ - "
r . b . . r k .\n",
-       "p p p . . p p p\n",
-       ". b n p q . . .\n",
-       ". . . n P . B .\n",
-       ". . B . P . . .\n",
-       ". . N . . N . .\n",
-       "P P P . Q P P P\n",
-       ". . . R . R K .
" - ], - "text/plain": [ - "'
r . b . . r k .\\np p p . . p p p\\n. b n p q . . .\\n. . . n P . B .\\n. . B . P . . .\\n. . N . . N . .\\nP P P . Q P P P\\n. . . R . R K .
'" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\u001b[33mPlayer black\u001b[0m (to Player white):\n", - "\n", - "My apologies for the confusion. Let's correct that. I'll move my pawn from d7 to d6.\n", - "\n", - "d7d6\n", - "\n", - "Did you know that pawns are the soul of chess? It's fascinating how these seemingly insignificant pieces can control the fate of the game. Your move.\n", - "\n", - "--------------------------------------------------------------------------------\n" - ] - } - ], - "source": [ - "player_black.initiate_chat(player_white, message=\"Your turn.\")" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "flaml", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.11.4" - }, - "orig_nbformat": 4 - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/notebook/agentchat_compression.ipynb b/notebook/agentchat_compression.ipynb index 3ba57a728b20..afdd20d356ff 100644 --- a/notebook/agentchat_compression.ipynb +++ b/notebook/agentchat_compression.ipynb @@ -4,23 +4,22 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "\"Open" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Auto Generated Agent Chat: Conversations with Chat History Compression Enabled (Experimental)\n", + "# Conversations with Chat History Compression Enabled\n", + "\n", + "**CompressibleAgent will be deprecated.** \n", + "\n", + "Refer to https://github.com/microsoft/autogen/blob/main/notebook/agentchat_capability_long_context_handling.ipynb for long context handling capability.\n", "\n", "AutoGen offers conversable agents powered by LLM, tools, or humans, which can be used to perform tasks collectively via automated chat. This framework allows tool use and human participance through multi-agent conversation. Please find documentation about this feature [here](https://microsoft.github.io/autogen/docs/Use-Cases/agent_chat).\n", "\n", "In this notebook, we demonstrate how to enable compression of history messages using the `CompressibleAgent`. While this agent retains all the default functionalities of the `AssistantAgent`, it also provides the added feature of compression when activated through the `compress_config` setting.\n", "\n", "Different compression modes are supported:\n", + "\n", "1. `compress_config=False` (Default): `CompressibleAgent` is equivalent to `AssistantAgent`.\n", "2. `compress_config=True` or `compress_config={\"mode\": \"TERMINATE\"}`: no compression will be performed. However, we will count token usage before sending requests to the OpenAI model. The conversation will be terminated directly if the total token usage exceeds the maximum token usage allowed by the model (to avoid the token limit error from OpenAI API).\n", - "3. `compress_config={\"mode\": \"COMPRESS\", \"trigger_count\": }, \"leave_last_n\": `: compression is enabled.\n", + "3. `compress_config={\"mode\": \"COMPRESS\", \"trigger_count\": , \"leave_last_n\": }`: compression is enabled.\n", + "\n", " ```python\n", " # default compress_config\n", " compress_config = {\n", @@ -34,12 +33,13 @@ " \"verbose\": False, # if True, print out the content to be compressed and the compressed content\n", " }\n", " ```\n", + "\n", " Currently, our compression logic is as follows:\n", " 1. We will always leave the first user message (as well as system prompts) and compress the rest of the history messages.\n", " 2. You can choose to not compress the last n messages in the history with \"leave_last_n\".\n", " 2. The summary is performed on a per-message basis, with the role of the messages (See compressed content in the example below).\n", "\n", - "4. `compress_config={\"mode\": \"CUSTOMIZED\", \"compress_function\": }`: the `compress_function` function will be called on trigger count. The function should accept a list of messages as input and return a tuple of (is_success: bool, compressed_messages: List[Dict]). The whole message history (except system prompt) will be passed.\n", + "4. `compress_config={\"mode\": \"CUSTOMIZED\", \"compress_function\": }t`: the `compress_function` function will be called on trigger count. The function should accept a list of messages as input and return a tuple of (is_success: bool, compressed_messages: List[Dict]). The whole message history (except system prompt) will be passed.\n", "\n", "\n", "By adjusting `trigger_count`, you can decide when to compress the history messages based on existing tokens. If this is a float number between 0 and 1, it is interpreted as a ratio of max tokens allowed by the model. For example, the AssistantAgent uses gpt-4 with max tokens 8192, the trigger_count = 0.7 * 8192 = 5734.4 -> 5734. Do not set `trigger_count` to the max tokens allowed by the model, since the same LLM is employed for compression and it needs tokens to generate the compressed content. \n", @@ -52,19 +52,16 @@ "\n", "## Requirements\n", "\n", - "AutoGen requires `Python>=3.8`. To run this notebook example, please install:\n", + "````{=mdx}\n", + ":::info Requirements\n", + "Install `pyautogen`:\n", "```bash\n", "pip install pyautogen\n", - "```" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "# %pip install pyautogen~=0.1.0" + "```\n", + "\n", + "For more information, please refer to the [installation guide](/docs/installation/).\n", + ":::\n", + "````" ] }, { @@ -78,7 +75,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -92,7 +89,7 @@ "config_list = autogen.config_list_from_json(\n", " \"OAI_CONFIG_LIST\",\n", " filter_dict={\n", - " \"model\": [\"gpt-4\", \"gpt-4-0314\", \"gpt4\", \"gpt-4-32k\", \"gpt-4-32k-0314\", \"gpt-4-32k-v0314\"],\n", + " \"model\": [\"gpt-4-1106-preview\"],\n", " },\n", ")" ] @@ -101,35 +98,11 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "It first looks for environment variable \"OAI_CONFIG_LIST\" which needs to be a valid json string. If that variable is not found, it then looks for a json file named \"OAI_CONFIG_LIST\". It filters the configs by models (you can filter by other keys as well).\n", - "\n", - "The config list looks like the following:\n", - "```python\n", - "config_list = [\n", - " {\n", - " 'model': 'gpt-4',\n", - " 'api_key': '',\n", - " },\n", - " {\n", - " 'model': 'gpt-4',\n", - " 'api_key': '',\n", - " 'base_url': '',\n", - " 'api_type': 'azure',\n", - " 'api_version': '2024-02-15-preview',\n", - " },\n", - " {\n", - " 'model': 'gpt-4-32k',\n", - " 'api_key': '',\n", - " 'base_url': '',\n", - " 'api_type': 'azure',\n", - " 'api_version': '2024-02-15-preview',\n", - " },\n", - "]\n", - "```\n", - "\n", - "If you open this notebook in colab, you can upload your files by clicking the file icon on the left panel and then choose \"upload file\" icon.\n", - "\n", - "You can set the value of config_list in other ways you prefer, e.g., loading from a YAML file." + "````{=mdx}\n", + ":::tip\n", + "Learn more about configuring LLMs for agents [here](/docs/topics/llm_configuration).\n", + ":::\n", + "````" ] }, { @@ -139,13 +112,15 @@ "## Example 1\n", "This example is from [agentchat_MathChat.ipynb](https://github.com/microsoft/autogen/blob/main/notebook/agentchat_MathChat.ipynb). Compression with code execution.\n", "\n", + "You must set the `model` field in `llm_config`, as it will be used to calculate the token usage.\n", + "\n", "Note: we set `trigger_count=600`, and `leave_last_n=2`. In this example, we set a low trigger_count to demonstrate the compression feature. \n", - "The token count after compression is still bigger than trigger count, mainly because the trigger count is low an the first and last 2 messages are not compressed. Thus, the compression is performed at each turn. In practice, you want to adjust the trigger_count to a bigger number and properly set the `leave_last_n` to avoid compression at each turn. " + "The token count after compression is still bigger than trigger count, mainly because the trigger count is low an the first and last 2 messages are not compressed. Thus, the compression is performed at each turn. In practice, you want to adjust the trigger_count to a bigger number and properly set the `leave_last_n` to avoid compression at each turn. \n" ] }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 3, "metadata": {}, "outputs": [ { @@ -181,55 +156,37 @@ "--------------------------------------------------------------------------------\n", "\u001b[33massistant\u001b[0m (to mathproxyagent):\n", "\n", - "First, we need to consider both sides of the inequality as two separate equations. Then subtract one from the other to set this result equal to zero. This would allow us to find the critical points, i.e., the places where the inequality changes its nature (from less to more or vice versa). Then we find the intervals.\n", + "Key Idea:\n", + "To solve this inequality $(2x + 10)(x + 3) < (3x + 9)(x + 8)$, we'll first expand both sides of the inequality, then collect all terms on one side to form a quadratic inequality. After simplifying, we will factor the quadratic expression if possible. Then, we'll determine the critical points of the inequality by setting the factors to zero. Finally, we'll use a sign chart or test values within intervals determined by the critical points to find the intervals where the original inequality is satisfied.\n", "\n", - "Here's how you can solve this problem in Python:\n", + "Case 1 applies here, so I will write a Python program using sympy that simplifies the inequality, factors the resulting expression, solves for the critical points, and then determines the intervals where the inequality holds true.\n", "\n", "```python\n", - "from sympy import *\n", - "from sympy.abc import x\n", - "\n", - "# define the equation\n", - "equation = (2*x+10)*(x+3) - (3*x+9)*(x+8)\n", + "from sympy import symbols, solve, simplify\n", "\n", - "# set the equation equal to zero to find the critical points\n", - "critical_points = solve(equation, x)\n", + "# Define the variable\n", + "x = symbols('x')\n", "\n", - "# Sort the critical_points\n", - "critical_points = sorted(critical_points)\n", + "# Given inequality\n", + "lhs = (2*x + 10)*(x + 3)\n", + "rhs = (3*x + 9)*(x + 8)\n", "\n", - "# define a function to test the intervals\n", - "def test_intervals(interval):\n", - " test_num = sum(interval)/2 # get the mid point of the interval\n", - " return equation.subs(x, test_num)\n", + "# Move all terms to one side of the inequality\n", + "inequality = simplify(lhs - rhs) < 0\n", "\n", - "# define the intervals based on the critical points\n", - "intervals = [(-oo, critical_points[0]), (critical_points[0], critical_points[1]), (critical_points[1], oo)]\n", + "# Solve the inequality\n", + "solutions = solve(inequality, x)\n", "\n", - "solution = []\n", - "\n", - "# loop through the intervals, if the result is less than zero, it means it's a valid interval\n", - "for i in intervals:\n", - " if test_intervals(i) < 0:\n", - " solution.append(i)\n", - "\n", - "# print the solution in interval notation\n", - "for interval in solution:\n", - " print(interval)\n", + "# Print the solution using interval notation\n", + "print(solutions)\n", "```\n", "\n", - "Replace oo with infinity when interpreting the result. Also, keep in mind that in interval notation, parentheses denote that the endpoint is not included in the set, and brackets denote that the end point is included in the set. Thus, (a, b) means \"greater than a and less than b\", [a, b] means \"greater than or equal to a and less than or equal to b\".\n", + "Running this code will provide us with the solution in interval notation. We'll express the final answer in the requested format afterward.\n", "\n", "--------------------------------------------------------------------------------\n", "\u001b[33mmathproxyagent\u001b[0m (to assistant):\n", "\n", - "Error: Traceback (most recent call last):\n", - " File \"\", line 25, in \n", - " if test_intervals(i) < 0:\n", - " return func(self, other)\n", - " return StrictLessThan(self, other)\n", - " raise TypeError(\"Invalid NaN comparison\")\n", - "TypeError: Invalid NaN comparison\n", + "((-oo < x) & (x < -14)) | ((-3 < x) & (x < oo))\n", "\n", "--------------------------------------------------------------------------------\n" ] @@ -247,296 +204,26 @@ "text": [ "\u001b[33massistant\u001b[0m (to mathproxyagent):\n", "\n", - "I apologize for the oversight. It seems like the function is returning NaN error. Because we are dealing with real numbers, NaN (Not a Number) error could arise from operations that don't return a defined real number. \n", - "\n", - "However, in this case, we it seems there's a problem with the comparison of symbolic terms with zero in the function test_intervals.\n", - "\n", - "Let's correct this approach. The error arises from trying to compare a symbolic expression to zero directly. Instead, we can create a numeric function from our symbolic expression, and use this function to test the intervals. \n", - "\n", - "Here is the revised code:\n", - "\n", - "```python\n", - "from sympy import *\n", - "from sympy.abc import x\n", - "\n", - "# define the equation\n", - "equation = expand((2*x+10)*(x+3) - (3*x+9)*(x+8))\n", - "\n", - "# set the equation equal to zero to find the critical points\n", - "critical_points = solve(equation, x)\n", - "\n", - "# Convert the points to standard python floats, so that they can be sorted numerically\n", - "critical_points = [N(i) for i in critical_points]\n", - "\n", - "# Sort the critical_points\n", - "critical_points = sorted(critical_points)\n", - "\n", - "# define a function to test the intervals\n", - "def test_intervals(interval):\n", - " test_num = N(sum(interval)/2) # get the mid point of the interval\n", - " return equation.subs(x, test_num)\n", - "\n", - "# define the intervals based on the critical points\n", - "intervals = [(-oo, critical_points[0]), (critical_points[0], critical_points[1]), (critical_points[1], oo)]\n", - "\n", - "# Now, let's create a numeric function from this symbolic equation\n", - "numeric_equation = lambdify(x, equation)\n", - "\n", - "solution = []\n", - "\n", - "# loop through the intervals, first find the mid point of each interval, \n", - "# then if numeric result for this mid point is less than zero, it means it's a valid interval\n", - "for interval in intervals:\n", - " mid_point = sum(interval) / 2 \n", - " if numeric_equation(mid_point) < 0:\n", - " solution.append(interval)\n", - "\n", - "# print the solution in interval notation\n", - "for interval in solution:\n", - " print(interval)\n", - "```\n", - "\n", - "Remember to replace `oo` with infinity while interpreting the output.\n", - "\n", - "--------------------------------------------------------------------------------\n", - "\u001b[33mmathproxyagent\u001b[0m (to assistant):\n", - "\n", - "Error: Traceback (most recent call last):\n", - " File \"\", line 36, in \n", - " if numeric_equation(mid_point) < 0:\n", - " return func(self, other)\n", - " return StrictLessThan(self, other)\n", - " raise TypeError(\"Invalid NaN comparison\")\n", - "TypeError: Invalid NaN comparison\n", - "\n", - "--------------------------------------------------------------------------------\n", - "\u001b[35m******************************Start compressing the following content:******************************\u001b[0m\n", - "To be compressed:\n", - "##ASSISTANT## First, we need to consider both sides of the inequality as two separate equations. Then subtract one from the other to set this result equal to zero. This would allow us to find the critical points, i.e., the places where the inequality changes its nature (from less to more or vice versa). Then we find the intervals.\n", - "\n", - "Here's how you can solve this problem in Python:\n", - "\n", - "```python\n", - "from sympy import *\n", - "from sympy.abc import x\n", - "\n", - "# define the equation\n", - "equation = (2*x+10)*(x+3) - (3*x+9)*(x+8)\n", - "\n", - "# set the equation equal to zero to find the critical points\n", - "critical_points = solve(equation, x)\n", - "\n", - "# Sort the critical_points\n", - "critical_points = sorted(critical_points)\n", - "\n", - "# define a function to test the intervals\n", - "def test_intervals(interval):\n", - " test_num = sum(interval)/2 # get the mid point of the interval\n", - " return equation.subs(x, test_num)\n", - "\n", - "# define the intervals based on the critical points\n", - "intervals = [(-oo, critical_points[0]), (critical_points[0], critical_points[1]), (critical_points[1], oo)]\n", - "\n", - "solution = []\n", - "\n", - "# loop through the intervals, if the result is less than zero, it means it's a valid interval\n", - "for i in intervals:\n", - " if test_intervals(i) < 0:\n", - " solution.append(i)\n", - "\n", - "# print the solution in interval notation\n", - "for interval in solution:\n", - " print(interval)\n", - "```\n", - "\n", - "Replace oo with infinity when interpreting the result. Also, keep in mind that in interval notation, parentheses denote that the endpoint is not included in the set, and brackets denote that the end point is included in the set. Thus, (a, b) means \"greater than a and less than b\", [a, b] means \"greater than or equal to a and less than or equal to b\".\n", - "##USER## Error: Traceback (most recent call last):\n", - " File \"\", line 25, in \n", - " if test_intervals(i) < 0:\n", - " return func(self, other)\n", - " return StrictLessThan(self, other)\n", - " raise TypeError(\"Invalid NaN comparison\")\n", - "TypeError: Invalid NaN comparison\n", - "\n", - "\u001b[35m******************************Content after compressing:******************************\u001b[0m\n", - "##ASSISTANT##\n", - "The assistant provides instructions to solve an inequality, which involves considering separate equations for the inequality components, finding the differing point (set to zero), identifying critical points (where nature of inequality changes), and determining the intervals. \n", - "\n", - "They also share Python code for the process, using sympy library. Steps include defining the equation, finding critical points by setting equation to zero, sorting these points, defining a function to test the intervals, determining intervals based on critical points, and looping through intervals to identify valid solutions. The assistant defines 'oo' as infinity and clarifies the use of parentheses and brackets to denote exclusion or inclusion of endpoints in interval notation.\n", - "\n", - "##CODE##\n", - "Python script to solve the given inequality and display the solution using interval notation.\n", - "\n", - "##USER##\n", - "User encounters 'TypeError: Invalid NaN comparison', indicating there's an error when comparing a test interval to zero in the Python script shared by the assistant.\n", - " \u001b[35m\n", - "********************************************************************************\u001b[0m\n", - "\u001b[35mToken Count (including 13 tokens from system msg and function descriptions). Before compression : 1294 | After: 1045\u001b[0m\n", - "--------------------------------------------------------------------------------\n", - "\u001b[33massistant\u001b[0m (to mathproxyagent):\n", - "\n", - "I apologize for the confusion. There's an error with the calculation of mid_point when the interval is from negative infinity to a real number or a real number to infinity. In these circumstances, the calculation will return a NaN which cannot be used in comparison. We could handle these issues specifically.\n", - "\n", - "Let's refine the script:\n", - "\n", - "```python\n", - "from sympy import *\n", - "from sympy.abc import x\n", - "\n", - "# define the equation\n", - "equation = expand((2*x+10)*(x+3) - (3*x+9)*(x+8))\n", - "\n", - "# set the equation equal to zero to find the critical points\n", - "critical_points = solve(equation, x)\n", - "\n", - "# Convert the points to standard python floats, so that they can be sorted numerically\n", - "critical_points = [N(i) for i in critical_points]\n", + "The solution obtained from running the Python code suggests that the values of $x$ that satisfy the inequality $(2x + 10)(x + 3) < (3x + 9)(x + 8)$ are in the intervals $(-\\infty, -14)$ and $(-3, \\infty)$.\n", "\n", - "# Sort the critical_points\n", - "critical_points = sorted(critical_points)\n", + "Therefore, the answer in interval notation is:\n", "\n", - "# Now, let's create a numeric function from this symbolic equation\n", - "numeric_equation = lambdify(x, equation)\n", - "\n", - "solution = []\n", - "\n", - "# Define the intervals based on the critical points\n", - "intervals = [(-oo, critical_points[0]), (critical_points[0], critical_points[1]), (critical_points[1], oo)]\n", - "\n", - "# Loop through the intervals and compute the mid point of each interval\n", - "# If the mid point is NaN (occurs when dealing with infinity), then specific values are used for testing\n", - "for interval in intervals:\n", - " if interval[0] == -oo:\n", - " test_value = interval[1] - 1\n", - " elif interval[1] == oo:\n", - " test_value = interval[0] + 1\n", - " else:\n", - " test_value = sum(interval) / 2\n", - "\n", - " # If numeric result for test_value is less than zero, it's a valid interval\n", - " if numeric_equation(test_value) < 0:\n", - " solution.append(interval)\n", - "\n", - "# Print out the solution intervals\n", - "for interval in solution:\n", - " print(interval)\n", - "```\n", - "\n", - "The script now handles the special cases when dealing with infinity and should return the valid intervals.\n", - "\n", - "--------------------------------------------------------------------------------\n", - "\u001b[33mmathproxyagent\u001b[0m (to assistant):\n", - "\n", - "(-oo, -14.0000000000000)\n", - "(-3.00000000000000, oo)\n", - "\n", - "--------------------------------------------------------------------------------\n", - "\u001b[35m******************************Start compressing the following content:******************************\u001b[0m\n", - "To be compressed:\n", - "##ASSISTANT##\n", - "The assistant provides instructions to solve an inequality, which involves considering separate equations for the inequality components, finding the differing point (set to zero), identifying critical points (where nature of inequality changes), and determining the intervals. \n", - "\n", - "They also share Python code for the process, using sympy library. Steps include defining the equation, finding critical points by setting equation to zero, sorting these points, defining a function to test the intervals, determining intervals based on critical points, and looping through intervals to identify valid solutions. The assistant defines 'oo' as infinity and clarifies the use of parentheses and brackets to denote exclusion or inclusion of endpoints in interval notation.\n", - "\n", - "##CODE##\n", - "Python script to solve the given inequality and display the solution using interval notation.\n", - "\n", - "##USER##\n", - "User encounters 'TypeError: Invalid NaN comparison', indicating there's an error when comparing a test interval to zero in the Python script shared by the assistant.\n", - "\n", - "##ASSISTANT## I apologize for the oversight. It seems like the function is returning NaN error. Because we are dealing with real numbers, NaN (Not a Number) error could arise from operations that don't return a defined real number. \n", - "\n", - "However, in this case, we it seems there's a problem with the comparison of symbolic terms with zero in the function test_intervals.\n", - "\n", - "Let's correct this approach. The error arises from trying to compare a symbolic expression to zero directly. Instead, we can create a numeric function from our symbolic expression, and use this function to test the intervals. \n", - "\n", - "Here is the revised code:\n", - "\n", - "```python\n", - "from sympy import *\n", - "from sympy.abc import x\n", - "\n", - "# define the equation\n", - "equation = expand((2*x+10)*(x+3) - (3*x+9)*(x+8))\n", - "\n", - "# set the equation equal to zero to find the critical points\n", - "critical_points = solve(equation, x)\n", - "\n", - "# Convert the points to standard python floats, so that they can be sorted numerically\n", - "critical_points = [N(i) for i in critical_points]\n", - "\n", - "# Sort the critical_points\n", - "critical_points = sorted(critical_points)\n", - "\n", - "# define a function to test the intervals\n", - "def test_intervals(interval):\n", - " test_num = N(sum(interval)/2) # get the mid point of the interval\n", - " return equation.subs(x, test_num)\n", - "\n", - "# define the intervals based on the critical points\n", - "intervals = [(-oo, critical_points[0]), (critical_points[0], critical_points[1]), (critical_points[1], oo)]\n", - "\n", - "# Now, let's create a numeric function from this symbolic equation\n", - "numeric_equation = lambdify(x, equation)\n", - "\n", - "solution = []\n", - "\n", - "# loop through the intervals, first find the mid point of each interval, \n", - "# then if numeric result for this mid point is less than zero, it means it's a valid interval\n", - "for interval in intervals:\n", - " mid_point = sum(interval) / 2 \n", - " if numeric_equation(mid_point) < 0:\n", - " solution.append(interval)\n", - "\n", - "# print the solution in interval notation\n", - "for interval in solution:\n", - " print(interval)\n", - "```\n", - "\n", - "Remember to replace `oo` with infinity while interpreting the output.\n", - "##USER## Error: Traceback (most recent call last):\n", - " File \"\", line 36, in \n", - " if numeric_equation(mid_point) < 0:\n", - " return func(self, other)\n", - " return StrictLessThan(self, other)\n", - " raise TypeError(\"Invalid NaN comparison\")\n", - "TypeError: Invalid NaN comparison\n", - "\n", - "\u001b[35m******************************Content after compressing:******************************\u001b[0m\n", - "##ASSISTANT##\n", - "The assistant provides steps to solve an inequality, including considering separate equations, finding the differing point (set to zero), identifying critical points, and determining intervals. They provide Python code using sympy for the process, defining 'oo' as infinity and explaining usage of parentheses and brackets in interval notation. \n", - "\n", - "##CODE##\n", - "The assistant provides Python code for solving an inequality and displaying the solution in interval notation.\n", - "\n", - "##USER##\n", - "The user reports encountering a 'TypeError: Invalid NaN comparison' when comparing a test interval to zero in the script provided by the assistant.\n", - "\n", - "##ASSISTANT##\n", - "The assistant apologizes for the oversight and suggests the issue might lie in the comparison of symbolic terms with zero. The assistant then provides revised code, explaining it creates a numeric function from the symbolic expression to test the intervals. It's highlighted to replace 'oo' with infinity when interpreting the output.\n", - "\n", - "##CODE##\n", - "Revised Python code is given by the assistant to solve a TypeError that occurred in the initial code.\n", - "\n", - "##USER##\n", - "The user reports another TypeError ('Invalid NaN comparison') when executing the revised code provided by the assistant. \u001b[35m\n", - "********************************************************************************\u001b[0m\n", - "\u001b[35mToken Count (including 13 tokens from system msg and function descriptions). Before compression : 1494 | After: 1013\u001b[0m\n", - "--------------------------------------------------------------------------------\n", - "\u001b[33massistant\u001b[0m (to mathproxyagent):\n", - "\n", - "Great! You have got the correct answer.\n", - "\n", - "So, for $x$ in the interval $(-\\infty, -14]$ and $(-3, +\\infty)$, the inequality $(2x+10)(x+3)<(3x+9)(x+8)$ is satisfied. \n", - "\n", - "In interval notation, this result can be written as $(-\\infty, -14] \\cup (-3, +\\infty)$.\n", - "\n", - "The final answer is:\n", - "\n", - "\\boxed{(-\\infty, -14] \\cup (-3, +\\infty)}\n", + "$$\n", + "\\boxed{(-\\infty, -14) \\cup (-3, \\infty)}\n", + "$$\n", "\n", "--------------------------------------------------------------------------------\n" ] + }, + { + "data": { + "text/plain": [ + "ChatResult(chat_id=None, chat_history=[{'content': \"Let's use Python to solve a math problem.\\n\\nQuery requirements:\\nYou should always use the 'print' function for the output and use fractions/radical forms instead of decimals.\\nYou can use packages like sympy to help you.\\nYou must follow the formats below to write your code:\\n```python\\n# your code\\n```\\n\\nFirst state the key idea to solve the problem. You may choose from three ways to solve the problem:\\nCase 1: If the problem can be solved with Python code directly, please write a program to solve it. You can enumerate all possible arrangements if needed.\\nCase 2: If the problem is mostly reasoning, you can solve it by yourself directly.\\nCase 3: If the problem cannot be handled in the above two ways, please follow this process:\\n1. Solve the problem step by step (do not over-divide the steps).\\n2. Take out any queries that can be asked through Python (for example, any calculations or equations that can be calculated).\\n3. Wait for me to give the results.\\n4. Continue if you think the result is correct. If the result is invalid or unexpected, please correct your query or reasoning.\\n\\nAfter all the queries are run and you get the answer, put the answer in \\\\boxed{}.\\n\\nProblem:\\nFind all $x$ that satisfy the inequality $(2x+10)(x+3)<(3x+9)(x+8)$. Express your answer in interval notation.\", 'role': 'assistant'}, {'content': \"Key Idea:\\nTo solve this inequality $(2x + 10)(x + 3) < (3x + 9)(x + 8)$, we'll first expand both sides of the inequality, then collect all terms on one side to form a quadratic inequality. After simplifying, we will factor the quadratic expression if possible. Then, we'll determine the critical points of the inequality by setting the factors to zero. Finally, we'll use a sign chart or test values within intervals determined by the critical points to find the intervals where the original inequality is satisfied.\\n\\nCase 1 applies here, so I will write a Python program using sympy that simplifies the inequality, factors the resulting expression, solves for the critical points, and then determines the intervals where the inequality holds true.\\n\\n```python\\nfrom sympy import symbols, solve, simplify\\n\\n# Define the variable\\nx = symbols('x')\\n\\n# Given inequality\\nlhs = (2*x + 10)*(x + 3)\\nrhs = (3*x + 9)*(x + 8)\\n\\n# Move all terms to one side of the inequality\\ninequality = simplify(lhs - rhs) < 0\\n\\n# Solve the inequality\\nsolutions = solve(inequality, x)\\n\\n# Print the solution using interval notation\\nprint(solutions)\\n```\\n\\nRunning this code will provide us with the solution in interval notation. We'll express the final answer in the requested format afterward.\", 'role': 'user'}, {'content': '((-oo < x) & (x < -14)) | ((-3 < x) & (x < oo))', 'role': 'assistant'}, {'content': 'The solution obtained from running the Python code suggests that the values of $x$ that satisfy the inequality $(2x + 10)(x + 3) < (3x + 9)(x + 8)$ are in the intervals $(-\\\\infty, -14)$ and $(-3, \\\\infty)$.\\n\\nTherefore, the answer in interval notation is:\\n\\n$$\\n\\\\boxed{(-\\\\infty, -14) \\\\cup (-3, \\\\infty)}\\n$$', 'role': 'user'}], summary='The solution obtained from running the Python code suggests that the values of $x$ that satisfy the inequality $(2x + 10)(x + 3) < (3x + 9)(x + 8)$ are in the intervals $(-\\\\infty, -14)$ and $(-3, \\\\infty)$.\\n\\nTherefore, the answer in interval notation is:\\n\\n$$\\n\\\\boxed{(-\\\\infty, -14) \\\\cup (-3, \\\\infty)}\\n$$', cost=({'total_cost': 0.052199999999999996, 'gpt-4': {'cost': 0.052199999999999996, 'prompt_tokens': 954, 'completion_tokens': 393, 'total_tokens': 1347}}, {'total_cost': 0.052199999999999996, 'gpt-4': {'cost': 0.052199999999999996, 'prompt_tokens': 954, 'completion_tokens': 393, 'total_tokens': 1347}}), human_input=[])" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" } ], "source": [ @@ -548,6 +235,7 @@ " \"timeout\": 600,\n", " \"cache_seed\": 42,\n", " \"config_list\": config_list,\n", + " \"model\": \"gpt-4-1106-preview\", # you must set the model field in llm_config, as it will be used to calculate the token usage.\n", " },\n", " compress_config={\n", " \"mode\": \"COMPRESS\",\n", @@ -569,7 +257,7 @@ "math_problem = (\n", " \"Find all $x$ that satisfy the inequality $(2x+10)(x+3)<(3x+9)(x+8)$. Express your answer in interval notation.\"\n", ")\n", - "mathproxyagent.initiate_chat(assistant, problem=math_problem)" + "mathproxyagent.initiate_chat(assistant, message=mathproxyagent.message_generator, problem=math_problem)" ] }, { @@ -582,7 +270,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 4, "metadata": {}, "outputs": [ { @@ -599,37 +287,7 @@ "\u001b[32m***** Suggested function Call: python *****\u001b[0m\n", "Arguments: \n", "{\n", - " \"cell\": \n", - " \"import matplotlib.pyplot as plt\n", - "\n", - " # Define agent texts\n", - " agent1_texts = ['Hello there!', 'Nice to meet you.', 'How can I assist you?']\n", - " agent2_texts = ['Hey!', 'Nice meeting you too.', 'Could you help me solve a problem?']\n", - "\n", - " # Define agent y positions\n", - " agent1_y = [3, 2, 1]\n", - " agent2_y = [3, 2, 1]\n", - "\n", - " # Create figure and axis\n", - " fig, ax = plt.subplots()\n", - "\n", - " # Plot Agent 1 texts\n", - " for i, text in enumerate(agent1_texts):\n", - " ax.text(0, agent1_y[i], text, fontsize=12, ha='right')\n", - "\n", - " # Plot Agent 2 texts\n", - " for i, text in enumerate(agent2_texts):\n", - " ax.text(1, agent2_y[i], text, fontsize=12, ha='left')\n", - "\n", - " # Set plot attributes\n", - " ax.set_xlim(-0.5, 1.5)\n", - " ax.set_ylim(0, 4)\n", - " ax.set_xticks([0, 1])\n", - " ax.set_xticklabels(['Agent 1', 'Agent 2'])\n", - " ax.set_yticks([])\n", - " ax.spines['top'].set_visible(False)\n", - " ax.spines['right'].set_visible(False)\n", - " ax.spines['bottom'].set_visible(False)\"\n", + " \"cell\": \"import matplotlib.pyplot as plt\\nimport numpy as np\\n\\nfig, ax = plt.subplots()\\n\\n# Define the agents as circles\\nagent1 = plt.Circle((0.4, 0.5), 0.1, color='blue')\\nagent2 = plt.Circle((0.6, 0.5), 0.1, color='red')\\n\\n# Draw the agents\\nax.add_artist(agent1)\\nax.add_artist(agent2)\\n\\n# Example dialog boxes\\nplt.text(0.28, 0.6, \\\"Hello!\\\", fontsize=12, bbox=dict(facecolor='white', alpha=0.5))\\nplt.text(0.58, 0.6, \\\"Hi there!\\\", fontsize=12, bbox=dict(facecolor='white', alpha=0.5))\\n\\n# Set the limits and remove axes\\nax.set_xlim(0, 1)\\nax.set_ylim(0, 1)\\nax.axis('off')\\n\"\n", "}\n", "\u001b[32m*******************************************\u001b[0m\n", "\n", @@ -639,72 +297,18 @@ ] }, { - "ename": "IndentationError", - "evalue": "unexpected indent (1440792568.py, line 4)", - "output_type": "error", - "traceback": [ - "\u001b[0;36m Cell \u001b[0;32mIn[3], line 4\u001b[0;36m\u001b[0m\n\u001b[0;31m agent1_texts = ['Hello there!', 'Nice to meet you.', 'How can I assist you?']\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mIndentationError\u001b[0m\u001b[0;31m:\u001b[0m unexpected indent\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\u001b[33muser_proxy\u001b[0m (to chatbot):\n", - "\n", - "\u001b[32m***** Response from calling function \"python\" *****\u001b[0m\n", - "None\n", - "unexpected indent (1440792568.py, line 4)\n", - "\u001b[32m***************************************************\u001b[0m\n", - "\n", - "--------------------------------------------------------------------------------\n", - "\u001b[33mchatbot\u001b[0m (to user_proxy):\n", - "\n", - "\u001b[32m***** Suggested function Call: python *****\u001b[0m\n", - "Arguments: \n", - "{\n", - " \"cell\": \n", - " \"import matplotlib.pyplot as plt\n", - "\n", - "# Define agent texts\n", - "agent1_texts = ['Hello there!', 'Nice to meet you.', 'How can I assist you?']\n", - "agent2_texts = ['Hey!', 'Nice meeting you too.', 'Could you help me solve a problem?']\n", - "\n", - "# Define agent y positions\n", - "agent1_y = [3, 2, 1]\n", - "agent2_y = [3, 2, 1]\n", - "\n", - "# Create figure and axis\n", - "fig, ax = plt.subplots()\n", - "\n", - "# Plot Agent 1 texts\n", - "for i, text in enumerate(agent1_texts):\n", - " ax.text(0, agent1_y[i], text, fontsize=12, ha='right')\n", - "\n", - "# Plot Agent 2 texts\n", - "for i, text in enumerate(agent2_texts):\n", - " ax.text(1, agent2_y[i], text, fontsize=12, ha='left')\n", - "\n", - "# Set plot attributes\n", - "ax.set_xlim(-0.5, 1.5)\n", - "ax.set_ylim(0, 4)\n", - "ax.set_xticks([0, 1])\n", - "ax.set_xticklabels(['Agent 1', 'Agent 2'])\n", - "ax.set_yticks([])\n", - "ax.spines['top'].set_visible(False)\n", - "ax.spines['right'].set_visible(False)\n", - "ax.spines['bottom'].set_visible(False)\"\n", - "}\n", - "\u001b[32m*******************************************\u001b[0m\n", - "\n", - "--------------------------------------------------------------------------------\n", - "\u001b[35m\n", - ">>>>>>>> EXECUTING FUNCTION python...\u001b[0m\n" - ] + "data": { + "text/plain": [ + "(0.0, 1.0, 0.0, 1.0)" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" }, { "data": { - "image/png": "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", + "image/png": "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", "text/plain": [ "
" ] @@ -719,61 +323,19 @@ "\u001b[33muser_proxy\u001b[0m (to chatbot):\n", "\n", "\u001b[32m***** Response from calling function \"python\" *****\u001b[0m\n", - "None\n", + "(0.0, 1.0, 0.0, 1.0)\n", "\u001b[32m***************************************************\u001b[0m\n", "\n", "--------------------------------------------------------------------------------\n", - "\u001b[35m******************************Start compressing the following content:******************************\u001b[0m\n", - "To be compressed:\n", - "##FUNCTION_CALL## \n", - "Name: python\n", - "Args: {\n", - " \"cell\": \n", - " \"import matplotlib.pyplot as plt\n", - "\n", - " # Define agent texts\n", - " agent1_texts = ['Hello there!', 'Nice to meet you.', 'How can I assist you?']\n", - " agent2_texts = ['Hey!', 'Nice meeting you too.', 'Could you help me solve a problem?']\n", - "\n", - " # Define agent y positions\n", - " agent1_y = [3, 2, 1]\n", - " agent2_y = [3, 2, 1]\n", - "\n", - " # Create figure and axis\n", - " fig, ax = plt.subplots()\n", - "\n", - " # Plot Agent 1 texts\n", - " for i, text in enumerate(agent1_texts):\n", - " ax.text(0, agent1_y[i], text, fontsize=12, ha='right')\n", - "\n", - " # Plot Agent 2 texts\n", - " for i, text in enumerate(agent2_texts):\n", - " ax.text(1, agent2_y[i], text, fontsize=12, ha='left')\n", - "\n", - " # Set plot attributes\n", - " ax.set_xlim(-0.5, 1.5)\n", - " ax.set_ylim(0, 4)\n", - " ax.set_xticks([0, 1])\n", - " ax.set_xticklabels(['Agent 1', 'Agent 2'])\n", - " ax.set_yticks([])\n", - " ax.spines['top'].set_visible(False)\n", - " ax.spines['right'].set_visible(False)\n", - " ax.spines['bottom'].set_visible(False)\"\n", - "}\n", - "##FUNCTION_RETURN## (from function \"python\"): \n", - "None\n", - "unexpected indent (1440792568.py, line 4)\n", - "\n", - "\u001b[35m******************************Content after compressing:******************************\u001b[0m\n", - "##FUNCTION_CALL##\n", - "Name: python\n", - "Args: Executing a block of Python code that imports the matplotlib.pyplot library for graphing and plotting. It defines texts for two agents and sets y positions. It also creates a figure and plots the agent texts on a graph with specific attributes.\n", - " \n", - "##FUNCTION_RETURN## (from function \"python\"):\n", - "None. Execution failed due to an unexpected indentation error at line 4.\n", - " \u001b[35m\n", - "********************************************************************************\u001b[0m\n", - "\u001b[35mToken Count (including 107 tokens from system msg and function descriptions). Before compression : 821 | After: 564\u001b[0m\n", + "\u001b[33mchatbot\u001b[0m (to user_proxy):\n", + "\n", + "The two agents have been drawn, each represented as a circle, and an example of their dialogue is displayed above them. Since `plt.show()` was not to be included, the plot is not displayed here, but the agents along with their dialogue would appear within the figure's coordinate system, which extends from 0 to 1 on both the x and y axes.\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33muser_proxy\u001b[0m (to chatbot):\n", + "\n", + "\n", + "\n", "--------------------------------------------------------------------------------\n", "\u001b[33mchatbot\u001b[0m (to user_proxy):\n", "\n", @@ -781,10 +343,21 @@ "\n", "--------------------------------------------------------------------------------\n" ] + }, + { + "data": { + "text/plain": [ + "ChatResult(chat_id=None, chat_history=[{'content': \"Draw two agents chatting with each other with an example dialog. Don't add plt.show().\", 'role': 'assistant'}, {'function_call': {'arguments': '{\\n \"cell\": \"import matplotlib.pyplot as plt\\\\nimport numpy as np\\\\n\\\\nfig, ax = plt.subplots()\\\\n\\\\n# Define the agents as circles\\\\nagent1 = plt.Circle((0.4, 0.5), 0.1, color=\\'blue\\')\\\\nagent2 = plt.Circle((0.6, 0.5), 0.1, color=\\'red\\')\\\\n\\\\n# Draw the agents\\\\nax.add_artist(agent1)\\\\nax.add_artist(agent2)\\\\n\\\\n# Example dialog boxes\\\\nplt.text(0.28, 0.6, \\\\\"Hello!\\\\\", fontsize=12, bbox=dict(facecolor=\\'white\\', alpha=0.5))\\\\nplt.text(0.58, 0.6, \\\\\"Hi there!\\\\\", fontsize=12, bbox=dict(facecolor=\\'white\\', alpha=0.5))\\\\n\\\\n# Set the limits and remove axes\\\\nax.set_xlim(0, 1)\\\\nax.set_ylim(0, 1)\\\\nax.axis(\\'off\\')\\\\n\"\\n}', 'name': 'python'}, 'content': None, 'role': 'assistant'}, {'content': '(0.0, 1.0, 0.0, 1.0)', 'name': 'python', 'role': 'function'}, {'content': \"The two agents have been drawn, each represented as a circle, and an example of their dialogue is displayed above them. Since `plt.show()` was not to be included, the plot is not displayed here, but the agents along with their dialogue would appear within the figure's coordinate system, which extends from 0 to 1 on both the x and y axes.\", 'role': 'user'}, {'content': '', 'role': 'assistant'}, {'content': 'TERMINATE', 'role': 'user'}], summary='', cost=({'total_cost': 0.04767, 'gpt-4': {'cost': 0.04767, 'prompt_tokens': 973, 'completion_tokens': 308, 'total_tokens': 1281}}, {'total_cost': 0.04767, 'gpt-4': {'cost': 0.04767, 'prompt_tokens': 973, 'completion_tokens': 308, 'total_tokens': 1281}}), human_input=[])" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" } ], "source": [ "llm_config = {\n", + " \"model\": \"gpt-4-1106-preview\",\n", " \"functions\": [\n", " {\n", " \"name\": \"python\",\n", @@ -886,7 +459,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 5, "metadata": {}, "outputs": [ { @@ -897,331 +470,330 @@ "\n", "Show me the YTD gain of 10 largest technology companies as of today.\n", "\n", - "--------------------------------------------------------------------------------\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ + "--------------------------------------------------------------------------------\n", "\u001b[33massistant\u001b[0m (to user_proxy):\n", "\n", - "To fulfill your request, we first need a list of the 10 largest technology companies by market cap. Unfortunately, real-time financial data is gated behind paywalls, so it's difficult to get up-to-date reliable information through coding here. \n", + "To compute the Year-To-Date (YTD) gains of the 10 largest technology companies, I can fetch the latest stock price and the closing price from the last trading day of the previous year. Then calculate the percentage increase for each company.\n", "\n", - "However, I can provide you a script to download YTD performance for a given list of companies if you already know the list. Below is an example using Yahoo Finance, for which Python has a usable API.\n", + "First, we should fetch the current stock prices and the closing prices as of the last trading day of the previous year for these companies. For this, we can use a financial data API like Alpha Vantage, Yahoo Finance, or similar, which would require an API key and internet access, but I can't perform actions that require internet access.\n", "\n", - "Frequently mentioned largest technology companies include: Apple (AAPL), Microsoft (MSFT), Alphabet (GOOGL), Amazon (AMZN), Meta (FB), Tesla (TSLA), Alibaba group holding (BABA), Taiwan Semiconductor (TSM), Tencent (TCEHY), Oracle (ORCL). Adjust as necessary for your purpose.\n", + "Instead, I will provide you with Python code that you'd need to run on your local machine. This code utilizes the `yfinance` Python library, which is widely used for retrieving historical market data from Yahoo Finance. If you don't have `yfinance` installed, you'll need to install it by running `pip install yfinance` in your command line.\n", "\n", - "First, we need to install yfinance module:\n", - "\n", - "```sh\n", - "pip install yfinance\n", - "```\n", - "\n", - "Then, you can use this Python script to get the YTD performance. \n", - "\n", - "This Python script first gets the price at the beginning of the year, and then the most recent price. The difference between those two prices, divided by the starting price, gives the YTD performance.\n", + "Here is the code you'll need to execute:\n", "\n", "```python\n", - "# filename: ytd_gain.py\n", + "# filename: ytd_gains.py\n", "\n", "import yfinance as yf\n", - "from datetime import datetime\n", + "from datetime import datetime, timedelta\n", + "\n", + "# Define the ticker symbols for the 10 largest tech companies.\n", + "# This is a sample list and may not represent the current top 10 companies.\n", + "# You would need to replace this with the actual tickers of the top 10 tech companies.\n", + "tech_companies = [\"AAPL\", \"MSFT\", \"GOOGL\", \"AMZN\", \"FB\", \"TSLA\", \"NVDA\", \"V\", \"ADBE\", \"INTC\"]\n", + "\n", + "# Compute the last day of the last year\n", + "end_of_last_year = datetime(datetime.now().year - 1, 12, 31)\n", + "\n", + "# Retrieve the data and calculate YTD gain for each company\n", + "ytd_gains = {}\n", + "for symbol in tech_companies:\n", + " try:\n", + " # Fetch historical data\n", + " stock = yf.Ticker(symbol)\n", + " last_price = stock.history(period=\"1d\")['Close'][-1]\n", + " prev_close = stock.history(start=end_of_last_year, end=end_of_last_year + timedelta(days=1))['Close'][0]\n", + "\n", + " # Calculate YTD gain\n", + " ytd_gain = ((last_price - prev_close) / prev_close) * 100\n", + " ytd_gains[symbol] = ytd_gain\n", + " except Exception as e:\n", + " # Handle errors by skipping the company and printing an error message\n", + " print(f\"Error retrieving data for {symbol}: {e}\")\n", + "\n", + "# Print the YTD gains\n", + "for symbol, gain in ytd_gains.items():\n", + " print(f\"{symbol}: {gain:.2f}% YTD Gain\")\n", "\n", - "# Define the tickers\n", - "tickers = ['AAPL', 'MSFT', 'GOOGL', 'AMZN', 'FB', 'TSLA', 'BABA', 'TSM', 'TCEHY', 'ORCL']\n", - "now = datetime.now()\n", - "\n", - "# Define the current year\n", - "current_year = now.year\n", - "\n", - "# Iterate through each ticker\n", - "for ticker in tickers:\n", - " # Download the year-to-date data for this ticker\n", - " ticker_data = yf.download(ticker, start=f'{current_year}-01-01', end=f'{now.year}-{now.month}-{now.day}')\n", - "\n", - " # Get the close price at the beginning of the year\n", - " initial_price = ticker_data['Close'][0]\n", - "\n", - " # Get the most recent close price\n", - " most_recent_price = ticker_data['Close'][-1]\n", - "\n", - " # Calculate the year-to-date return\n", - " ytd_return = (most_recent_price - initial_price) / initial_price * 100\n", - "\n", - " # Print the result\n", - " print(f'The YTD return for {ticker} is {ytd_return:.2f}%')\n", "```\n", "\n", - "Run the file in shell:\n", - "\n", - "```sh\n", - "python ytd_gain.py\n", - "```\n", - "\n", - "The output will be the YTD gain (%) of each company to the console. Please note that actual results will depend on the input list of tickers and the current date.\n", + "Make sure that `yfinance` is installed and then run this Python script (`ytd_gains.py`). The script will print out the YTD gains for the listed technology companies as a percentage.\n", "\n", + "Note that the list of the 10 largest technology companies must be updated to reflect the current market situation. If you do not have the updated list, let me know, and I can attempt to retrieve this information for you using different methods.\n", "\n", "--------------------------------------------------------------------------------\n", "\u001b[31m\n", ">>>>>>>> USING AUTO REPLY...\u001b[0m\n", "\u001b[31m\n", - ">>>>>>>> EXECUTING CODE BLOCK 0 (inferred language is sh)...\u001b[0m\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "execute_code was called without specifying a value for use_docker. Since the python docker package is not available, code will be run natively. Note: this fallback behavior is subject to change\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\u001b[31m\n", - ">>>>>>>> EXECUTING CODE BLOCK 1 (inferred language is python)...\u001b[0m\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "execute_code was called without specifying a value for use_docker. Since the python docker package is not available, code will be run natively. Note: this fallback behavior is subject to change\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ + ">>>>>>>> EXECUTING CODE BLOCK 0 (inferred language is python)...\u001b[0m\n", "\u001b[33muser_proxy\u001b[0m (to assistant):\n", "\n", - "exitcode: 1 (execution failed)\n", + "exitcode: 0 (execution succeeded)\n", "Code output: \n", - "Requirement already satisfied: yfinance in /home/ykw5399/.conda/envs/dev2/lib/python3.9/site-packages (0.2.31)\n", - "Requirement already satisfied: pandas>=1.3.0 in /home/ykw5399/.conda/envs/dev2/lib/python3.9/site-packages (from yfinance) (2.1.2)\n", - "Requirement already satisfied: numpy>=1.16.5 in /home/ykw5399/.conda/envs/dev2/lib/python3.9/site-packages (from yfinance) (1.26.1)\n", - "Requirement already satisfied: requests>=2.31 in /home/ykw5399/.conda/envs/dev2/lib/python3.9/site-packages (from yfinance) (2.31.0)\n", - "Requirement already satisfied: multitasking>=0.0.7 in /home/ykw5399/.conda/envs/dev2/lib/python3.9/site-packages (from yfinance) (0.0.11)\n", - "Requirement already satisfied: lxml>=4.9.1 in /home/ykw5399/.conda/envs/dev2/lib/python3.9/site-packages (from yfinance) (4.9.3)\n", - "Requirement already satisfied: appdirs>=1.4.4 in /home/ykw5399/.conda/envs/dev2/lib/python3.9/site-packages (from yfinance) (1.4.4)\n", - "Requirement already satisfied: pytz>=2022.5 in /home/ykw5399/.conda/envs/dev2/lib/python3.9/site-packages (from yfinance) (2023.3.post1)\n", - "Requirement already satisfied: frozendict>=2.3.4 in /home/ykw5399/.conda/envs/dev2/lib/python3.9/site-packages (from yfinance) (2.3.8)\n", - "Requirement already satisfied: peewee>=3.16.2 in /home/ykw5399/.conda/envs/dev2/lib/python3.9/site-packages (from yfinance) (3.17.0)\n", - "Requirement already satisfied: beautifulsoup4>=4.11.1 in /home/ykw5399/.conda/envs/dev2/lib/python3.9/site-packages (from yfinance) (4.12.2)\n", - "Requirement already satisfied: html5lib>=1.1 in /home/ykw5399/.conda/envs/dev2/lib/python3.9/site-packages (from yfinance) (1.1)\n", - "Requirement already satisfied: soupsieve>1.2 in /home/ykw5399/.conda/envs/dev2/lib/python3.9/site-packages (from beautifulsoup4>=4.11.1->yfinance) (2.5)\n", - "Requirement already satisfied: six>=1.9 in /home/ykw5399/.conda/envs/dev2/lib/python3.9/site-packages (from html5lib>=1.1->yfinance) (1.16.0)\n", - "Requirement already satisfied: webencodings in /home/ykw5399/.conda/envs/dev2/lib/python3.9/site-packages (from html5lib>=1.1->yfinance) (0.5.1)\n", - "Requirement already satisfied: python-dateutil>=2.8.2 in /home/ykw5399/.conda/envs/dev2/lib/python3.9/site-packages (from pandas>=1.3.0->yfinance) (2.8.2)\n", - "Requirement already satisfied: tzdata>=2022.1 in /home/ykw5399/.conda/envs/dev2/lib/python3.9/site-packages (from pandas>=1.3.0->yfinance) (2023.3)\n", - "Requirement already satisfied: charset-normalizer<4,>=2 in /home/ykw5399/.conda/envs/dev2/lib/python3.9/site-packages (from requests>=2.31->yfinance) (3.3.1)\n", - "Requirement already satisfied: idna<4,>=2.5 in /home/ykw5399/.conda/envs/dev2/lib/python3.9/site-packages (from requests>=2.31->yfinance) (3.4)\n", - "Requirement already satisfied: urllib3<3,>=1.21.1 in /home/ykw5399/.conda/envs/dev2/lib/python3.9/site-packages (from requests>=2.31->yfinance) (2.0.7)\n", - "Requirement already satisfied: certifi>=2017.4.17 in /home/ykw5399/.conda/envs/dev2/lib/python3.9/site-packages (from requests>=2.31->yfinance) (2023.7.22)\n", - "\n", - "ytd_gain.py:19: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`\n", - " initial_price = ticker_data['Close'][0]\n", - "ytd_gain.py:22: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`\n", - " most_recent_price = ticker_data['Close'][-1]\n", - "ytd_gain.py:19: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`\n", - " initial_price = ticker_data['Close'][0]\n", - "ytd_gain.py:22: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`\n", - " most_recent_price = ticker_data['Close'][-1]\n", - "ytd_gain.py:19: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`\n", - " initial_price = ticker_data['Close'][0]\n", - "ytd_gain.py:22: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`\n", - " most_recent_price = ticker_data['Close'][-1]\n", - "ytd_gain.py:19: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`\n", - " initial_price = ticker_data['Close'][0]\n", - "ytd_gain.py:22: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`\n", - " most_recent_price = ticker_data['Close'][-1]\n", - "\n", - "1 Failed download:\n", - "['FB']: Exception('%ticker%: No timezone found, symbol may be delisted')\n", - "Traceback (most recent call last):\n", - " File \"ytd_gain.py\", line 19, in \n", - " initial_price = ticker_data['Close'][0]\n", - " File \"/home/ykw5399/.conda/envs/dev2/lib/python3.9/site-packages/pandas/core/series.py\", line 1037, in __getitem__\n", - " return self._values[key]\n", - "IndexError: index 0 is out of bounds for axis 0 with size 0\n", + "Error retrieving data for AAPL: index 0 is out of bounds for axis 0 with size 0\n", + "Error retrieving data for MSFT: index 0 is out of bounds for axis 0 with size 0\n", + "Error retrieving data for GOOGL: index 0 is out of bounds for axis 0 with size 0\n", + "Error retrieving data for AMZN: index 0 is out of bounds for axis 0 with size 0\n", + "Error retrieving data for FB: index -1 is out of bounds for axis 0 with size 0\n", + "Error retrieving data for TSLA: index 0 is out of bounds for axis 0 with size 0\n", + "Error retrieving data for NVDA: index 0 is out of bounds for axis 0 with size 0\n", + "Error retrieving data for V: index 0 is out of bounds for axis 0 with size 0\n", + "Error retrieving data for ADBE: index 0 is out of bounds for axis 0 with size 0\n", + "Error retrieving data for INTC: index 0 is out of bounds for axis 0 with size 0\n", "\n", "\n", "--------------------------------------------------------------------------------\n", "\u001b[33massistant\u001b[0m (to user_proxy):\n", "\n", - "There seems to be an issue with the ticker symbol 'FB'. The error message shows 'FB': No timezone found, symbol may be delisted. This is because 'FB' has been recently changed to 'META' so the symbol 'FB' is causing the issue.\n", - "\n", - "We can replace 'FB' with 'META' and rerun the Python script. The error messages for series indexing are warnings rather than errors. It seems recent changes in pandas library caused these warnings. To resolve this, `iloc` function will be utilized to get the first and last items of the Series.\n", + "It seems that the script encountered an error when trying to fetch data for the provided ticker symbols. This might be because either the market is closed and the latest data is not yet available, or because the dates specified do not have available data (e.g., the end of last year might have been a weekend or holiday).\n", "\n", - "Here is the updated Python script:\n", + "Let's adjust the code to be more robust by checking for valid trading days around the end of last year and to handle cases where the stock data might not be available. Here's the updated code:\n", "\n", "```python\n", - "# filename: ytd_gain.py\n", + "# filename: ytd_gains.py\n", "\n", "import yfinance as yf\n", "from datetime import datetime\n", "\n", - "# Define the tickers\n", - "tickers = ['AAPL', 'MSFT', 'GOOGL', 'AMZN', 'META', 'TSLA', 'BABA', 'TSM', 'TCEHY', 'ORCL']\n", - "now = datetime.now()\n", + "def get_last_valid_trading_day(year):\n", + " last_day = datetime(year, 12, 31)\n", + " # Start moving backwards from December 31st to find the last valid trading day of the year\n", + " while True:\n", + " stock_data = yf.download('SPY', start=last_day.strftime('%Y-%m-%d'), end=(last_day + timedelta(days=1)).strftime('%Y-%m-%d'))\n", + " if not stock_data.empty:\n", + " return last_day\n", + " last_day -= timedelta(days=1)\n", + "\n", + "# Define the ticker symbols for the 10 largest tech companies.\n", + "tech_companies = [\"AAPL\", \"MSFT\", \"GOOGL\", \"AMZN\", \"FB\", \"TSLA\", \"NVDA\", \"V\", \"ADBE\", \"INTC\"]\n", + "\n", + "# Compute the last valid trading day of the last year\n", + "end_of_last_year = get_last_valid_trading_day(datetime.now().year - 1)\n", + "\n", + "# Retrieve the data and calculate YTD gain for each company\n", + "ytd_gains = {}\n", + "for symbol in tech_companies:\n", + " try:\n", + " # Fetch historical data\n", + " stock = yf.Ticker(symbol)\n", + " last_price = stock.history(period='1d')['Close'].iloc[-1]\n", + " prev_close = stock.history(start=end_of_last_year, end=end_of_last_year + timedelta(days=1))['Close'].iloc[0]\n", + "\n", + " # Calculate YTD gain\n", + " ytd_gain = ((last_price - prev_close) / prev_close) * 100\n", + " ytd_gains[symbol] = ytd_gain\n", + " except Exception as e:\n", + " # Handle errors by skipping the company and printing an error message\n", + " print(f\"Error retrieving data for {symbol}: {e}\")\n", + "\n", + "# Print the YTD gains\n", + "for symbol, gain in ytd_gains.items():\n", + " print(f\"{symbol}: {gain:.2f}% YTD Gain\")\n", + "```\n", "\n", - "# Define the current year\n", - "current_year = now.year\n", + "Please execute the updated `ytd_gains.py` script. The function `get_last_valid_trading_day` will find the last valid trading day of the previous year to handle non-trading days correctly, and the fetch for current price will get the latest available data point even if the market has not yet closed for today.\n", "\n", - "# Iterate through each ticker\n", - "for ticker in tickers:\n", - " # Download the year-to-date data for this ticker\n", - " ticker_data = yf.download(ticker, start=f'{current_year}-01-01', end=f'{now.year}-{now.month}-{now.day}')\n", + "--------------------------------------------------------------------------------\n", + "\u001b[31m\n", + ">>>>>>>> USING AUTO REPLY...\u001b[0m\n", + "\u001b[31m\n", + ">>>>>>>> EXECUTING CODE BLOCK 0 (inferred language is python)...\u001b[0m\n", + "\u001b[33muser_proxy\u001b[0m (to assistant):\n", "\n", - " # Get the close price at the beginning of the year\n", - " initial_price = ticker_data['Close'].iloc[0]\n", + "exitcode: 1 (execution failed)\n", + "Code output: \n", + "Traceback (most recent call last):\n", + " File \"ytd_gains.py\", line 19, in \n", + " end_of_last_year = get_last_valid_trading_day(datetime.now().year - 1)\n", + " File \"ytd_gains.py\", line 10, in get_last_valid_trading_day\n", + " stock_data = yf.download('SPY', start=last_day.strftime('%Y-%m-%d'), end=(last_day + timedelta(days=1)).strftime('%Y-%m-%d'))\n", + "NameError: name 'timedelta' is not defined\n", "\n", - " # Get the most recent close price\n", - " most_recent_price = ticker_data['Close'].iloc[-1]\n", "\n", - " # Calculate the year-to-date return\n", - " ytd_return = (most_recent_price - initial_price) / initial_price * 100\n", + "--------------------------------------------------------------------------------\n", + "\u001b[35mToken Count (including 468 tokens from system msg and function descriptions). Before compression : 2115 | After: 1223\u001b[0m\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33massistant\u001b[0m (to user_proxy):\n", "\n", - " # Print the result\n", - " print(f'The YTD return for {ticker} is {ytd_return:.2f}%')\n", - "```\n", + "It seems I forgot to import the `timedelta` class from the `datetime` module. I will correct this oversight and provide the updated code. Here is the corrected code including the missed import:\n", "\n", - "Run the file in shell:\n", + "```python\n", + "# filename: ytd_gains.py\n", "\n", - "```sh\n", - "python ytd_gain.py\n", + "import yfinance as yf\n", + "from datetime import datetime, timedelta\n", + "\n", + "def get_last_valid_trading_day(year):\n", + " last_day = datetime(year, 12, 31)\n", + " # Start moving backwards from December 31st to find the last valid trading day of the year\n", + " while True:\n", + " stock_data = yf.download('SPY', start=last_day.strftime('%Y-%m-%d'), end=(last_day + timedelta(days=1)).strftime('%Y-%m-%d'))\n", + " if not stock_data.empty:\n", + " return last_day\n", + " last_day -= timedelta(days=1)\n", + "\n", + "# Define the ticker symbols for the 10 largest tech companies.\n", + "tech_companies = [\"AAPL\", \"MSFT\", \"GOOGL\", \"AMZN\", \"FB\", \"TSLA\", \"NVDA\", \"V\", \"ADBE\", \"INTC\"]\n", + "\n", + "# Compute the last valid trading day of the last year\n", + "end_of_last_year = get_last_valid_trading_day(datetime.now().year - 1)\n", + "\n", + "# Retrieve the data and calculate YTD gain for each company\n", + "ytd_gains = {}\n", + "for symbol in tech_companies:\n", + " try:\n", + " # Fetch historical data\n", + " stock = yf.Ticker(symbol)\n", + " last_price = stock.history(period='1d')['Close'].iloc[-1]\n", + " prev_close = stock.history(start=end_of_last_year, end=end_of_last_year + timedelta(days=1))['Close'].iloc[0]\n", + "\n", + " # Calculate YTD gain\n", + " ytd_gain = ((last_price - prev_close) / prev_close) * 100\n", + " ytd_gains[symbol] = ytd_gain\n", + " except Exception as e:\n", + " # Handle errors by skipping the company and printing an error message\n", + " print(f\"Error retrieving data for {symbol}: {e}\")\n", + "\n", + "# Print the YTD gains\n", + "for symbol, gain in ytd_gains.items():\n", + " print(f\"{symbol}: {gain:.2f}% YTD Gain\")\n", "```\n", "\n", - "This script will print the YTD gain (%) of each company to the console.\n", + "Please execute the corrected `ytd_gains.py` script. This should resolve the `NameError` and provide you with the YTD gain for each company.\n", "\n", "--------------------------------------------------------------------------------\n", "\u001b[31m\n", ">>>>>>>> USING AUTO REPLY...\u001b[0m\n", "\u001b[31m\n", - ">>>>>>>> EXECUTING CODE BLOCK 0 (inferred language is python)...\u001b[0m\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "execute_code was called without specifying a value for use_docker. Since the python docker package is not available, code will be run natively. Note: this fallback behavior is subject to change\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\u001b[31m\n", - ">>>>>>>> EXECUTING CODE BLOCK 1 (inferred language is sh)...\u001b[0m\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "execute_code was called without specifying a value for use_docker. Since the python docker package is not available, code will be run natively. Note: this fallback behavior is subject to change\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ + ">>>>>>>> EXECUTING CODE BLOCK 0 (inferred language is python)...\u001b[0m\n", "\u001b[33muser_proxy\u001b[0m (to assistant):\n", "\n", "exitcode: 0 (execution succeeded)\n", "Code output: \n", + "Error retrieving data for FB: single positional indexer is out-of-bounds\n", + "AAPL: -6.57% YTD Gain\n", + "MSFT: 10.70% YTD Gain\n", + "GOOGL: -1.83% YTD Gain\n", + "AMZN: 17.30% YTD Gain\n", + "TSLA: -18.45% YTD Gain\n", + "NVDA: 66.15% YTD Gain\n", + "V: 8.96% YTD Gain\n", + "ADBE: -4.30% YTD Gain\n", + "INTC: -12.54% YTD Gain\n", "\n", - "[*********************100%%**********************] 1 of 1 completed\n", - "The YTD return for AAPL is 41.24%\n", - "\n", - "[*********************100%%**********************] 1 of 1 completed\n", - "The YTD return for MSFT is 47.26%\n", - "\n", - "[*********************100%%**********************] 1 of 1 completed\n", - "The YTD return for GOOGL is 44.86%\n", - "\n", - "[*********************100%%**********************] 1 of 1 completed\n", - "The YTD return for AMZN is 61.50%\n", - "\n", - "[*********************100%%**********************] 1 of 1 completed\n", - "The YTD return for META is 152.20%\n", - "\n", - "[*********************100%%**********************] 1 of 1 completed\n", - "The YTD return for TSLA is 103.48%\n", - "\n", - "[*********************100%%**********************] 1 of 1 completed\n", - "The YTD return for BABA is -7.25%\n", - "\n", - "[*********************100%%**********************] 1 of 1 completed\n", - "The YTD return for TSM is 23.99%\n", - "\n", - "[*********************100%%**********************] 1 of 1 completed\n", - "The YTD return for TCEHY is -12.16%\n", "\n", - "[*********************100%%**********************] 1 of 1 completed\n", - "The YTD return for ORCL is 29.06%\n", - "\n", - "\n", - "[*********************100%%**********************] 1 of 1 completed\n", - "The YTD return for AAPL is 41.24%\n", - "\n", - "[*********************100%%**********************] 1 of 1 completed\n", - "The YTD return for MSFT is 47.26%\n", - "\n", - "[*********************100%%**********************] 1 of 1 completed\n", - "The YTD return for GOOGL is 44.86%\n", + "--------------------------------------------------------------------------------\n", + "\u001b[35mToken Count (including 468 tokens from system msg and function descriptions). Before compression : 1865 | After: 1133\u001b[0m\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33massistant\u001b[0m (to user_proxy):\n", "\n", - "[*********************100%%**********************] 1 of 1 completed\n", - "The YTD return for AMZN is 61.50%\n", + "It looks like an error occurred while retrieving data for FB, which stands for Facebook. This can happen if the ticker symbol has changed or if there was an issue with the data for the date range we were trying to fetch. Facebook, Inc. has been renamed to Meta Platforms, Inc., and its stock symbol is now \"META.\" \n", "\n", - "[*********************100%%**********************] 1 of 1 completed\n", - "The YTD return for META is 152.20%\n", + "I will update the list of technology companies to include \"META\" instead of \"FB\" and run the code again:\n", "\n", - "[*********************100%%**********************] 1 of 1 completed\n", - "The YTD return for TSLA is 103.48%\n", + "```python\n", + "# filename: ytd_gains_updated.py\n", "\n", - "[*********************100%%**********************] 1 of 1 completed\n", - "The YTD return for BABA is -7.25%\n", + "import yfinance as yf\n", + "from datetime import datetime, timedelta\n", + "\n", + "def get_last_valid_trading_day(year):\n", + " last_day = datetime(year, 12, 31)\n", + " # Start moving backwards from December 31st to find the last valid trading day of the year\n", + " while True:\n", + " stock_data = yf.download('SPY', start=last_day.strftime('%Y-%m-%d'), end=(last_day + timedelta(days=1)).strftime('%Y-%m-%d'))\n", + " if not stock_data.empty:\n", + " return last_day\n", + " last_day -= timedelta(days=1)\n", + "\n", + "# Define the ticker symbols for the 10 largest tech companies with FB replaced by META.\n", + "tech_companies = [\"AAPL\", \"MSFT\", \"GOOGL\", \"AMZN\", \"META\", \"TSLA\", \"NVDA\", \"V\", \"ADBE\", \"INTC\"]\n", + "\n", + "# Compute the last valid trading day of the last year\n", + "end_of_last_year = get_last_valid_trading_day(datetime.now().year - 1)\n", + "\n", + "# Retrieve the data and calculate YTD gain for each company\n", + "ytd_gains = {}\n", + "for symbol in tech_companies:\n", + " try:\n", + " # Fetch historical data\n", + " stock = yf.Ticker(symbol)\n", + " last_price = stock.history(period='1d')['Close'].iloc[-1]\n", + " prev_close = stock.history(start=end_of_last_year, end=end_of_last_year + timedelta(days=1))['Close'].iloc[0]\n", + "\n", + " # Calculate YTD gain\n", + " ytd_gain = ((last_price - prev_close) / prev_close) * 100\n", + " ytd_gains[symbol] = ytd_gain\n", + " except Exception as e:\n", + " # Handle errors by skipping the company and printing an error message\n", + " print(f\"Error retrieving data for {symbol}: {e}\")\n", + "\n", + "# Print the YTD gains\n", + "for symbol, gain in ytd_gains.items():\n", + " print(f\"{symbol}: {gain:.2f}% YTD Gain\")\n", + "```\n", "\n", - "[*********************100%%**********************] 1 of 1 completed\n", - "The YTD return for TSM is 23.99%\n", + "Please execute the updated `ytd_gains_updated.py` script to get the YTD gain of Meta Platforms, Inc. along with the other technology companies.\n", "\n", - "[*********************100%%**********************] 1 of 1 completed\n", - "The YTD return for TCEHY is -12.16%\n", + "--------------------------------------------------------------------------------\n", + "\u001b[31m\n", + ">>>>>>>> USING AUTO REPLY...\u001b[0m\n", + "\u001b[31m\n", + ">>>>>>>> EXECUTING CODE BLOCK 0 (inferred language is python)...\u001b[0m\n", + "\u001b[33muser_proxy\u001b[0m (to assistant):\n", "\n", - "[*********************100%%**********************] 1 of 1 completed\n", - "The YTD return for ORCL is 29.06%\n", + "exitcode: 0 (execution succeeded)\n", + "Code output: \n", + "AAPL: -6.57% YTD Gain\n", + "MSFT: 10.70% YTD Gain\n", + "GOOGL: -1.83% YTD Gain\n", + "AMZN: 17.30% YTD Gain\n", + "META: 42.06% YTD Gain\n", + "TSLA: -18.45% YTD Gain\n", + "NVDA: 66.15% YTD Gain\n", + "V: 8.96% YTD Gain\n", + "ADBE: -4.30% YTD Gain\n", + "INTC: -12.54% YTD Gain\n", "\n", "\n", "--------------------------------------------------------------------------------\n", - "\u001b[35mToken Count (including 468 tokens from system msg and function descriptions). Before compression : 3684 | After: 1509\u001b[0m\n", + "\u001b[35mToken Count (including 468 tokens from system msg and function descriptions). Before compression : 1828 | After: 1186\u001b[0m\n", "--------------------------------------------------------------------------------\n", "\u001b[33massistant\u001b[0m (to user_proxy):\n", "\n", - "It appears that you've run the script twice, as the results are duplicated. From the code output, here are the Year-to-Date (YTD) returns for the 10 largest technology companies:\n", + "The YTD (Year-To-Date) gain for the 10 largest technology companies as of today are as follows:\n", "\n", - "1. AAPL (Apple): 41.24% gain\n", - "2. MSFT (Microsoft): 47.26% gain\n", - "3. GOOGL (Alphabet Class A): 44.86% gain\n", - "4. AMZN (Amazon): 61.50% gain\n", - "5. META (Meta Platforms, previously Facebook): 152.20% gain\n", - "6. TSLA (Tesla): 103.48% gain\n", - "7. BABA (Alibaba): -7.25% loss\n", - "8. TSM (Taiwan Semiconductor Manufacturing): 23.99% gain\n", - "9. TCEHY (Tencent Holdings): -12.16% loss\n", - "10. ORCL (Oracle): 29.06% gain\n", + "1. Apple Inc. (AAPL): -6.57% YTD Gain\n", + "2. Microsoft Corporation (MSFT): 10.70% YTD Gain\n", + "3. Alphabet Inc. (GOOGL): -1.83% YTD Gain\n", + "4. Amazon.com, Inc. (AMZN): 17.30% YTD Gain\n", + "5. Meta Platforms, Inc. (META, formerly FB): 42.06% YTD Gain\n", + "6. Tesla, Inc. (TSLA): -18.45% YTD Gain\n", + "7. NVIDIA Corporation (NVDA): 66.15% YTD Gain\n", + "8. Visa Inc. (V): 8.96% YTD Gain\n", + "9. Adobe Inc. (ADBE): -4.30% YTD Gain\n", + "10. Intel Corporation (INTC): -12.54% YTD Gain\n", "\n", - "Please note, the percentage change could have slight differences due to market volatility and the exact times the prices were taken. \n", + "These YTD gains reflect the percentage change in the stock price of each company from the last trading day of the previous year to the most recent available trading data.\n", "\n", - "If everything looks good, let's wrap up. If you need any more help with other tasks, just let me know! \n", + "If you need any further assistance, please let me know.\n", "\n", "TERMINATE\n", "\n", - "--------------------------------------------------------------------------------\n" + "--------------------------------------------------------------------------------\n", + "\u001b[31m\n", + ">>>>>>>> NO HUMAN INPUT RECEIVED.\u001b[0m\n" ] + }, + { + "data": { + "text/plain": [ + "ChatResult(chat_id=None, chat_history=[{'content': 'Show me the YTD gain of 10 largest technology companies as of today.', 'role': 'assistant'}, {'content': 'It looks like an error occurred while retrieving data for FB, which stands for Facebook. This can happen if the ticker symbol has changed or if there was an issue with the data for the date range we were trying to fetch. Facebook, Inc. has been renamed to Meta Platforms, Inc., and its stock symbol is now \"META.\" \\n\\nI will update the list of technology companies to include \"META\" instead of \"FB\" and run the code again:\\n\\n```python\\n# filename: ytd_gains_updated.py\\n\\nimport yfinance as yf\\nfrom datetime import datetime, timedelta\\n\\ndef get_last_valid_trading_day(year):\\n last_day = datetime(year, 12, 31)\\n # Start moving backwards from December 31st to find the last valid trading day of the year\\n while True:\\n stock_data = yf.download(\\'SPY\\', start=last_day.strftime(\\'%Y-%m-%d\\'), end=(last_day + timedelta(days=1)).strftime(\\'%Y-%m-%d\\'))\\n if not stock_data.empty:\\n return last_day\\n last_day -= timedelta(days=1)\\n\\n# Define the ticker symbols for the 10 largest tech companies with FB replaced by META.\\ntech_companies = [\"AAPL\", \"MSFT\", \"GOOGL\", \"AMZN\", \"META\", \"TSLA\", \"NVDA\", \"V\", \"ADBE\", \"INTC\"]\\n\\n# Compute the last valid trading day of the last year\\nend_of_last_year = get_last_valid_trading_day(datetime.now().year - 1)\\n\\n# Retrieve the data and calculate YTD gain for each company\\nytd_gains = {}\\nfor symbol in tech_companies:\\n try:\\n # Fetch historical data\\n stock = yf.Ticker(symbol)\\n last_price = stock.history(period=\\'1d\\')[\\'Close\\'].iloc[-1]\\n prev_close = stock.history(start=end_of_last_year, end=end_of_last_year + timedelta(days=1))[\\'Close\\'].iloc[0]\\n\\n # Calculate YTD gain\\n ytd_gain = ((last_price - prev_close) / prev_close) * 100\\n ytd_gains[symbol] = ytd_gain\\n except Exception as e:\\n # Handle errors by skipping the company and printing an error message\\n print(f\"Error retrieving data for {symbol}: {e}\")\\n\\n# Print the YTD gains\\nfor symbol, gain in ytd_gains.items():\\n print(f\"{symbol}: {gain:.2f}% YTD Gain\")\\n```\\n\\nPlease execute the updated `ytd_gains_updated.py` script to get the YTD gain of Meta Platforms, Inc. along with the other technology companies.', 'role': 'user'}, {'content': 'exitcode: 0 (execution succeeded)\\nCode output: \\nAAPL: -6.57% YTD Gain\\nMSFT: 10.70% YTD Gain\\nGOOGL: -1.83% YTD Gain\\nAMZN: 17.30% YTD Gain\\nMETA: 42.06% YTD Gain\\nTSLA: -18.45% YTD Gain\\nNVDA: 66.15% YTD Gain\\nV: 8.96% YTD Gain\\nADBE: -4.30% YTD Gain\\nINTC: -12.54% YTD Gain\\n', 'role': 'assistant'}, {'content': 'The YTD (Year-To-Date) gain for the 10 largest technology companies as of today are as follows:\\n\\n1. Apple Inc. (AAPL): -6.57% YTD Gain\\n2. Microsoft Corporation (MSFT): 10.70% YTD Gain\\n3. Alphabet Inc. (GOOGL): -1.83% YTD Gain\\n4. Amazon.com, Inc. (AMZN): 17.30% YTD Gain\\n5. Meta Platforms, Inc. (META, formerly FB): 42.06% YTD Gain\\n6. Tesla, Inc. (TSLA): -18.45% YTD Gain\\n7. NVIDIA Corporation (NVDA): 66.15% YTD Gain\\n8. Visa Inc. (V): 8.96% YTD Gain\\n9. Adobe Inc. (ADBE): -4.30% YTD Gain\\n10. Intel Corporation (INTC): -12.54% YTD Gain\\n\\nThese YTD gains reflect the percentage change in the stock price of each company from the last trading day of the previous year to the most recent available trading data.\\n\\nIf you need any further assistance, please let me know.\\n\\nTERMINATE', 'role': 'user'}], summary='The YTD (Year-To-Date) gain for the 10 largest technology companies as of today are as follows:\\n\\n1. Apple Inc. (AAPL): -6.57% YTD Gain\\n2. Microsoft Corporation (MSFT): 10.70% YTD Gain\\n3. Alphabet Inc. (GOOGL): -1.83% YTD Gain\\n4. Amazon.com, Inc. (AMZN): 17.30% YTD Gain\\n5. Meta Platforms, Inc. (META, formerly FB): 42.06% YTD Gain\\n6. Tesla, Inc. (TSLA): -18.45% YTD Gain\\n7. NVIDIA Corporation (NVDA): 66.15% YTD Gain\\n8. Visa Inc. (V): 8.96% YTD Gain\\n9. Adobe Inc. (ADBE): -4.30% YTD Gain\\n10. Intel Corporation (INTC): -12.54% YTD Gain\\n\\nThese YTD gains reflect the percentage change in the stock price of each company from the last trading day of the previous year to the most recent available trading data.\\n\\nIf you need any further assistance, please let me know.\\n\\n', cost=({'total_cost': 0.31437, 'gpt-4': {'cost': 0.31437, 'prompt_tokens': 5401, 'completion_tokens': 2539, 'total_tokens': 7940}}, {'total_cost': 0.31437, 'gpt-4': {'cost': 0.31437, 'prompt_tokens': 5401, 'completion_tokens': 2539, 'total_tokens': 7940}}), human_input=[''])" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" } ], "source": [ @@ -1249,6 +821,7 @@ " \"timeout\": 600,\n", " \"cache_seed\": 43,\n", " \"config_list\": config_list,\n", + " \"model\": \"gpt-4-1106-preview\",\n", " },\n", " compress_config={\n", " \"mode\": \"CUSTOMIZED\",\n", @@ -1280,6 +853,10 @@ } ], "metadata": { + "front_matter": { + "description": "Learn about the CompressibleAgent", + "tags": [] + }, "kernelspec": { "display_name": "msft", "language": "python", @@ -1295,7 +872,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.18" + "version": "3.10.13" }, "orig_nbformat": 4 }, diff --git a/notebook/agentchat_cost_token_tracking.ipynb b/notebook/agentchat_cost_token_tracking.ipynb index 05655b452009..491fa1b1e401 100644 --- a/notebook/agentchat_cost_token_tracking.ipynb +++ b/notebook/agentchat_cost_token_tracking.ipynb @@ -102,7 +102,7 @@ "]\n", "```\n", "\n", - "You can set the value of config_list in any way you prefer. Please refer to this [notebook](https://github.com/microsoft/autogen/blob/main/website/docs/llm_configuration.ipynb) for full code examples of the different methods." + "You can set the value of config_list in any way you prefer. Please refer to this [notebook](https://github.com/microsoft/autogen/blob/main/website/docs/topics/llm_configuration.ipynb) for full code examples of the different methods." ] }, { diff --git a/notebook/agentchat_custom_model.ipynb b/notebook/agentchat_custom_model.ipynb index c29d38089267..d4cf14e57a03 100644 --- a/notebook/agentchat_custom_model.ipynb +++ b/notebook/agentchat_custom_model.ipynb @@ -1,13 +1,5 @@ { "cells": [ - { - "attachments": {}, - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\"Open" - ] - }, { "attachments": {}, "cell_type": "markdown", @@ -25,26 +17,17 @@ "\n", "## Requirements\n", "\n", - "AutoGen requires `Python>=3.8`. To run this notebook example, please install:\n", + "````{=mdx}\n", + ":::info Requirements\n", + "Some extra dependencies are needed for this notebook, which can be installed via pip:\n", + "\n", "```bash\n", "pip install pyautogen torch transformers sentencepiece\n", - "```" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "execution": { - "iopub.execute_input": "2023-02-13T23:40:52.317406Z", - "iopub.status.busy": "2023-02-13T23:40:52.316561Z", - "iopub.status.idle": "2023-02-13T23:40:52.321193Z", - "shell.execute_reply": "2023-02-13T23:40:52.320628Z" - } - }, - "outputs": [], - "source": [ - "# %pip install pyautogen~=0.2.0b4 torch git+https://github.com/huggingface/transformers sentencepiece" + "```\n", + "\n", + "For more information, please refer to the [installation guide](/docs/installation/).\n", + ":::\n", + "````" ] }, { @@ -383,6 +366,7 @@ "source": [ "# load model here\n", "\n", + "\n", "config = config_list_custom[0]\n", "device = config.get(\"device\", \"cpu\")\n", "loaded_model = AutoModelForCausalLM.from_pretrained(config[\"model\"]).to(device)\n", @@ -454,6 +438,12 @@ } ], "metadata": { + "front_matter": { + "description": "Define and laod a custom model", + "tags": [ + "custom model" + ] + }, "kernelspec": { "display_name": "Python 3", "language": "python", diff --git a/notebook/agentchat_dalle_and_gpt4v.ipynb b/notebook/agentchat_dalle_and_gpt4v.ipynb index 0426cc6fd2ad..dd84ad238ade 100644 --- a/notebook/agentchat_dalle_and_gpt4v.ipynb +++ b/notebook/agentchat_dalle_and_gpt4v.ipynb @@ -46,13 +46,13 @@ "\n", "import autogen\n", "from autogen import Agent, AssistantAgent, ConversableAgent, UserProxyAgent\n", - "from autogen.agentchat.contrib.img_utils import _to_pil, get_image_data\n", + "from autogen.agentchat.contrib.img_utils import _to_pil, get_image_data, gpt4v_formatter, get_pil_image\n", "from autogen.agentchat.contrib.multimodal_conversable_agent import MultimodalConversableAgent" ] }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 2, "id": "b1db6f5d", "metadata": {}, "outputs": [], @@ -111,7 +111,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 3, "id": "34a5e2f7", "metadata": {}, "outputs": [], @@ -171,7 +171,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 4, "id": "8fee2643", "metadata": {}, "outputs": [], @@ -196,9 +196,16 @@ " - The `_to_pil` function is used to convert the extracted image data into a PIL image.\n", " - If no tag is found, or if the image data is not correctly formatted, the function may raise an error.\n", " \"\"\"\n", - " # Function implementation...\n", - " img_data = re.findall(\"\", agent.last_message()[\"content\"])[0]\n", - " pil_img = _to_pil(img_data)\n", + " last_message = agent.last_message()[\"content\"]\n", + "\n", + " if isinstance(last_message, str):\n", + " img_data = re.findall(\"\", last_message)[0]\n", + " elif isinstance(last_message, list):\n", + " # The GPT-4V format, where the content is an array of data\n", + " assert isinstance(last_message[0], dict)\n", + " img_data = last_message[0][\"image_url\"][\"url\"]\n", + "\n", + " pil_img = get_pil_image(img_data)\n", " return pil_img" ] }, @@ -212,7 +219,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 5, "id": "5558caa2", "metadata": {}, "outputs": [], @@ -227,7 +234,7 @@ " except Exception as e:\n", " print(\"Unable to fetch API Key, because\", e)\n", " api_key = os.getenv(\"OPENAI_API_KEY\")\n", - " self.client = OpenAI(api_key=api_key)\n", + " self._dalle_client = OpenAI(api_key=api_key)\n", " self.register_reply([Agent, None], DALLEAgent.generate_dalle_reply)\n", "\n", " def send(\n", @@ -243,7 +250,7 @@ "\n", " def generate_dalle_reply(self, messages: Optional[List[Dict]], sender: \"Agent\", config):\n", " \"\"\"Generate a reply using OpenAI DALLE call.\"\"\"\n", - " client = self.client if config is None else config\n", + " client = self._dalle_client if config is None else config\n", " if client is None:\n", " return False, None\n", " if messages is None:\n", @@ -252,15 +259,18 @@ " prompt = messages[-1][\"content\"]\n", " # TODO: integrate with autogen.oai. For instance, with caching for the API call\n", " img_data = dalle_call(\n", - " client=self.client,\n", + " client=client,\n", " model=\"dall-e-3\",\n", " prompt=prompt,\n", " size=\"1024x1024\", # TODO: the size should be flexible, deciding landscape, square, or portrait mode.\n", " quality=\"standard\",\n", " n=1,\n", " )\n", - " out_message = f\"\"\n", - " return True, out_message" + "\n", + " img_data = _to_pil(img_data) # Convert to PIL image\n", + "\n", + " # Return the OpenAI message format\n", + " return True, {\"content\": [{\"type\": \"image_url\", \"image_url\": {\"url\": img_data}}]}" ] }, { @@ -273,7 +283,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 6, "id": "d4095796", "metadata": { "scrolled": false @@ -289,6 +299,26 @@ "\n", "--------------------------------------------------------------------------------\n" ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/home/beibinli/autogen/autogen/agentchat/user_proxy_agent.py:83: UserWarning: Using None to signal a default code_execution_config is deprecated. Use {} to use default or False to disable code execution.\n", + " super().__init__(\n", + "/home/beibinli/autogen/autogen/agentchat/conversable_agent.py:954: UserWarning: Cannot extract summary using last_msg: 'list' object has no attribute 'replace'\n", + " warnings.warn(f\"Cannot extract summary using last_msg: {e}\", UserWarning)\n" + ] + }, + { + "data": { + "text/plain": [ + "ChatResult(chat_id=None, chat_history=[{'content': 'Create an image with black background, a happy robot is showing a sign with \"I Love AutoGen\".', 'role': 'assistant'}, {'content': [{'type': 'image_url', 'image_url': {'url': }}], 'role': 'user'}], summary='', cost=({'total_cost': 0}, {'total_cost': 0}), human_input=[])" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" } ], "source": [ @@ -307,7 +337,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 7, "id": "c77ae209", "metadata": { "scrolled": false @@ -342,7 +372,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 8, "id": "72214592", "metadata": {}, "outputs": [], @@ -429,7 +459,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 9, "id": "d5883009", "metadata": { "scrolled": false @@ -471,27 +501,33 @@ "Here is the prompt: Create an image with black background, a happy robot is showing a sign with \"I Love AutoGen\"..\n", " Here is the figure .\n", " Now, critic and create a prompt so that DALLE can give me a better image.\n", - " Show me both \"CIRITICS\" and \"PROMPT\"!\n", + " Show me both \"CRITICS\" and \"PROMPT\"!\n", " \n", "\n", "--------------------------------------------------------------------------------\n", "\u001b[33mCritics\u001b[0m (to DALLE Creator!):\n", "\n", - "CRITICS: The image needs to improve the visibility and contrast of the text on the sign to make it more readable, especially against the illuminated sign background. Additionally, the robot could be made to look more distinctly 'happy', possibly through the use of a more expressive face or body language. Moreover, the sign could be more colorfully decorated to make the image more vibrant and eye-catching.\n", + "CRITICS: The image needs to improve in the following aspects:\n", + "\n", + "1. Lighting: The robot and the sign could benefit from additional lighting to enhance details and textures, ensuring that they stand out more against the black background.\n", + "2. Legibility: The text on the sign could be more prominent and the font size increased for better readability. Additionally, a contrasting color could be used for the text to ensure it pops against the background.\n", + "3. Robot's Expression: While the robot appears happy, its expression could be made more apparent with clearer facial features or more exaggerated happiness indicators in its body language or facial features.\n", + "4. Composition: The robot and the sign could be positioned in a way that creates a more dynamic composition, keeping the viewer’s eye engaged.\n", + "5. Resolution: A higher resolution would make the image sharper, improving the overall quality and detail.\n", "\n", - "PROMPT: Create a high-resolution image with a black background, featuring a clearly delighted robot with an expressive smile and eyes that crinkle to denote joy. The robot is holding up a sign with highly contrasting colors, such as a white sign with bold, black or dark blue lettering stating \"I Love AutoGen\". Decorative elements like colorful hearts or a stylized frame around the text could be added to the sign to make it more appealing. The lighting should accentuate the robot's features and the sign's message without creating glare that would obscure the text.\n", + "PROMPT: Create a high-resolution image with a richly detailed, happy robot made of shiny metal, standing center frame against a stark black background. The robot is holding up a large, rectangular sign with rounded corners that reads \"I ❤️ AutoGen\" in bold, white sans-serif font, with the heart symbol in a vivid red color. The sign should be well-lit with a soft glow that highlights the text and makes it stand out. Ensure the robot's features clearly convey joy, perhaps through a broad smile and posture conveying enthusiasm. The composition should be balanced and visually appealing, with an intelligent use of space that guides the viewer's attention to the robot and the sign.\n", "\n", "--------------------------------------------------------------------------------\n", "\u001b[33mDALLE Creator!\u001b[0m (to Dalle):\n", "\n", - "Create a high-resolution image with a black background, featuring a clearly delighted robot with an expressive smile and eyes that crinkle to denote joy. The robot is holding up a sign with highly contrasting colors, such as a white sign with bold, black or dark blue lettering stating \"I Love AutoGen\". Decorative elements like colorful hearts or a stylized frame around the text could be added to the sign to make it more appealing. The lighting should accentuate the robot's features and the sign's message without creating glare that would obscure the text.\n", + "Create a high-resolution image with a richly detailed, happy robot made of shiny metal, standing center frame against a stark black background. The robot is holding up a large, rectangular sign with rounded corners that reads \"I ❤️ AutoGen\" in bold, white sans-serif font, with the heart symbol in a vivid red color. The sign should be well-lit with a soft glow that highlights the text and makes it stand out. Ensure the robot's features clearly convey joy, perhaps through a broad smile and posture conveying enthusiasm. The composition should be balanced and visually appealing, with an intelligent use of space that guides the viewer's attention to the robot and the sign.\n", "\n", "--------------------------------------------------------------------------------\n" ] }, { "data": { - "image/png": "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", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYUAAAGFCAYAAAASI+9IAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOz9Z7AlyZUeCH7HI+Kqp1LLUllaAVUQDaABNApaE83uZguKniFpTY6RtjO2Y7s7y/kxs7Njtmu7tJlZDm25OzNGTRrJacolW5KtgO4G0N3VDaCAQqFUlshKnfnk1RHhZ3+4Ou4R976XWdW2+yO96uW9N8LF8ePHv++4CA9iZsadcCfcCXfCnXAnAFD/vxbgTrgT7oQ74U74/59whxTuhDvhTrgT7gQf7pDCnXAn3Al3wp3gwx1SuBPuhDvhTrgTfLhDCnfCnXAn3Al3gg93SOFOuBPuhDvhTvDhDincCXfCnXAn3Ak+3CGFO+FOuBPuhDvBh/ygEbu9Q6jmYwAMJgLdTmkEgMV3EAgMtp+AvU8EMPs45rv99HlJCRiwOdyWXK2iNvMPwvsKNL4284lT+ehpGi88i7KNbtzNWFchZ3e3KSuBmUEU53drOgrlLNHAAXQvYtiMiBLdJJkQ2jWflr08pEaXStr2W5aQStCUpu2ON9+2ikT2bSKw07HvBgQiBrNJFLf78sCNL2lIbaclrbCqZszUCsTvljK59WZbqy4LovyDqIFFq1B8jZMKkxDFN09Lsam4bf2BW6rlul8EX6Is+DZ2dxyaHVjrcYUW2jlQ12Vrqkjegz7RXOR9MOtYENm5OfmNJe12QPQ22bWrJKgxVkAAzlsqqqWFBRmBo3oSHaB7trVLcjuWz5qEy7th1NwgVHOtafQNAm0teR9Zl1WQQyNHcEkc912rq5BhXH67YYu2bMMbZ2MuZsPuRSLZS9ucCpZyLZYole6PIzS1Y345qEjRykEGESU+00EAP/SsBvi18WfK3I17cZlLa5nk6c3XXo+4MhGtKWoQNv598HCr1LRQqLZr+4HEIvy+lTLbonEwfRLGwQDqer5v+gOTQp51PNhGndE1phDcY9bbDM43Dr/TBqSGfUq/al8ttlnEokb13yWTLwFY+z2lrzjzkIBaxYyFEeMpQVgtwVtFmp0gOjGC8ACTlBePUqTcIt7SXhwLEecW06HM39gXtbfNMvBKMmsXKyCP4DYfIRXb32srM8p3UX2a4rVl2RYW3pPE677aThkTxEHRRpbV7E2BkJzNcTPqgfI9gABtjRb9DIW2uRuLTOYg99+RcABY+OMODJgRJ1l9iWar3mlSiLwtD0iC3hd0zoOFNshvVySJf2Vh7eC2T2ZtWbnLUcfbZ3SQWp/Ir4ndbKPZRG2AZtFKOmJRNOnptoBUmuGtcfRBXBhHUotgzrVCOmV1a0TthtdMLq+QOoKuFK/ooHVODUMCof3q8hIk4iWRpr8IL0UXQRI30oboXovlC3lEBaU3hFBt0xZt0UN2cioj2Koxt6SAhf3KaYjEr9ZosQBR5RZFbkvalDp1aVIHMw4Ux1im14XhHYL+A5XVkmZBfOmuVNU7SApZ1o29qMZnmy90gNCoTPACFtczbsDFk0VLNBUVEHqtz4nhp3Jc9H2D6ycLOcl1IrJlNVFBAl4jT+GxsYwkrrufaTUXXkjyj7uyzxyxaS0im4N7AlF1AO/ZHISPGrcYsSObZJNWmppaiWVw1wR6k4/krot6WOLw+QtikBX2pdr0jXj7dKH48i2ShUsjSauVhNLcnOVS9C0aZcU/luYWJF9SyVaCWG5bblwr48QzBmmIlc3JlWU8u29I7WNRStsIYvzfHL22SCwJsDXPOLIfNRLe4ZFCKym0NtKi7PZXqYxBjTuykReV13JPooSLJTtDQkhO3Qda1kvAi5jAxC2yS2iy0zaehERT269qQVpyZQi5Ze0ZzWsNlVt0Y5kBIaxhUNIGAgild5sCuAT3hXpb1HS+AwW4CB1cApMA9KQQ8sAsYh2oAaUgyT1baTmRFlK5RfxQjgMAYhYkEcMC2XRe/dL5aHHpfblS9y6fBfQfNJZILdqLybXVMghcHlj8Gyp8IDiRMIig69YI4UIrWi5kkSSEdtxPrkU+SeiJy8pJS23PM7LlxrV20rylkl1n9PmZPv4OTx91m9L5nxQbSHJXXk+poV0xaaO0EcoiFbU0aZKcAD8lEEnGbm4/Xa5eEFpux2AWLjqvUHzxyR0JEBmAUAAyBjoMrOQFDq+t4tjhw9g4dAjdXg8ahPl8htFkjNF4itF4jPFsisl8htm8xLzWqJihhR6kJ8uNf2Vo+kWLDeRgvlPDj+D0TjN+XD6DoFo7dTvup5CY2opr/ECEITML9tElSjzqZH0nstpQ/jIHJ0jT7tS4XWOOQBqztrxs6i7kJXXmNcIhI09GckcUx3m0BW5881QZbTppEy9u8ZZITfRsFtVKDjI08WER3UUSOJ0vDM2WT/Nsb9H2MtNqtqnu1kJ7apPvOzx9lOfdlHyQVjnuCrcWmp5Y0uGFSxYU1xwyhrAALoRnl0aTJNSeeoHQJMmtSYJxRpZsLFGQlUkRIQMwIIV7jh7Be558FE+9//24/4knsXHqNKg3wFwD83mFSrP1IhkZgBw1qJ6jLKeYTSbY3RliZ2sbuzub2Nm8iZvXbuL61evY3LyJ7dEIo9kU09kcs/kcZVVDM0MLDXAkrWvRZqdra+k4rgPn5V0jtIkl5n1ch7BBs93ZaC3NgT3JdBQtyJEVid16DllZuNmyfleHrPMCTzadjPORPNmk1iZAh8kWY6VOEEfuNDH3mk5W0EmsGW754TdrtcVpCV4vyxahk3mqxQCYlNbOtclNERag6cFGCA3qtFnGI4xF+lgE5DGmLNamdIRunxDiENoGFm/e4ZFClnWTufK0WVOjbmvNxRzY1iXaGzI0j8lRevWLoDzpsJFoKYjvSwWRGHFncxIhkQmR7hwRkP2ekcKhXOH9Dz+AL33ly3jyY58Ar6zj+vYY129uY3tniMlkgnJegrVGXdfQmgFiEDGUIuQqQ5blyIsceVGg2+ug0ynQyTvI8wxFppAr84e6wnQ8wni4jb3tbdy8dh2bV69ha2sLNzdvYmtrC6PhLiaTCeaWOCqtoW1tGBY4LTG0eX5tftsib6rNNZTPZATLMUzqpmjgrjkUc1grc3TTPxacOJqmSEkhdjyCSGyJwtlRKpmoh9sBFNVSeg8ifwiC47aZZ1/rJQRs49kpq2Zei+05BY20ix4EGBKOSgDe9bn2nNrsZt/C2pSx2LAa/TC0WADgprW5bOOpQ5fuICSxTLz4OaRm3OVIGctx0MD4YyCFPOsucsFwMNUcILh+Y/NtPnGwKNwCkKdW3Bot9ewcwMgLFhzSzfRSautpymIkIWRE6BHw5OmT+As/9xfx/i9+BVvTGq++fgE3N7cxGk9Q1RXqsoKuNLSuwAxoXafChN9kplmYxRw8wW8/VQCIFFSWIcsz5EUH3U4XvV4Xq4M+er0uOnmGjACuKsxGOxhvb2P7xiZuXruJrZtXcXPrBrY2t7C7u4vheITxdIJ5WaPWGrXWtmzbdSLyjHUawXoE6qELpq0uwZpTt9Zrg+HmB2VOAQBEEoFdxOJCi7xxLoCGa9/YF3Xz9bJ7e5uOuSXmQpHedUsH2kSh7Kim6VNy4qFP9uTVDIsmtyIs93It7+MhbpssFO61pGvO9C8op+k3tH+25h6DsCQFGUfaY5xTajXNibtI8qSZSHxLZzfiR9YSvEmrdJvB2QjxO74ltY0U0lZy31sKAoKndoAQmqzdYEJT+x6TmBe1k0BqSK2leomNMaTTAg6LKM4m3QEjJXWkQghTRRu5wuc+9D781f/qvwYdPo3vvfAqrl27htlsinJeoq5qVFUFrbXxBGHma1mH3UcM+DlvRQRtb2itQRQ+wQxSAJihLOg4eQ1+UfgOAJY48rxAURQoOjl6vQKDXg/9fhe9bgcdRcgJQD1DOZ1gvLeL7e0d7G5u4caVa7h55Rq2NrewNxpibzTCeDrGbDZHqc2UVSjLakoCY9TW8af7LtPHzWkqFm1L9YSDaE3Um4Jr4oZ5xjk3SUoCf1unTwIJmOIYptgalWsbyZRaZhGVH9KG2LGBR5oUlZeSSoKSfBbdO0DXbZAUEMii5XHfxaTNkRwN4F92TdQQcBjSRvaLdic1gKFZT5GmmUM7FqaLyLK9bs3vP1hoNBvzO/3w2rKRghRjYVH73E9zS4duceu3YnokQ2IIi9q5werLDMKxQYiZ+jly4EB2qoCECIoIGQFHigx/+itfxl/4P/6XePPGHn7w0qsYDUcoyynK+Rx1raE12z+NuqpQliWqsoTW2gOIUgoqL5CpHEplIEUAlAHNaB5XQykjc7QV1gITawbXGo5Qaq39J5ih2cAwkTJ9XCmzFqIyO+oo0Onk6HY76HX76PZ76PY6GHR76HVyQFeoqxnmkwlGu7vY297E3s4W9rZ3cePGJrY2N7G3vYXRaITpdIr5bI6qrqIWZQAstgkHYhA7uiSoOFJIFmWX4IjALYGKgMi7nSQCeLazD5NwMuCcGGMv2jsYHMwrFNkE7CRIWmpAi0+bPvgYVVbcb0NaQdgLlNfes+VNQrQ1TXyNY8vaxE2xKPsmBrfnHILFlmS4luqu/emaRb59SNV2vekosLgaW9XBUFLodh8O830EeIcXmiUpRIIs62IHD00zTO+6r+yNLPYEYDtQy8Jmm7Z9Egft+xFCSCe9mVZJBZaQ+yOyC8rAoYLwsz/2o/jz/8V/gxffuIjXXn8dk/EYs/kUdVmhrkpoXWM0GuPK1Su4fPFN7OzsYD6fA3aUwFyDtZnlVypHXvRQdLroDfroD1bQ76+gP1hFrzdAp9tF0emgyDNDIorMLidlFzqZUdcaBJj1iprtuoX5Y2ZPMGY+HwCZ7bfQrjmUVzBbEjHpghayXCHLcxR5gU63i36vi/7AjDwGvT76vS4ICvVshmo6wXwyxO7WTWxdv4rNGzexdeMmtrc2sbe3i/F4illV2pFUDZadlUI7OFCRRGKZwvzvveEAitEsfgu2hLwcmiduywIz4sYvEnkuhdWoz6X0xo34YUQud9OFDFjEbS9TQnMr5orym/ImPTmdL/N9uFlys4smRNfSh8N1z64tNZIJFgN5DNWpaylrd+tYtwiGmuUso7UF5S4jTsGuf8xbUtPqHCC0Cc5IdoTI7tWsZbpVNOXtVs0swnoLbm4bHdGiiEEuAyJt9bVdKPCT+bSgo4igCBgohZ/4/Mfxn/9f/gZefuMKzp8/j8lk6KeMynKG0WiEl158Aa+9eh5Fp4cjR45gZWUNnW6BLFcI81MKBAUFBWbGbDbDZDLCdDrBfDZBVc5RlZXx8omQ5RmKTg/dbg/dThedbhfdrllTKDodFEUHeVGAoECkoFn7qSszOhF6sLqL58soEIKuLXlpsJbHeDjAMi6yGYG4vJUYeeQoOgV6gx5WV1ewtrqKtZUB+t0C3UKBdI35ZIbZeILpeIi9rW1sX7uBG1euYXNrC7t7OxiOdjCdjDGv5qiqGrU2owc5fSTJQnZ5/zvpyfI6A2KhGnE3aJhSsh2CvfmFEYEsyv7TONrElx90H5FUIoBf20GY3mqEBRjt25sIrJM6S/1wnIp9RHmZRdyQaAEkNOV1yvJkKgptQFGKS0EXTdCNp/zYX0GUNoI8LCbxtuDFs1+ifpTksxhND4izKf+5S/zH8PCaHylEhR58lLDobrti2p8TCCWFpovJoIVz96HncBbOwUYJLi+i9IK8buTyIwQApAgFCB9/1/34b//ffx+78w5efPEH2NvdDkA+neLGjZv43d/9bXQ6PZy9+z7MZiPcuHYZu7vbKOczwAJsWCzOkRdddLt9dLs99Pt99Pp9dHs9dLtddFQHRAq11qiqCuVshvlsjOl0itlsgtl8iqqcY17WhgCUQtEpUBRddDpdk5clkbzTQZ53oLIcWZaBSPm2IBBIGXJyU09uwdsclOd6k0RiuUZirmubhrXTrPP+bDmkQCozMhQ5up0Ouv0++oMBVgYr6Pf6KPIesgxQVEPrEuVsjPlwD+PRDsa7Q1y/dhU3b1zF3s4OxntDTMcjzGZzaK3tCAceAL2oaSdD6Gwc2Q63fBNWLkzT2zOb/LmRLv4RLw7HvSHuQe2TZVpcsaIHfF3igIYgnDFemCQC+rguBwPSZL+ZzUMg6jK3uqG8Jjm4MuKDWFKIoEYcdz0UswzvlgN+s7zmvVsfi8TB5+Gx7p1+TiHrIKKfxc78LYa46nI6J/wGgqmko4S4mRoCLTEgv33vIISQZO2f1xBPTBMF83V/IDdKIJw7PMD//a//ddz13o/ju999AVs3r2M03jXz6JMxLl2+iG/87u/izNm7oJDhzTdeRjUdY6U3wNrqGgaDPjqdLkhlAAF1rTEvS8zmc8znM8xmM8zLmdlCWhuAIwC5m64Z9DEYDDDor6A3WEHPEUengzwvoCiDZqAqK0xnE0wnI4yGI4xGI7M9tZyhrhkaZodRlpFZiM46KIouuv0+er0eOp0u8tyMOrJMmakqIjvDZFuLGexGH5o9MbhdU2zXMIJnZQmEDYJqH0/DPrYBrUM8y5xQmQIphSIr0O12sbKygrW1PlbX1tBfWUGnyJBpjYxLUFlhtLeF3a1NbN7cxPbmTexsbWJ3Zw+j8RiT6RTz+dzKrS0Yk3CQQoiBOoK1CPRcJEcK8WJ7HAIQSTAz4OO2zC6CISlP5FC7jwSBFoF9SgyLQgyo+0RuKaV1I25KCGmWLaOW+GaQrRnanUqJRvEepFtdB7i1uG8/pKudOPCW1AO/TwHe+H2Zt0YMC+IljxLJ0hA3pGueZGE3lXFRuY3yHTO0uRupkCSM2pqGPD5DHG1BSTL318uAH/vMx/DwBz+JF197C+PhLqbTMWbTGaqqwtXrN/DN3/1tnLvnbly7egN6sov3PHg3jhw9gWKwju5gFd3+AB0HukUBpRTIyaA16trMsZdliflshtlkivFogvFojPF4aJ58Ho+xd3ML1y9dRlmVYbuaUlCUISsydDoGQLu9Pnq9Pk6dOoFur4ei20OWm4MRWTNqXUNXNcp5iel0gul4jOl4iN2t66jmc1R1ackjR5blKIoOik4HnaITiMiOOJTKAFIeJ/0oA0H12m531axBUGY6CGyIQZvrZvuVuQYi1GxsZ6qBXda4ph3xMMBmsZyy3E6t9dHrd9FfGWDl2H2469xjeHwwwEq/i6JQ4LJGNZtjNp1gMtzBeHsLw+0d7G7vYG93B3t72xiPx5jOppjNK5S1WeuQuw8MQBI0ScKDqHcMGhx9epfPeuqul4RhRnSQYgJcgZSSLuB0HK2PxLvDwshAAKYA4SY+UxiBgANxchw77XXx2D/20hfiT1tmHCeQk3dpNnFICTxII9sgtEuTnZaNEqJnl3y+TZne7ighRtNby+sWSEHkLN1gOmBxC/CWG7fbRwQUCo1iteWwcHTg+5T1rmzktLxWKW19pQT+Spq/VYsbSGSK8NipQ/jMj/0pzJiwvb2N0WiIeTkHc43pdIrf+/rXcPrUKVy7chWnj27gsYfejaw7QN4doNtfQ391Db3BqtnV0+mgKApkWWY8cHId1IGd7b5am4fd7IJxXWtUZYnSjiymkwkmownGoyGGoyGGwzH2hkOMhnsYDYfY2r2O6XSCqi7NLiRF5gG53DwglxcddPIOuj0zXdXp9bCydgydooPC7ogiyqDrCmU5QVnOMJuYEcje1lbYZcVuVJOBMpt33kGW51B5gdySCqkMbnTnFK3BdtrHrF2wXaOAXxyXIwzTRsyWXGqG9/iZw3MPwsMlmOkqUsrWvUCnW6DT66A3GKB/7C5s3P0wjhcd84BgloG5ApczVPMJZpMxxru7GO5tYbi3i/HuLqbDIabjCebzCnVdm0V9+64S+YCgwPr4UyNMZwnAhgPixD7DiMJcb3O2DR+w/5TdyJu/vyagkER7JCFeR0LADU7lFmmiunLL1ZaiZD9vwJHop223RTwJ3E3akkDelFYCfEosTauSknF09R0ZTbQ1x4FHardKCo1C3x6XxSEeJSxjdkJjYIRIE2lPojiWN+qDnK+cTi35/e82N7GTgmR2tgMoIvQV4UeeehT3vvtDeO3aNna2tjGbzaBrA9TPf+85dPIuhjt7ePDus3jg4QeQ5110un10BusYrG1gZXXNzu930ekUKHLj3SqlkNndRO5BNU/W7tkG60XrWoMtQejakYWGrivUVWW3v9Z2++sc8/kc87khkelkhuFohNFoiNHeHoZ7exgOh+b3aAc7N69iPi/9cxVEBJXlKIoC3V4XvW4PvX4f/X4PG4cO4UTnBDpFgaLIkeUExQCXjLIqMZ9PMZtNMZ1OMRrvYTqdYFZWqKraDASIQCoH5WaNI89zqCyHUrnZKuuantgSgGs6O03lrrm1Du+9Wkjm0Ic0AK6NWkvb/rDAaaZ8gvdLZBboKSMolSEvzLRdt99Hd+MMjpx+CGf6PfS7XRQdhQ4RVFmjno0wHQ8x2dvDeHcXezvb2N0104rj8Riz+Rx1bfSqPYhQKJuMTbM7YtxtnxUjipAqXkyNep108Jx5Exp4QuJfY/fkusaSfhT6j+tT6YYNKY8sYwHOLy6n9b4EavE8uvWhKEocQ3lMVIDUI5LrbfWI/dPFY4A0zX4hjpdKKXCLORrV7RdugRS8m/3OcgFStTdMLmqI+G4w74WevtQN4u9Ei1Km7owolZQ992ax5+IcogyEjlK49+gG7n3sKRSDdVy//hpG45F5UrmusbOzhzffOI/jh09gvcd4+LFHkHf66PbXMFhdM4Swso7+oG8AplMgL3IUWQaVKUMMpPwWU0MMcteGm2KBAET2AMNuUdgSBNsdR4Ysar97yH3q2pJIbcijqiqU8xKz6Qxzu1g+GU8xGY0xGo0wGu5ib2+I4XAP4/EI25s3caOqDSG6N/ll5nmLTtZBv1ug1++g1+9hbaWP08ePYNDvo9ftoshzKCZAa1TzGaajKWajCSazCSaTGcaTsTnXqSpRaUbFhJoYTBkoM4vTpDKzL5jMLi4iu3vLMDi0lvt1AmEY7rCWqK2Ly2x5xXY6XRnd10ANoJ4AUxbrJnDASeCMQCpDlhXIO110+wP0B32sHDqNo6cfwF29HjqdDBkpQAN1WWI+GWE6GmG8t4fh3i6Ge9sYj3Ywm44xm88MgdelX2Oxyy8C4ijaUyEd62gKw5q/97E90aT+ctjX1Og6oZeF8jnozcR1jBPnkjqB7qpvkzZ3eiEmxVghIwcnyrds499wN8aodjBukz2dTFoMnm0OfluQ1NWqjLanavcpW4ZbGik4Zj2Q5AcOYfqmuTQSGiTMlbIwj8D7LZKGr6GoRPPUlsL8csabKNSRSXt+IboiIMsI505t4C//3F9C7/BZTOYzbN7cwrwszdSFJly5cgkba0eQYY7Hn3gviu4KeoNVrKwfwur6YaysraHfH6Db7dgRQoHcjhKyTJnnDkiBxGjBb9UW8mktIMDqUWsHfGaayT2PIP/gvGoOhMHu4bZam2cE7IiH6zAK0faMprquoCvz7EVdzs300WiM6XiM8XiEyXCE6WgP49EQ09EYk/EU8/EU0+0dbJZzC/Bm34xS5gnrbqfASq+H1V4f/V4Hg0EPhzeOotfpmamrIkeuCECFqppjNp1jMpliOJ5gOJ5iNJ1iNC8xmZeYVowSBA2CJgWzbSkDUWb06aasBMCZEYjRp9+n4fQrfCdnD6RhnulwwMoMqhm6AjQmKCfAZAfYYiUSGdeClLKjwQwqz5F3zKJ+sXoIg0PHsK4yZEqBWCPjGqAa5XyK6cjsqhrvDTGbjjArZ5iXFcqqQl1Xdj1GkgL5KSkCoufauEEIAlT9FbGw7LtM7H+HbbT2nicHjgw2hZgAgsnm2tSXlBVqhJjI4rJi/ODobjxGkATWVlR6bbHD2fYrTZ/eDVIBDjMXhLeB0bdECtEQRLTc23tIO/UF7DVyXo0lAzZdMgx/01FDJGnyVRpge8xGLgb9/T1nHrJMdyibu2acDvYPqvVzwl/6Cz+DweFjOHLmFHZ3RhgPR6grA8BVVePa1Svo9bp46NxZ9OzDZoO1Q1jbOILVjQ0MBgP0ej0URY4itwfe5XY9QVEgBSJfrvPuUk/Cn2QZHGBLCoIEXDxG8tvFCSMNs2NI+7WL8IyCHYHYB+wckYT1DQ1dVeC6NiOUugLqyjzbUJk/XZYopzPMJ2NMxyNM9vYwGo4wHg4x2hvaozMm2Nrew+XZHLO5XfcAI88UekWBQbeDfq+HlZU+1ldWcGz9EO471cOgV6CbG+KgGihLjel8ivFsjuFogp3JCKPRFHvTGfbmI0yqGrOqxoyBEpY0lAKUsk92m8VyaxSA3Z3lf0pro4CNGRn9u7Zwm0YZZiGfYHZU1cwoIeOaTFKXyG9Tdgv73XWsrJ3AkW4XeSeHgkIOAukaVTXDfDrFfDrEbDrGZDzGeDIymx/KuVnnAKCZwPY8LVj7DhAQH+khPxZOJZHsTaKviS8pIYRPYcuhpCSP/YKkGClCnEEzu5DuVvEuBvH2he6UKmL4b5cqXitq5nK74fbWFAABOm3CHzAPxEAbga5HLduROOZnr47WJxhFcPmIwpwiU48k8oL8GTSpZyAeQYoSi6YhhiKFx+87hs//+E/jf/qbfxc//tQPYTQaoyxLUz4T6kpjMh7j2OE1nD5zN7rdLvqr61hbP4S1tXWsrJhto52uWVjOc7PIm2WZJwWyR1240ZQkhbbuFfc/tp3XgU3s/QYysGDFsN8dQSAiCzBbh9nt8NGeXLQfiZiRh9a1jQdLKBqwWz3NFlXAjU64rsF1ZaazygpcleCyBM9K6OkM9XSKcjzFbDjBdDTCZG+I8e4eRntmwXy8OcL2xUu4Us4wrabm7CXFUJlCnucYdAoMeh30Bz2srAxwamUFa8eOYdAfoNPtg1QOcI1yVmE8Nu+x2JuNsDsdYzgdY3c6xd50jnHJmGmNEhoVFLRSZqsoBfIAKWM/SvlmYB0e33NrAn4zROSlO5JhGyc0pSGQGroqUcKtnXiDNHZrj0BRKkNWdNDpdNHprqB79AhWTxUosgwZEVjXqCcjjPa2sXnzKrZ2NjGez6EJ4VjxkC284H50Hdsb+Z4lF6jtPwdYAI37afDtw3QUYlNvzVLCb7qQvOjxPpm5pCH2+JCGZopQZ05KWCxyg/IWhpTalsU76M77W9x9JDzNfQo4WIXCZzwQkr63KUx2DeEbtRfSbJnot2/UhRI5W00rGXYXpA3qvQBr7F1F+NKnP47JtMaLb1zEYGUVwxtD1LUBQyKYoXxZ4/jhw+jbEcHK2hpW19cxWFtBz82ldzp+YTkQQjiuwixwwnqPwYt0BBjkFN8ZSP2dQAzmM4wi4L9HhOCvQUw3SaJxbcde7+6T3dZRwBKAIx8OD7OJB+DcfXJnNOnakEddW3e6tqORClxV0FUJPZ9Dz+eopyXqyQzVeIJyNEQ53MNsdwezvT1MRyMMR2OMR0Ps7Yxw4+oWzs/nmNWGpBQp5FmOTqdA3u+gNzAPCPb7fRw5tIbTvaPodDvoFF3kqgARoHWJ+azGcDzD7miM3eEIe9MJRjM7bVXVmOoapWbUljxAjjQIpChqC6/r1EaFubtPc0KrBpQZybodWYaMzei7ZqCcjTGF7Mdu6pHs+kuGIs/RPXoW95y4G3o+weamIYh5ZU7pFcsBZjexB+cwUm0uvTlAFzXwixxpp43x3tOBy3iRyy0JJ2ahKDgiiGf8SXxb7KsHQmjKG9fXfadGe3FyfVG9g9O8DFGXIy4dkICBWx4pUCztkrCoeErutzeVzEduRm2xgraRQrP/pBpulhksNXhWvr7pWCYYmzjhwdqpuXC4l+OHn/kMvvF738BkViPPc8zmM3tekUleVSV0XePIkSNmlLCyisHqGvorBnS6jhDcLh1HBnYrqlJy2kiSgdFYY7AQtZ8DHPJ1kVMExobEb//BLdfdbw/zAFvvt6UtwnMCLj+f2BKGDgkkITkiYwBuRAE2n9EaiM3DrnewmYMB6tr+VUBVAWUNlGbUoedz8GwOnk7BE/O8xXRvaHYA7ZldVuPxCHvjCcY7E+xc2cV4NjNrHlyDic2cf7eLzqCHlZUVrA5WsDZYwamzaxh0u+gVBYosBxio5xVmsxlmswmG8wlG0wl2xnPsTKfYnk4xnM8wKmtMao0ZCLWyowvKAChAUfIkdWgHTyjePglkD0k03cW2kbN7AO4cC2ZAVzXqijGfMoY2nlI5+mvHcNf6Uexu3cDW3qY5Jr0BakKmBgiI0aoH7kVxZYrw3aX14O1HJlIR9h+Jk+K7pB7X05uCSBBeBqbckNPRSbgm8SMVaXHe4U4sZYqhB3PBgYMOFW5j+mgZK+wvnEsdhlTBy26jjCYNJPfaCbsplvjhh4CRATOasWANUFKTbexwaD7SB3UIhLtOHMHRs/fiN//Jv0YGIMsUKuthkVLQmu1iX42Nw0fQ7ffQH6xisLKK/mBgvM9Oxxw5kRdmlKDMjiNFdpTgSAGOFMxpSBEbOELz02FxVRtmyqmhcuxwOeMMLlPk9YnLyKReBT94MpEk5H6LtQ0AYscvR3nFmYp1EJcfIxq9wJGHLEMzyO68Yq3tCESD6gqrtR1tVKWZsipLoK6g5xXq2RzVbIZ6PEc1nmI+Hps1j91djPZ2MN7bxWi0h9HVm7gyu4jxfIp5VfkXFSEjqNw8JDjo97G+0sfaYA3nThzHoDdAv+iiQAFAYzavMJ7MMJyOsT0bYm88xPZ4gr3ZFKOqxLiuMQIwg9ltpQEwmelEt2BNbqeVffFrWOOVrRp02gQfRl2XGI5KKJWjOziM0/01bO9ex2gyMmWym1IR+fjfMWZEXZVC/EW40t6tLXJQ4kFLxG8tMIBzAH5qSbQ/yEq0iqVvYlk8dRTTQUxQTbFTguEGER6AEG4h2q2RQtP1PHCpy2mkXSXNq/HCSgPYkSRIHQAK6m+jG4+jtmC2UpCQRTZ8/D3kqQg4d+4+TOYVXn7lAo4eOgqQMjt0bEHmwDmGyjIzdTQYoL+ygt5ggE6naw+ny82DW27ayI4SyJGCnTZSbmQgCcB+SiUopbzE8iwehpx/hhga21pbXYTUwsjT0QIA8wpJjgDC479UuS0rkIyL5A4+cmwkOz3HZtJCaG6tw7eSzM91UhdH/Pntt/bhN9gFc7bEAS2e9ajNKMQsmJsdVlxWZspqNgPP5+D5DHo2RTkZoRyPMBsNMR+OMd4bYm9vD3ujXewNRxje3MP25ZuYVxXmXKMCAHcwYLdjHpTr9tHr9rBy5BCOnjyFblGgU2ToZAqEGlVVYl6WmM5mGE6n2JmYEcfudI7hrMS4qjCuNeYMVLCLxyrzxOFGl1H7wE5l2fO2GGbzwLSqkakMG4dOotsdYmvnhn0Az7WX6Clyu2ILPPjmbbq/jXix6bhRBzcjpnmkv/16QFrwPmzSmm1zrOHuNnFrMb21idkGY05+eeWA44QDx7r1kcJiQrdhkZKaaif/SVHaxcWkKw/S008+U3fHTa0sEl4MreLDz+JUrWYUBg0mLhPuuu8evHX1BnZ3Rzi6fghhXcSWxeaFOEop8/xBr28ecup0zaJyZgjBLCznZoRgtycSKXuWkBwpOMHc1lShIVc3MoTFAKbzEvOygq7Zk4zZRquQZ/aBONhdJxaH26YkJbEAYVQROi21Jmxb0/B6ZS0cSEk2MREHLnfrFtK3Erna6arQRhwEt7/9GgcLFyVaJ7F52ndcuNGF5hpcuwVxHXZQCSJBXQF1adY7arsmUlWgsgTPZ6imc1TTKcrpFOV4hPnI7LAa7ZoHBIejCUaTCUY7I9yY3sRoPsfcgTAy8xBfr4Nur8Bqt4u1Xhenj6zhXKdjnmvJjA4qZszLCuPZDHuTCXanE+xOS+zOZhjO5xjOZphUFWa6xrzWqJEBWQaVFWZrLmVgaBCbhxxLZnQ6KzhyOMP2zg2UZdkYzEXgLaZ6Iw5wzmYbLou2kOuAkZ/t1jpl5m04IDAiyAXfV6TMAYWEfSVZxjWN74Q8XU5teQWshP/W0lcWXHGp2/NuC0uB24dbP+Zi33ylOtOr8fXQViyU2OrDQ7Kt3z1kddgQKSWEqJwFFRDrCfvGbaRF5BERgCNHD+Pm9hjzqjbg6xZTXQPaXShECkXXnCvU6XSQdwpkeW7+stysHyiFjMzZRG63kVxL8GsKQOPT1Z6IQYqxN5ni5s4IO1s7GA6HKKs5iIBMZchUYbc0ZsjtzpyiKNApcnSKHN2OeQNbbkctmZXL9cdoR5LVi3EaBQRYPFYUz7tGn27VUgK3APRQs5RwUl9NjkQB6IBLZAQOcRvrIvIae1J0005u7UPurPLkYRd4/TQVh51X8HnY3VZ1jaI223K5Ks1fbV6/aqatKvC8BJdm5FFP56im9riQ4Qij3T3s7exie2cHW7t72Nsd4uKV69ibTTGt55hzDQ1GlmUoihzdbmFOlu120C26OLq6hlOHj6CTdZGrDEwaFUrMqgq74wmubu/h+u4utmYTTEmBip5pH8AczcEaKitwaOMYdnZvYl7OzEhR9NSon0dTTEnwmNgER2/XSQJPNjI+o0kSS4qMqSHe4hnzizweJw4O9YJbAqR1kFfk7iUJ8UuDxZlFZSwnBCDZH70w3PqBeG6sdwC8jBm4ybTNQZCJ13yETd4XZpYSQmMYEkCDxQvTW0UXOyDcSKFJWmlaE4NMAV7pTAp5t4/ZvEKta5Tl3L/TwGVixDLgnheFf5eBAWS7w0iMDtxb1TJl5ofl9JHfIw+yvwXgWpLTVOPqzR1sbm7iV3/xl/D97zyH0XAPdVX5M42KIpxjNFgZ2L8VrKysYmXVHMjX7XXR7Q3Q6/UNiRXKgI09cbXIFYo8R6fTQb8ozJQXGQJRSnlrNpgv4d1NeUlCFsDNbuE/AQvf7ovcDREvC7cDGCAetSSLtd6ZsQ/6pecpxSMJDnUT6xqAuAdx3U1X2S25/qlyLa7b3VXme+UXzrU2W3TrqoIuzYOB5uVEU8xHY5TDCabDIcZ7uxjubmFnZwdbu7vYGo2wPR1ja2sXw3mJaaUx5xq1tU+VK3SLAiudLlYHA6wfPoJTd9+HnHJcvbmJV668iZ1yCmQ5CGbLLesaSuVYXzuKnb2bKOdzgcsBWEOLUNxX0wblEHsxVi7wir0RCbKIMIvgXw4R5RU7Js4KYquS8B37967o/WHXrUmKqXDmgwG2wCV5aXlKDti035ZRGw5MCpakBHgi1uuCNItEboKsU3jbWkJcYKsH38Y0xJHnfxBp/TkuDRnbxi/JUMR7LgCyHHVV2+NqawFugDt4zWxhJ2R5gawozENHeea99UAI5ollRY4QxEjBHW3hZLe2TwjfGRqvXbgIVDX+yT/4R3ju2WdRl6UBIh+XRPpAXiCIYzQyqNyQWLfbNe9vGAzQXxmgv9JHt9fHyuoK1tfWMVhZRbdbGHJYWUO3azzRXJljOrp5jm6vg36/j9XVFfQ6HeSk7DumzVvc/JqFbwxj2K6vS0sJ7caBJBN7iGyNAJKv6ZSjBtHEHtSVJAX4oy4CATjwp2jE5HJ0ebqFbkcsbvQoRxZaEo2/bg/9syMTuBGKfYKc2RCGrkv7BLld/6hrTxqlXSAv53PMZ1NMphMMh3vY293F7s4OtrZ3sLm5hZtbW9jc3sHVGzdA2QUMVgY4cugoTp26Bx+968O4cPkCXrr0ptm2a9cPNNdQSmF1ZQO7egt1XVniZ2+PcpQvuw2nn34413QC4pCihIBruQDt8vMN23QOm4giHL7ILQwTQlHswIILZEtzFr9ovxTtIeBT/OyDXB8MIHDw3A9MCo0HxQ5GOkkey8RKfXA5pRSuLfX2o+yk2mUDLyu6bUFZRnA6cKMCIYllTVdHpgzOQMu6BsE80OZFY+fpk3/2IMtyO42T+eMNXBx3lEUbIXgCIPg2CltlGT84/xoKMH7zN7+O7337u5jPK7gpDemZx/0vaKBGHSGln18XumJLcGSPZDCL4+ZYhm6vi16vj5XVAVb6K+Ycp56dKlMdaAY2Vtfx2GOP4+mnn8RKvw/2i8PxQ0JRu3D7dmX/Tdn2kfrwWQlPMsoz6fYOuMXCObMhCTmSMOncQXv2njARN0KIRiJCnz4+5KiDo3dEuHjmuT77XWzB1f64Em3XPewxJO5IkrpGXdX++JG6qlCVc9TVHGVZYjabYz4eYzwcYu/mNi699RZeeeUlvHnlAq5dv47t7R0cPXwc9527H2dOn8J3Xn4RV7d3rJ4MMGVZgZXBGoajHUtesl3EaFCoPXK3XLOQbJmDAJpwjGTbycJaHQTffN55dFYVolMjVnrVOy0ix2VSs8WLWIaGkS4Nggbia0nlwkO47/BIQUhxwLxjYSm5Kj8l8LuC5PUwAZV0f1lE6jAAAAcP8kDyyikepIbiolgPv5FeCMAMrZ23495EJszMHlMAysCMaESgHCH4tQI3AkjWDZxH73YeiWNzAJsOjFlV4Xd+9+v47MefwR/94bcxn809WDU8YvlidakP4a3LkT1gvFoiAJrsKQ01Ki6FVpz3JsDdye+mwLIMGWVQCjj34CP4ub/0c3jv008EVckjrSVBeA/L6kXIZooIe/N9hOR47JjwbZU9IrEf1cUL7uyThK8MQMF7/jLnSNHyIzREqFYgBT+SsEQVkZInHS3eVufIwzz0p6OpKfavV3VnU2ldo9aGKHRd+XdxVHYkcebRh/Dwe5/Gxddew3e+9ft488o1XN/exOj7Qzxw7hye+aEP4Fs/eAGvvHXRv/SICOh0euhWc0wmo1YCYPklQU7vd5qGEFpcFGKkSG85h0U0bivmBmsIGOOwpyXnVtiJ6tdeTLPAJO+ladoEaVNiWpSc3TlAuI0tqfsEL3jMY4tE5zhR1LjyalS8zDSVTZYvdiukOUb5AJ5AQrYsDIR8nLic2Aty95kZVa2RM8BMqK1HFyVjePaWU0T+z5OCGy0gLCgTedJwhg+Ixid4ALx6cxNXL12CZmA6Dg/PxYYbkIoAP31h3s3rXuKI0LvdQXqOMi14LTI6+QxBvKAb5CU7PfO9b/8B/pu/dh7/u7/2X+CZZz5q7MF1boY9qiE0ZfRgqyPQqO0gPsmvLQXhrK7gRnG2PvYtcb5chHI9aHGYLvIWJoGHRH1jjYgOwUG1VhZHAqEYp7/mp1/bEN+1P3LEjFwMMZhPczKuWxzX/hWkug4jiKo2W1zLeYm148dx6NQZnLrvHL77rWfxve8/j9lkhldeexWUAx9+z3vR6/fwvVfOm0MebdV6vVWU9kVLnqUTcgAtHgX6BWmho0SDSYjh2yULPgA3EzofzduLo4G0lHi53Fxxdibvt3eBfSDbp90XtRdA14HQng8YD7e60OzyFR5aQzCBSyluy+64qJllHEruUCpDmvmCPAPVUPO2yIejBm8y4PK9xvGyaV3VHqRrbY6g1qGgKD/yo4SWHUVOFDFaiEDQIqaLz1JPxNje2cVwdwhdlTh0eAOXLpi8CORf1ynVIesXDsmTamIxgNAhYdIe8bMOHkMRUNWW5cCiDl+3t6/j//HX/2+4+66/iQcfvN/XKdpQkjSRsgzROqHkDSnoxgO70y0cgJidWjKkO2Y8oMFtcxWEIPuEHHk2kCGxoxbdaT+kIw/6Rv+hrzhC1rbl3O4oTwjMnijSE3D9m+xcfHv6bV3bEURdoapW0F9dw8qhDRw+dRpn7n8If/h7X8f25hZef/MtrKyu4pkPfRh1DXz//HnjRLAZ/XZ7A9TjHdMzPChRZEsNu3HajAihiRpNuw145LMMi0+uIRETsssrRZxQCrfk7vuBkCCVB0t+p/4rt1zfL8i0y0knyfwA4bYPxAMck8uGamdMWVlXibaKBLmlmsQWVAfaidfRVpCbRklpoT2RMJzIsJrbUklWoCUbF+a6BsO+XtLuKZeYGHRgFkZJtZFBGBEEoJfkQLHT671Utl4qkFOOva1dvPXWBTz+xGN4/tt/aMnDpg8IFvqgzM/e0ymGSQ/XfUnSRuDorkVWLJQRxABA2Lp5Az//j/4h/tr/6b8yO64s6BsVUDA7cn2dwtSZvR4BjDUKb0N2usxvD7X5mvcsuIyD+I01CbZkod1NttNc4T6nO0oiflhACqJPKUcyngTYqywaSYDNS4rciEGZtNEBhAkh+BNt/VvozKdijcwfjV6jKLR5hWq3i95ggLXDR3Dk+HH8wde/gasX38Qrr57HqbN34bMf/zi29nZx8dp12DehotPpYTYbg6vSdxyhLqGLhoqSLzJy6iOnJxMgnM0ndZv21wRNA9xLzAkjCGs1ghBI/DoYkMuik5pF10NoCLiwCgcihgMK+TaeU2APLhCq2lce0WgmtO0OiumBfKzk4qJP75gYC0z8RtE5k0fGZef3GGQzjd2XVmOUHgnr2oO3f0G9a1/nfSsgTFsIUgDgnmNoaooa2on2cPvvpsyjhw4jU4RvfuPreP/7P4p+fxWT8dDs0KEwVy7BJ8jIgiSSLiIJwP9uIQp7NQI2MSNFDugcN9spBU3AHzz7LLZu3sSx4yf9Oo63HTFiIq/LgLr+HCo7v8QAUM5BoymwPQTvDoGdEWg8AqZTkK6g8ww86IHXV0CHN4Ajh0Crq6CiE7exaGvKHHMEG2FvMjayeKAm8AT5ZIDDTBPXjUCkDYeRlssyWWOwn359wZOEsmDvRgdhqknZdQjNGkrZT82oWUNpDZ1l0JqRafO8StExD1k+MngKRb+H55/9I7z+6g/w/Pefx5d/9Mfx6Y89g5//hV/AaDyxYhM6nX7YieSHmNJ22oPHA8nwfo5N2k/itLmocaRAtrINOY4S/xuPKsO1WL4UkF0Ooe2adYud3GZ95HSS/922KUJcadxpI8IWWdrCbT/RHG+DansWIX44KRUsZkhJLZQoOZkSkXKkGTXKchDWsvPIdqx2RnD5yt/OoFl0eFtzZ7gIJOQW+jQzapvUJI/Yw1xXDtgdQgiX0pYVP7wj0rsOQ4g6nAOMwxsbuO++e/D9bz8Lpi7ue/hhPPuN30Kv00Oe5aYGpEOHhfOUgvfkt4UiJu+IHCToSzUH5IrIARa02U35OOwErMfO2N2+iWtvvYljx0/5OiqhmqB/ik5TIMCs+RKbA/B2doDL18FvXQNdvgxcvQHa2gGNx8B8BqrMbiyyBehODgx64MPr0GdOg++/H+qBc6Djx0B5Bldt7yeIJjHrHgH83ZEfYBU5HEGDgTCC7ZNtd0cSrmntbzcNJrESxtaUzVV7YgjTSFozKLPt4M5hUgzFClpr86kYFC1MMzRn0FojyzTyvEDR6eDhx96F+awCMoU3zr+E1157CR/7+DN47gcv41vffQ41mx1rRV5gpjLUdSWIXG4/EF1NOCCJEYluGiI6vSxhlnYgXIYZtoHsahFcq6RYRtGdOJ0voBWElz913Og/CdAtm8JOijnoxUa4tddxRjtzJDiEf+Nr7crk6DtH99yVmKWTVNJbS+dtk9BCB7GHEDsuQl5qSSAIodXg4gt17Txx5z1SdF6+B3wkU0cgUaWQJ3kUEgTiicjJxJG4KiN8+jNfwPef/Sae+8Zvob9+HPeeewxvvfki9va2zENLMM8imJNXzRvd8twcs2HPYG5ZMBVEkdwLfTghisRTlCMMP0JydQCQU42snltghX3sJLEXpygHxASzXVTX4OuboAuXgRdeg3r1ddC168B4ApSlPfiOzdSRXZh1cmVgQyhvXgW/cB71N5+FPnYY+tFHgfe9B+r++0DdwrxtTdqDdD8c1tsF65TvQ+u6SEY/bVMfzplw5UR9w683kJGbrQVrtgffkR9JkBLTRkTmaG37R2TXmNiShNIgraBIQ1uyYKXNK2AzhSzL8dgT78JkNMZkMsVrr7+Jj368wKc/9Um88PJLGI3t+apKIc870HVtWlz2V4edFIjN2XaEDdIJle9EF3mkgRCcjPDwFiC7TRw5/Gx27dS5lUgVx2tk2chsOaAHUVK2sxrxnWsZG7aVRweLjtscKZh+LcDKd34paOJCxX6B6w4i23DdGYQsISKDSFckMwkGRmnDJmnYel3khmiB+1sShI7ZsniVeqmuZrpmACq8J7cBiCzmwQl+OCHmzuM6Bj0EWggGavIPRGyO89F46MH78RN/9i/gn/6d/xduXngZWa+PRx95FCuDw6hrjel0jPFkF5PJBJPpGNPxBFVVoeISWZbDu77epdPR1IWvj2gI3yEs8PtmswQZEy9H5uJ0eGa1wKkTJ3zn9zuLKESUmnGEwKMR+I23oF59DXjuZdDFK2ZUUNdAxYB9L4M5aiKI4Kcn2LZhVQPzCvloAtzcAr9+AfWzf4jqySdAH38G2bm7QZkSDoqQSaojPklwiW0miCUWuMO2wqRn2zbxb/t09piJKST3Z4FfiWsaGqTN6apKh62sGSsQabB91adis81aaYWaFJRiHDpyBHefOwdm4Nt/9E28fv483veB9+GuX7gbL770goNx5HmBcj6N1qhcezoy8GuAonrRRKnsY9HCPwdcoKCeSEvSSOSaRBtBuGjiX3k1hm3ZiuZevKYa+vLBg6O/BYRDye9ItpZgbcKD4wHCrZOCx7UgRPxNCij5Ph72xFNGMq59ApLEMNknSnqULM5xhrjmpyZa6xHWGpz3EqRtpnKE0MjNe11WN25xEOReB2/A3xfrDDqQkOECMTpw5ABR3cT+WIkndx0xCNfEOL5mioAU4cMf/ShWBgP82//1H+K1V1/ExZe/C2Q5Ot0+ik7P7IDSjA4ALggr/R4eeuAxFN0evvv8c5jPS/H2NACJ2XpPLh01OPH8k8iu1wqnwFfXHfRHKKoRvvRDT2H9+FmQm4Kh4DQEgAh5MAH65ib4lZehXngF9N1XQNu7QFkBlbYkwOaPxadTniCFiBwIQA2gnCMfX0F27Qb4uRdQP/Mj4M8+A7W+aheuKbCfZ+1gkNEowrcnhXIVANgjvOclMJ2D5iVQ1eY47CIH+l2gWwCZeXe0x0Q2C93W14FyIwjn/zg7dyMHO61EnJm30IHNyanMvqeShh092L5ICkwaRECtze+zd9+Dnd1dHD91F149/xp++JmP48nHnsTLr7xkXigFhspy8/rSWntdxMzZBNf00zmivo+24WDr5aTHNrG9NcQSpet4JgY3MkpLPtBETxQ8/i0Xr5Fq4fXIaT5Yju/YgXihEty4sjw78t9dKnOhDdBJJmwWIfpcGLEvEDrxPEIWzbiSnOUiObVE8juHmGFeB+9+hqddFcgeR6xCvd30iS3HEGNTbFnB4ASIEUxqijYvlRGeeNfjuPue/xJvvPoKXn35RVy6cAHXb9zAcLiD0XiI2XiC8XiC+WyOfr+Pre0r+Es/91ewstrD7/zuN8wTqpLoZTGctDsHb0oDqHWFajoyx08zg1QOpTrIstzM09sD/8CMvJziJx45gs986SehugOEcRyHZY8W06iuXQVefBHZt16BeulVYDQBVxpUa6DW5o1k9jWfngQEATR+uwqyqwkBNYPqCjy5DPWv/zWql16B/rM/BXXvmUAgDPHAuyNsK7R7ylp4fkwMzCbga9vgC1eBC5eBK9dBW5ug4R4wnxtgzjLoQR905BD4nrPgB+8D3XsWtLEByjJLDOzL91NHZB8yhPFcTdWVn0py9uj/U+5bZk5EtSRCmqGVZXDSIGKsra9h4/Bh3H3fObzw3B9iNB7hyScewy/+SgfTemJVQFCUQaMKHOibLe7/ce9qwrvXnryVwAy1XnapRZsuhKjg2EnbWyTXoqsHg+Bmylslkkbw2Cbw0nuX+4eDk0IyD+jKaOfIJCLihWQZ2y0Dk7/n0u5Tg0iOeBeRcdoWsRe5CA0+WVYqE3kzkcAYz/PH4mkLEgzYHUhaeIvGI2aSjWXylovOYYFZMF5LfRzBxmBta2WPx8jyAqtrq3j4icdx7sEHMJtNUc6mmM8mmE0nGA9H2NnaxoXzr+F3v/E7mE4muHDpTXz2s5/Fs3/4HYxGe3AnffqeGTWnveGmlOw9rWt052P88H334OSRFehcYW8yw+5wD8O9GUbTOWqt0c0K3H18HZ989H586GOfxuF3fxQKZpRACiAV69nZPRMwv3QJ9MqLyL/zCtSLb5i1g6oOhOBGBXKE4EcHVtiUICA+Y2MwrwXdnSJ/9o9QX99C9R/9FPKnH7dHj0DohUM7Oh4gnw30cAh+9U3g+y+DXn4VdOUq1O4uaDYzax+1Hd0AAGt7ph+DMwXd76E+eRTVk0+CPvQBZA/eD+r3zIuDHDmAzBZR2Af32NmmCQqOOGy1ya1BsH9zntKAhrKL0mwSZ9b9KAocPnwY0/EEs1Lj+vXruP+B+zDoDzCdTYNTEr3LI0aAqE2dTxFaOIrncSJ6Oj1pHrT7jL50ue7WyiDU+LcNm+QCdBuWHOyKpMN0bLGQtZYHD2ZW1gOSgQsHJwWp6egSRfpNKxqutNNH8BQ4uSapvKVWkRwJAdGSdHKhS5SwUPVkFvHidBxlLSnNHRqoa3cEhEnrDjFzU2JOlYrcQXfwSwqhfoIIEt0HqxeyMEDE9kCxcDQHgcyZRFkGLsx7hJUiZHmGqttBt+xjUM2xdugwjp46jXsffhQn7rofv/Dv/hUuXbqMD3zwQ1jfOITRaIiwNxQW/9NFONlpzK96OsK7Th9FZzwFdRkbG4dw16lTWFu/D6uDHnqdHnqdLnpZgY2cceyBR3H4/Z8AdTpQZgKssXPH1M3IMr96FfrFH6D78ptQL18AxmaEoCQhaDk6YNHoDg0lQYiqyI6ZmLUZOdTIXn0V9P/826h+9k8je+b9Zqokaigb322bJZgniC9cAL71PNRzz0O9dhG0NwTKyhJZbckLgqQY9oXWIK5A4xmym7vAi29A/+pXoR9/DPy5TwPvfwLU7RjiYpgtW5ZY3Lo3WIwO3G1fDnnHisBmeom1OboFhqAVA6wYGYD19Q1sb20i7/Rw7doNvPuJd2N1ZQVb25vxjrJEJVKfEfwluB0nkpFE+0X4sSiIUlrJYHFo3UkJsWUUAbcCobVjXtsVmbIhayMcgCwiz+TWWOEWRgr2MymDvWLaCCHNosmEcg6tHaLTillwFjzgACIs8rQ1oIvvOin7+f10ENSU2qUThUowFvK5WYLKrTXYMryz5z1R+I7XavCph+KLcPuV0vgQhhCCMsyDjBWQZQAKk7slo7wooDvanoFToipL1Jrx+FPvxu8/+02Mx1NkRYHBykqipLa1IgrghaDn1UzhEANPPvwoij5QVhV4OsJ4MkJdFMDaCjaOHcWJe0/i2JPvR//uB0BFF4rYrCXIZxDkN2LUkyHmLz+PwaWbUC+9BQwnZmeRXT+gBhlIUhBgn85HtK5YCpD2uiZQqaGuXkP29/4x5nmOzkffY96GJ01WOftg1OMRyvPnkf/2s8i/9QJoc8tMEdUc1jzc2VkNoiK4hQL3jAe0Rra1C/WNbwLPPYfqfe+B/pmfgHrwXrGOY2zGPKdHZrFZMbQdIig22Wrb39zWVrM2BmhkUMqc4aXIvE4WZL73BwMURQf9wQpu3tzE6uoKVldWRVsR3CtB3bHVbg1GroNJNTf8wiT4y/vEjS+JmwfFXx8l7aOxzJTEbRtByGSRyFb3CcIsFinCnrZ7qfd4a+G2Rgqh0tSu8CRY/6I101iBHIbZkReaVLLFhkIJtLx93aKym5ZpcWASERE9PitK9OfuJFtiydbKHFvh0msDFBzkBdjvu08LjYkoEISFFvgVlxZnIL5kpFGkwFkW4pA5fE9rDc7MqEZ37OFoVYVOsYKz99yH8WQEIkLe6Qjp3JpCMIogl5HbGzURDg+6+Jm//Bdx5MwZqIygoJBZbxCUI+/10N84jGJ9HXmnB8qyQPQCW80Xa/QEsNaYfP+76OyOkL18AdgbGg+7rgzAyq2mjRFCrG/4+oj7KSHI7yyvEaCB7OYm8Pf/CebrA3SfftSPGqX85c4mqvMvo/O1P0L27Aug0R5QakASQiprJBcFFPE6sSRRMbAzRP7V30b94suofvqnoD73I6CiMHNAoDBdpABmB/2AVla1qWosjrs+TAp+OsrYNqHIC+TdDvorK9jd3UNeFOj1B8J5c5sixANh0Wg23nUUCdEC9sEv4WBrchTvM+Hkmygg7AyJy0yTL0B2iTkpYcQ7kJIgfDxfPcf/LXkkGcf+Ymv+t04CabitLalu9T8Qw3KadSqKodXRgL3rt4mGvJaysygy3pWaAngSBOm05JrElRFi6wi32ncqKaXsqy/N9JNZ5LMvUOdUY+H1k6azxTm6fp+W6bwMknOHSecyU0cGDIDMp6tJQekMWpsjODI2DynlOaOuamQV48jRY5hemoAJyHPxhppUC3ZOOkUVgxmElf4KDp0+g2xlLRwJnimovECWF8iLDqjbB6kCUO7ZCHvCqdS5PV3WVXP+5qtQ1zeRn78O3NwxawjaAiy7UQIQI05KANKQZPUccCDpsamt2wqbWR30rl7D9B/8U5SH/zI695418tt3oFY7N1C98QI6X/02smd/ABoOzbZXDUEItgjdVlYqqAA1Jtgn9kBljezCFai/9b+gPP86+C/+FNTqikmiEBYUwFBE9gRfExTYjxYAt+vIU4KJQwxW5oE3IpipyTxDvz/AbLoLlSl0u11BhmakELAi1rl/jkK0tu9yiJ+0Fxr3ZNLcBdTUXeyYilIWgb9tCvKOT5ybOxKjbVYixrfFYdHm0yUJDhYWAdoBC1L7R0mCZ6qGz7pAkmZy2JTRVU5IID4LI05N4g/BqQq3WuSg5Du334quMLy3l2o0YId0YRypMeBe7m5/u/WF8AS0K6Z9/tnnB1d+GkvuPkqFSvfyG0Jy7zsgZd/fkOcGlHPzCtA8L5Bn5onVottFf2UVSmWWeFRSutDEIn1aTzIjRtZbgxqsIxusI+uvIBusIuuvIuutIOv2ofKOGSGQI0+ENRY3FWOJh8Hg+QTzl15EMSyRvXUDmM/tKKEGaUEIEG2SLhp7z9vpPXVRkzqmacUfwZgC1Yze+ddBf/eforq+bRZuAdSjPZRvvI7i919C/uxLoN2xGSFUMK8JdeTFcmEZybqCldHJ7f6i9lcAMrONdzxB8W9/Efzf/13onXGkUxJAbaYSCe7hSQWE72Te3e3TuXv+k/wJv91eF2Vpjk0visJvrXZxG3oV/aBx4q+L3bbQHzUfx/3jQMDZEqkFSFNLT+8G7JNER/7eYkqPVx/+2IMX7WDl3TopNEpqYeqobIq+xV1NwlvqgS6oQNoGMj9emCoGzFispsj2VzIrFCdptRXbc5jNzIU2etGN+8LoXRmuQwiyWyYjCV1HG5hkHJe3ApSCf0lPlinzqk//ch/7Qpwst+Rg/rr9PrI8B5ihsixk2KZ/Rz7RJfsfAVm3j6y3irw7QNZbRdZZQd7pI+v0oPKueTm8f0E8eUCJaubmUgmoLr+FbDSDuroJGg2Byi7Q6pYpIwjD8Ndj2ZufS5TPUgGScMwnlTWK557H/J/+f1CNp+ByjuoH30X22lsofue7wO4uuC7tNlk2C+E12xGDzVZzS5ni05UtPVk32vbaV6CyQvHVr0L/zb8DPZyY644AgJgEXJvJ6VVrsyaeSOvbyKZVGTqdAlVVAQCKTmHLgk/fdNlEGQv6NLXYVZrafLDvW4tCa7dy6lsCOYvzk88qtJAeKLoTimzSwYG47OCCNX8vBcc43PZCs9Fhq5vaovWgwFj3gUxiHy080h/lmRIynCxumNsovBnsU8wuccNQRD3Z2xmjtdF9IjFaYpjzc+rKPHDEbF9+IsBJdN6waEwNw3SnboYhvCvAjhIYQPOBWsitemFITvYBJQ2tlD9V07zox70CUoM04JYZ3Tuj3XRYVHH/CK3QV3qUgFCkynNk3R4y53mq8N7mLDPrGypzo5kFbWPzY60xf+1F5NyBurYDnpegsjJTMREhQPyJ6y5Tb08J4Ca42/xBgaCkTpiN/hggPUf/a1/H7L7TmN97DMWly8i/+h3gxhZQlyC5kOxk8F1J9CkW+TsPIF1jaMhJQR4AqqzR/Y3fwmx1Ffirfw6qW5hYbleSndJUpOAOeCc2O+M0mTq5ItxDpS6NsUsNpcxrWnVt5tE6bqTgnvImika15NrSfjZRQNo1RzYt78V15uC4OD0m3ZZEqTJZKzHIe8k0UrxBJtTF1UteS0NcjGmn/V6ffGuc1YZVywlThtveksri34OJHMeN2Z+i+636SclA9k9w21JBeyBulcCnjYxWyicLDQka5Vli0lxD5ZntwxbInZEKr1Ipivp2Qy1I1hi8BxciOS5sGx26t04Fn8YuNjq5NOyT3wzWZB5c0iZu3inMCAGwx1cjaebEKWChw0QxKstQFB0z1QC35mKnJzL7Lgn71jkxxyEqEjxBHg/BmzeQjVfNqadVLRZokRCA9CSkYtzlFHgblRTKpZAnpWlFbLu/Uw3H6Pz8L2D2gYegrm1DvXIRVNZCZamc4po3xKQMGTfdb8/JJwCwAkEDVYXOL/0yyjOnwD/1BQu25DnG2alfQGbbr3y1KcTx90PRRIQ8z1HXNVjX6BQdQyBuQZnM8ecB/BPBZQdOeNu3SYNUJLkIVI/qH7cNR6mTzJLy489FiCDdrmVrDM1so3rtE5ahaxN9F8Q+QDnArR6Id9BcF6SW4qd7e99O3g4m99l35AVhapaVXjFeUXpFxJf2lwC6ianF4izsYrAFLhdHAN9SIpSMZT0vX67sA5IY7CKcPJcq1Idhd6zbvYhWe/bANPNEK5DnuSEFDg8ftWo47UzUvO0enlPKEpMiTwr+fdMqcwjTzrZstvnWN6+CkEENh8BsZrefui2obPddBl17AmjrlR6AE6Rrq1dEHots1pVJIM3Irm9h8B/+0DyEVsuD91rRqvnDPSPjrjvvu01WKbOObxAT1HQG9c/+OerHH0L2rgdtHDK2ycGOnWMuR79yosT9cmtkRISMzMjPvKBHo+gU0TSUc6DCgZBN9TqHSZ5tFAGqT5DCYNIOrZnHtxq5y050EBwRmpBplljELeR9a+GdzvFtrCnIsFwsipsWbq75dvKK3ZPw25ksR5EiIcKXJYtX7cWl8VOjtcJwSMXMIGVOP3JeDFs5WXiI8cAg1smyhahoZjaxbXdLTOP6xUU4ACazTVW+CjR+V7RCXuSGDGy8CKtiYUQ7xDdNPze6UFmGTBmiUZkZFZD9rvxagnn9qBwtRG1AAF+7BFX0QcMpSIwSDG9KQeD1HLMCEjtqcUGbXkFLxeV1R/pAeDwYoJpBkxKYpQ+jCdkiWRPZDSILwBJBNrBvdCe7j+T/SAPFtevI/vY/Au+Nk+zCNKZccwhFyXUEseZgm0lZ+6krbUYKnU4krxspSBFN7Vx7ifa1uhS1Eja+HFjjzSpCBVEc+enKpdAeiUoXB8ekKSMvQreWjfnC7JYX1+JpvfP8AuB2SCHq8IuhvT0RNYwhnokT1kwyHcK1tEBK+lBIvEgEb/BN0A2ajg0nyV/O0/jOExsx12ZnCVtwYSsoJ9tuY+8rrZqTMpBpUwdhk1864yJz8Q6bBZe4gysoUsJjt3P9yu0GApTK0oyDThYaZ9AlkdulojwBmE9HAnYhWza/0Ku/wox6d8vsVhrP7I4jO83hD7jjALbJukcsK7dc82qTVWheT5yA4MHKfANREBDOQ3I24F9nJ+ROkVAuticgHsuVIGBbnWwR+Xe+A/7Vr8FtLY93E8UcFC0op6qwhkVEdtNCjpo1atbo9fr+vrdwCmLG/Yt8P3LTm4u3a7YbmyvFW1w09diirign+yvt7PuCLjX6svvGcazFoN/CYdEPbr17QNK6vXBrpJAgwMH32AbYczAXjEJ4Ew0Nid8tYBfiBYLaX08CRNsYprUDxpfiV3Jya8O6+VqfloK8LPSY7qhrZb1Y/ESYgB2MMLvZTE1+tKCIfBpzKik8Ibj3KphXhKoAFtFTdsFiI2/LXxWg7MqGJRty6wf2mQ1FZh8/wXz6326txCGJzUwzMJ0YEiuN903uITXvdaZy2q/Ry9u5xaOWX1ssOyHjRhmxxxTAP1JdIqMXW9pzDHECocNvB7htRu/JlRrpCQSaz5D9y38NXLzuwd4kEaRAsctHgEELER8IU7Zmw0BuDj+sa/R7vWQ0QZb8ZRWS/G27yIMiGl1jn04ebvGB4jr79eXLBdl9wSS2EZdXmjzyBQ6Uk0j8xwT8y8KtkUKwhkU3k98mxIsv8a6SmGf364gyary1NDzE0qZgCp8NYku/GWNil2kEs+mOGFPn6PkhcT+zYBapjYQY9uKi2SxvXO4ZgTYA88IGb0+IZtM7TYd7fjeImBZw19x3v7iMGCCkcK6GjdZL6mZGBm7qSnnSgZtW8EdZCLsh8cWJzvY8I5WFh758r0sU1/ikyHuP7kn9tHpnQc9NpGrqJdqtkm4ndWehsLwm0rbZfLrba1H5qTDe7hypKIAzZBcuQf/SryHsfAkA7n6FGTwL4S47/0/IXynzYiZohq4q9HtdMQUVpqOCY2jka1WlIGW5hNxKErKukC2WtGWLbp3tenlcufsBcUs/TEcGrUVSM05rUy8q92Ae+MHjLQi3PlJYWGB6U7J9MAfJo6HbRK53CBLLEq0TEeSEjfN0QrLUSxTE0AB3+c1KK9NAmmi4EHkZjRqQfwe8sTV3koyMa0ctrJs+hxxpcLJF17ocrRTc8EBdtZuxo+kC1/kFOSilrJ7d8RVx+oRfk0ITivb5t3xXlnRiJIqV6hfY2a9F+E4sp+Qc6Ouk/TlRSCOkhCD1laTl9L64HdmqTCMJoYUBouIccSXE0QBBCfriD2l80ZEIICiQ1tC/8TXoG5s+P9cz/IiB3W/2s0AUNVPob4oIeUZgrVFVFbrdTph68mLE6wqhiVsgldzDmUkPZZgH81w1E5uU/a3Zt5u86lMxhXgp5qQo3eJILJqnICRiJlmnFrnIfJbLsU88H/9gbHF7C82tebevLxjTDYDYGDL6b0s6bYsGJein+45YluOtJwBHyjGN4hhovPYvDbLztcRR/q4DVd3oTADMkdrRvHcq6/KGpEasoEc3xHdXyQKC8488trk54wRj3DqC2bLYbvShzOSbAFc3YRc9lGb1oNyIQsga1S7qmASQgioyIMuBvIhmluLtmlaItmmlxsKzIJaUXUn+3I9YhKxN/yhmUZmfBP6oGFH5RtGSMCyBLBzFC1giGHBmQufyZZTf+EM/LeSYIAJ+oYTQp0TPte2pVIaiMERdVxV6vV40wo3eM+J1GqA0pQW3q6nJxdaeonZpBm/7JGvQBOeQryCRNgRvEPL+ob1eAZ8W4WVDwGUF3Eo4YPxbnz5qydxVUPJmWzJHDjKj6CyUyKvAQXUfPFIB+snNqGGlIxCRi+xX7r2uSR2iT2+bnBRKqJnBsJ62wxyEsQLZDJi1OUMmKsiaj0ftKGvIyLFBixbw87mJTig8CEdIPTmjAD+F5Ob6k4aIgd+BXBstBYILHZkCwUSYT+2YlpIRKVC3Z4rrFKKNBNi2Ybe85vO0VtAA8CV5RcSSXHM/5KiFGxFEM1H8vdHmtOAPzXgRgJLI0yVz+nfPCyhk8wr0tW+Ay6qFUAiOBgI5xGAWbMxMNRa5eYq5LCv0+73wDA5LICTbXeIeJScgTZwwvyCrASuPV3/DZlg0kXNGlj0clhykmaJ4Yl6JJFE+rpbcEoOjGLGcrdVwV3m/OG3yLQoHY4XbWGhOCnGOjoCBZsSmirz32DB00SH9LUrAsJmz6xitizkS6BNpSMrEHEYJESk1Cw59UnbmcF1zDVZmq55/OTpgD9iCHx2ExeGWsoSgDX5IOorzomA/Y/JdErzn1sxcmUeP7XEd8m6ClLIoyY82inaHvTnwggOaIK+bLoiSRm0AH1cNVoH5zLyaUixetg6PG4Dt4rUxR1z/5k9hhA6E5TMEUZYt3oi8LncbyTQOwN0NWiAnJV9aUdKlT2WHIVdm5D94CXzlhsjWrTVxzMeh6cR3tl/sw4h5DpUpVHWJfq9nH1RElLevi+/y7Lu3onR+H/alP6mjAU9WTX27MTD5kcbymUMSA0RXH4FHFMivGSTMu7+wZtJWZNRfk5ya8ZxuyNdqUR0WZnwb4fZGCr5wp814rrwZOPIwTLyUQxfk4Ikivh5GJxxFlV6Nzy65sVS5APy8b4pu7jvJvprkJjorAYIQjNGwiBg/VZ3oJ1EHpSK5e5IcnBGjqS3ZmdyXaF6YQlqZzjyVGqUUGSTZp6pwU0MIJChBwTVLet0JxD5ekvH6UfB0BKz1EJ09HskpvIOUGLxQcXWa9VtiMI1dRUneLo+IhCBMua2nJKgr11Xa4i3CKolR/oIlCI+mxuKyvR3oV19fIlNSlLQRgcpKZVDKvIu5LOfodjrm9aqgkN6tVyFwVXpUfpuy20eQqQ8QR1qU16LKBYQR6TzfJrYZKgTZt8KNeIVhsVb3EcqG/Z5XamDC2wy3N1JIMDqGHIquh2RG2akK45gLyjPo2nBOTb8Ui6WL8mhYVRtPJ3IvsgNrQcGbiZHUkYVZzLNm5rwVS0wNh1b89jpLDZ5N5gm0N7II+JwidpMm0rLT4N8HATfl0zj4eN8Q5JEpQ2s18mqbG09GEXToBLiagdf65mX2rh38aadpfSnh9cSQ/KeVkcWfl1fEWaYAmZ+XQ5JDUv6+GUnEStNLAGNEo4qUCBsERgApZGWN7OXX4EeMjj9aO1M0eSTh3h+HnqkMZVmi0yns7jWOUkdVik4YjuWNrIOlxQhpiBfL6fvmQmQQsUPfjqa1kuZv6Uap4PYKizsxrizrP3ETxYi66Ag99+rUKPWtdNCWcAuksMizkSd/BImkkqXxNBS/rLiYVRJSZm9ULV0Eiwwi8LhUdILqC7wm6QBGu51smxDLmPZ1hxZItMuWjTGHvISp+M6CYNSRp2n1mc6jp50tkj4YTKr1hQvqCYC4dySHzkmNaEjSNmhYKq8FWCX+xnHd11AmrR8G9TrgLsCrA4SznX2lEidCWoYATQ/8bSTBIdl+D8IFDyFWPgELp38a4M1xmZGOKJZLyueJTKSDSCf7ASH+A4GYkb11CeGlCk6PFJJID8JPbYUSANjnWBh5bkih6JippCiIEUpkl9EupViBbudTm63JqdfGiFNMFUdrhQsD+/9CXYWlJz5G1DaQa6NhVkBqqYmHcUj7Zhv0yU+PB65tpW221nUZHcXhFkhhkWGHxg2cRcl9xMqOwpLWki0uhpnhNnmgaju1sG03SdxlJOgAci438mKiOCT6oMiTES9mESFzK2JsXl4fgTFY/Hb5hMVW+YCb7JlsC/fGmjz2T0Ci4mBOkVlIciLZXpITrbFbL5ITXbaGluaVtEQ+XycrLYos5Hd1t6HbQ3bybqCeACcOAXlyiJ5Esmi7aqIA+VWLeL7c9BoCiaQgkYZo6qklQlsflQYcjXpSaJB5UEt7pxlLxk3Bl8A3t0F1HctOEv+NXiklF8EablRZFAXKskKn04lO1nWW5VrSrR8Qs1lnY7c7zYFS+zMM0hp8DSJMpIbKPUotXRtI8MBej+Y2ItU6G5BpY9wLyMf+SotfH8kYECjcWIyYIecEXJp2m6DjsnAbD69BNJAsJD3+2sRIofpAZYQMhOJTz8r8CIpsWYhpIqTn9HBdeFrwJtUKewSyxwUj7JWWMkvJWEMp8wkwal37iCSIxVxT3hi8HGn/lzuroukUcd3l2ZAnJg2PJf4hqgR0vAzmt06fk2gFQTjsaNGFID5f77ZHDRnxU8dJZpaZiAh0932geQk+vg5eXbGjBfswXBt5Jc3dENCBHCMB4paKpkAsCdxdaIxUkvipbaaoIMtL2iVcXxCnES/Vo/hTCjQZA9qQQuSVU5wkTh4cGAIjs8ekFHmBqqxQ2GPXU45yaX11BJnHKiHxbwDUUGZcJzlSSFwIn5/cAdeukJZ7qUPh6+P6zZLOIDBJjq7baDsqMs1KXFtmmSY+hc+lEReHt3kgXlhATpnSVDxYOiE019KqLQSeduXH2+XcFwd27qqjDRmLIgMJy74krqWyiZk+ErWShmM/mWGf3jWXdF0nBmkHvxaQPOgu4M/o2AH5YI5L2+j7QSa3HhAZoyzLM0VcDfOeA7P7KPKy2vhZFE5AFJ8BsJavGhKFu2p7tYTr8VvqEtY5chQ4fhpcADhzzGxPVXH7NfWxAIQBhBHFkp7kZZEN7TJrybOtLWV5UYukbSh/e4+lnfBS1E0L5DRaAA6jTg23bThyPty/bXgptjq7rc0KhCwz00fmRU1ZVF+/Y8naomLRO63emk6FnUKCbd4lbRTtaEvsMdIDoa2guD7um1zsT5qr1c4oLjfkFbaVMEJ2yyjF1T6914y9IKS3DkgSb2NNITBhmIkL/0rdBVkaLloMTBTfijmEk8Zs8m104qI8VMhflgafJo+RcWF/pkB2qdlFMxdag6z3BGbxLILLX6YOd9pGfY4w/MAzAWiPS9wiN8Fvh211NBeBmCcTE9x5Sb6C1Gw6WSP26U39mWuZsY/c8OvE9fTUaEcgAIAsAx57AlTPUJ/ZAB9aAWf2FXNSuEaFU0VIhhO1aGCPBFehzQgQhKCNcuQFZ5uCGKIRUpLYAVA0+nAk2ZJ3o/AFpOGq28nFLi7xKdcPnJjuVhTPnZmlkGUZZrMZ8jxDrtzJ/O6oF/eMRAym5oQThx1s3u8hCCQKSzBQNlGkCUfAbVOK7dmIohJHgpJIje+pzMGRlFNHqf+Qls9J6raioiuLml8mWKY7EW7rlNRAmnKpx1Q3BYigxxZPPck3UnobB/mI8jMt3QlH8gbcnGUa/IJulGVLU7XSOi/8WeoKrOzLytkYpvZrB/aZCPtd1q3hFzhDj+RMyLQNoBLrbbONcHxBw/wBIJoTjt68FmVGQmqSl/0lzWyedfDihwzkU9Suak4233atugf0iZOgs/eAMIO+5wgwKICMLMCZp3ZTAo3MJ32oxe86apa1xCBbghRclCvn832jSghyJJqAvWd9eY3FvbYKJr85/W5/KoDW18FZbqcTZfUScg0d32YR7hMpfyieI4Usz8Pauc1PWlrUrPYlPu5ojdAtCA0jsDbf1gKUViG9uChyUk35y9OYnJJpOAOhXulNV2ehvgUltf8dKLiMW7g92M9iIpTh1haabeYOzMJjIqkU5k+utHPq8rm4aUWiTuuuL1INtTZD1KnINgu1rDm4IpL92/56EtFHa5NE4I95irn2zgnBLKxp9xCYfbOZUWmcW4PqWo3cdUpuJFrsAKV1s5TugDDlRVepdI82A/KBKK8PUfcoC0uIrLVo63g9JtKFlCMCoFBnPxBXBP3u90B1CuBQDzh9CNzNwqmrUIiHGq58FnVIKy2DA15O8kmsThqFB1MRr62XNwwpKcMTySLZXFQXV6bhJK2wk0gdtkFOnQTEMwUymaD5SJYIfAlmqjQj5FmG+byC8k84W/+YYwckyQ7kd8EJg4Dt4S0dLt5tFPS8cJpf1Cx+te3+wThxCP0kRnbxvZmv9/QpbPSg1kwWNfdi7Ft4KQUBV9TBqnuL00e2UV2/is8fWgi55j6lvWJ5Uf4zIEYjUmtOXt+yYcy/MSwGpKFIazHFNfINGUbXvYMZNYx7QtrMTWrm2GjtMDltrzgvKXWzJrD5B7lSa23qPKqh3NnVUmX3+kUVkWoLmTtAaemU2k6fmfsJ8KQFs7AqQe6hmqatGOYUJ2wcAr/3gyBdQZ9ZA472gYKiI7gb4NtSbHRfbAEO9XQEkcSTQByUEQNF2sC04PsiwVLQ4bQMwZqL5EsDASAGFwp8311g5eb/2zZQCPJLicP+cECX5Rnm8xJZnqEoisQkg+VJB8tdNSNXQ9gxp8VH7RtHw9hBOImVnSCiieNDKF1pfnS+z4uRQ4vazQ3pSEGuN0T6iRtY7hgM6wtxozQgz3+m8QIILZS+zYmmVK7F4fZPSaUgYNPmkg7SmkFL9LbPJIug2Ph21D+E59uO5WmvbEeIqB9LTKD4ulu+kMbOWoNrQwJmPj7z86RSVu/UyuvuGstTZc0N08kWARAn+gp1k29aiFJLLuRYV64jMMvOh9Z2ab1mC2EQtNvdIstFatoBsP1IiH0mIk8BEUTQ9z0IeuhxEGnwPYfBh/pAkZmpJOmMtJKDA05Gw8NKNxDsV990VAUA0MEwPHk4Y+KkXmhJT6LRROSU+71hkvie3kc4boRhev/KKvixhxZCTLz9PTgSJPVpi1WKkOU5ysqMFDqdToRF/ghuCDuI6uPuU2xvcG6AA37R/hGRuWmeIG/7MzW0LyGkadjKEAO/sI+FMMJCV+RyQay8OItlkqUnOPxxhFubPkpa0g3kKb3hq+c6iSSPFpRvuRyhk9BUMFJOSmxhgUiKlMKs1I0WaFJHbGjtcka7h+wcOtd2x40iZJldXwD8WULulZjeSD0Z2l0ghETmBZNN/qz9Nm+AIA8Ek/zBLq37IckOgCKzVVYz+2O0ncKiLaqpkkzlgpTM4Lo2fluCWfEW4Pg1p3L7qv9Xtq3LI89Qv+8DoDN3g7oZcM9h8FrXPL+gxDMMqd7SqaXARssJAck9dsKQAH6hGF8RSUAL8m6zR5lfK4m09KnGfnWbj5sSJAZnDH74fvDdd4X2t53C95KFU7exLA4FssyOFDKFojCv5CSnm4SXJTlE5AFjF2ncuI7x08xyZ6O/TImQUfqWgpdUNFBLim3iUpo/BC55LnY9mtuiR7kv5JnW6pD4HoneLGSfcOu7jyJdSOQOUjTYzHpHcWMlSRd1EN9mzrD8cVdJZGfwS7KIChcdW3pZLcH1Z7koTfImWYIkYSOsoaA96GWZCt6PNUQ/oEn04/eAu+kmF8VLnSiQHUDa76nJtQGQVwN5eRp0Yj3C9EC8WA7ZM0W7+0V1o4G6rmPA9LgYkIDZK7lBAI0inA6dFP0+9Ec+ARw9Zs5EumsDvJIBGYfhWNpbZCNGoy8B4pKdvK22CJYCUKNrJBDXZveL+kIDmJcQ1iLCka8KBQNKAysF9Gd+BLq/YrqWt7UlUxOiJs4+nL0SEfI8x3w2A7mRgmACt7ZnvscCul/+jQvWLgmSmEIjNl0888uPDByiLthEEQpmROtL6e2oxnFpraENEt0FdmSXUkDoJ23mcKshSteGtfuE23pOgRvf4vlmamm8qFe26TbttG1KbQ0NKIP0YpcdJhWSxF5G0ytxFynGEjFfHbG6BTj/lLVfZHPFsE9vcDLs4fegbkEpLF6HCPHyOkmBrCAS4BeflyQ4rkkkgH0zGqBZ+/cexF6wMOP0MgVz18zQdRVF8NHdGoJD9ySbKOu2HuMJjYBDh8Ef+yywugIcXwPuOgRe6QCZitcXzMqoUAKCQxGBf1LfVlNi0fjUjOuVLLypVjBPfss2jXYaRcIFGb2ssk04/Ml2IgCKwQ8/iPr9H4A5MTXWRbAZqZBFZGi/KELRKTCflyACOt0iLnOB8yGzMaUJ+f1n3Nfk5YYoCM2Rok/Uv/3IqUWghlyusAWRF5JBGoH8v/GjvYsf811G0LcUDpjRrZMCNX/Itmk/zkIqM+lkJG7L360hNtU4P3uVXFv7x0/aZXeGT07mZo5RMtchxblFZj2B4ng+D+WngExxAhSSqZXIU6FUb7FQ8UNkAcp9SzBHBLLMElj801iPNYUZYmA0z7ERum6kTPqOZviF5qYA8vdir46TH0HtBBZgwydOgD/5RWB1AJw6BMitqp4M3JSSkNeBe+sWM9F2jSCIue2cI07iAaH90/yibpIylMxzAeinZMZAeKOYAz8NKA1e7UF/+fPgjSP+LXXNk0WX7JKP+pJVgSJzzEVdgwH0ut0oXXOKqFl9/82RqWvbBh5zo/2kKYY+uwSvKa1Ei1D+LonP5IVh+/DmohzdZ5uvI8tcwllJuneGPm7rlNSUANJxgvwVo71M3cw3CumQmcOXeEcBIguQmNswaA+sLp6RLfUwzD0KNhlhaxy7fb3KdEANqw+3JZNsaZKnhLFHjmBLli2VQmNu38VpbAOKD+qO8o3A2CkHYiqew3MKUg7vaC3pEexIoRZxZAdMtJ945o0OQ4YE4hG/PJSRwGfuAn/8C8BqH3RiFbjvCLBWALlJH6aTAuhEiNXA4vR62mCi/i6bBXguEiZ25RTaVEkA9BT43feW+wvP7mJwpoEPPQn9/h8yx1y4225qZ4E9tpmZlJGIUHQ6KGsNzRr9fl/k43uWF6YpYbKO4J2OmFRCW4scycVvnom0FK+9WLLS7dG8XAgP7XoTlv2C0GzHkBgRocFZbZt+ZU3j+IulfPvEcFvvUwhKbn+ZS1g8TA1hgVmlSoycpLAgLGYwhQMmQZHipG3Cy/yTlpO47+dVZSe0JUS1FWXLULOGFo2vNfzBX+b0VAazNrt7ELw0r9uU2eIe2BIo/ur1Ipfgkh4eLYCG+J5TnKciRx9BwFBcJFvT82EgHHPh68MWwziO11JdaW9OuLZz4IL/RuCzd4M//RXwxipwvA88eAw45Larwi5AuxFDSzdIgbnNc3eEGgE1Le6b7r5L68nD2Ylr80XwK22iQZexnFESVyaZtYSzx1D/2I+CV9d9jyGEaclI36LcyASkDPaGIoU8z1HXNepao9/rBzsRU3cy1xgMgwQKCIcSuFG/500x1SL7H7cA5gKM9PXdhwxkNoHrg6Ulph/n1cZGtl9x0sYpl7j8gQgVkt/uKokc9qnIAcLBSUFUON4S2obkoXOGezIT9zPtUDK5s4jGBIn/ZeySFzZ8HJLOTPH1yPxTvVKw7eatQB6u63hJHfDZjqpg32ImMlFtgAQ0jCbltIVCU9jB4yaK4xoGYDMLfy4Ou34Fsy/cjCzMA3eJ7pCovI09o7rYkYIkvhZPipz8UU4hUrTu4TqXVAIFuCAQ+PQZ6C/8KfCp08BGF3j4BHBiBeiSPXjHChFjX9y3GttUEcg0nauXNRGkmiQWtp7otm1bLIB4kdhlK4zS6VIhImtvlJ4YNPhED/zTX4Z+8Elf0XhzljB027eaG7EI0cjKXbVPNVdVhaqq0O11ITdNuC2pknrkqL8x4qR4nj3wqcCCsDqe1D0JjVuJe7csbRQCvqVN3nAGUvgTeQSabZKDy1s8ptkSN1xvgau3FQ5OCqK95Bke4abszCmQLNDOotr4DiXAK4pi/6WkURfjqMjPgfICRrX2Hm14WJBj5C1TrBNmmBEB3LsUlAUt9voznU1bLzqFQJtP44srNrVAUTCl3oT0aYIfEtQQH1ThV2McKWvRfRrFLjJB8g4EwyxWh8EIW/yT8CDkb2Sfjj7iMlO/KVAaAcdOQH/hJ8APPwEMCvBDJ8Bn18F9AjKE7S7LHnQT9Ym/L6i719Gy7roobySkIS5wcq+NQKLsJWlo8Kkc+MkfQf3xz4KLwrQPh6Org8zBRoPYyY7/xAcgmOcUlMpQlxXKqkKn24v6iBEp7ZXk+Ux5y3NSBEaKn4qWqnRYIBUX7J/cvcZ6CWwJCbntQw7Se/dW2dYMbcW5G54c2+1Dki/LdDFFttRjsTi3Em59pAAkDReswwFAzGksGiQF1RAlvk4+v7Ymau5OgDDqhrj+gnsoxhl5A4gTe48us4Mb0TVEmXHjGUKoK7aethaLzm7qyJ6FJIklzsJ0gkbdXbUFkLC4Fpl50xPxmZBb+BUTBxzHJguUzLpFoamw6SWhG2boWvvrDFdtH8F8JP3TpfX3PYslq0qU9EGfrVl7oNU16I9/AfyBjwCDHDh3DLjnGHiQAzmJY7flp8srljEC2ibGiDYRlfGNtqi7cvzVGZwkBn86oCQDDuSQkoRcL4EGn83BP/VB6M/9GejBhrUtcUhjYsduK2nIUk70JTLboEhBZRk0zBbkbqdj3vPt85RhUedPAgXnQg7XiQVkJnYLaVsAwiglumTyXESsS7ghqlEw5mYkaiQIaQReOneyuUmneehm/D01wv3o4GB0ke8fpZlvOH1AAr0DWAfosusmHpLc/ueCq59ldfl+3zSHJuA7w2lSj1v3aDnw0dpO0zBMn6R4EVUg9iLAjcol+9CY7auatQc4T562bLfHu9lRmsYW46bowhR+xzpoGYC2cDNHX0RZZOY/M7nQrJ1e5OiI/G/lO6UlFVC8+8jqhHyjuM5OCKdlxtpomzd1XUkK723T2oQ7YgDdLvT7PgI6fBT0zd80awq9Lvj1G8DeDFSZegVCi0Gl2dzCjhsKDmAVeRx+K3LaCInSI9BPoqSEIG9GpMB2V5EG39cB/4kfBn/qz6JePw5iLaoYk7fLbTGFBUUQEB0Ym2XmQDxmoHTTR5JkGea3z4XFtxbKYDabCiChgb3+fLPYaSYWOgpjY7aOTWxRHl8okUW2dYQNIX2TgES7tmF0Q5Fpr2liSTMT+T3FXIFTByXbJeHgpCD6b7zA3Oy+ssLBvETPScnAf7GVjLznJZQt0yf9M4htTYPa1BV31KhpKB3ctYBRWzVcDIInFQJQ69osLMNgjzEFKYnL3xlnnB1TrO2IbFtVFGrbah6uN/ueHYp3+7u87thsSY12YtlOYxb/WOQl9GNBUzNQ+7OP4Nd1Jf5GOhUq8LXgcE5UXDv5OxFQoBYBQJ6DH3oCOHQE9LVfAdMloH8SdP46cHMGlJa4tAQDmW+i2xQvOLkvQT3SvfwiDDMlgaWgAgFaHnFtfjYfpcGPrYK/+GHwMz8JvX7SACYzoAjE4kl3sU1H7j+QbRoX3zyChZR9/waAqqrR7XYRnRfkOoVIIz9lWzKcWbp6sUjPdiNI3CdlG7j5eLYV8iQgRG546JRm0gpUANLr3LycViYKlERYDOXt0M7JL5nfMjLYB0ttuLXpo0bdJXsag4zXE9pgOpHPRQ+075t5Kde5BnQT1VFjN8tpSiESUfxVJnVTzsF0RIxkHYPknz1eweRBqGsN2Lewwe8+cm+BTI2yKbDziJsL+4g6LUVJjf73I1ZOK2ER2T+SL0cKsmgpu70ejXgYYEuuta4FFjY06UmGU1GEPljcEVCAtJMFUnPAQmA7/UIE8Ikz0J//U6BHnwQOd8GPnAKfXDUnrGYEqAz+LW4eiDx6hj8pnzf1BbpeuIDMdoTCcV9otEmLgTric1NFXkwCDwj8kdOof+YrwKd/FmwJwaxFkyWGWLbGjq5I11LPaSwzUlXKEIMhhQqdTuFHBjHLxFWh5M9VK7JmSaRsbVp2xdZPSZ4ivc+9uVrp8l/WZaJdQanBxh1wOUYnhLA8JCceLLj3ToRbGylEQgTFCIdCfAoDWOTiSQfAFxEWfxZWVO66aBGzcTnpSPFylqwbJXHYg1WgPfi07ux38mDoSidkKgOpzL7Q3L55za4jmP4RPJfIXtu+ezXKDqmi+05eplRzcrdzYqEEM+8uacEBvVsM0+atXMq9vEbK5Bb+WOidASSL7pphSdGrx+tALug770+aBrz0iW4c+Ek/iWDALvKgg2COGEAMrK6h/tgXoY6dBj37VejHToBWtoCLu6BxBdQKqMMGAG8HEWAn+mTE8aWNyamIKF5ig9FUVQI4DSxO0Mfp/sQA/LEHwM98CvTIB6GLriUEo5tUNDkFxLJ8omS3nJjmoXA9RDdHZ4MUqqpEt9cRo36O235JtWQcciohmC3eEixsRQj2lbFEkVwhB6HLxDaiEYVs1yVgHiySm3yzbxCdoJEo4EwbObehm8OjtK+0iXJQ4ri1NQWRa+w3x12YZAcIssb1kpKzx0hh6A5YqKkK5kZcZ8QN1TkbJ6O6NqrxXofDQoNQpsHJQU/IByyAd4GmSSxaMuA9as0A6xpgBb8TyTzEkAoFb/kMTy7uppyGcWDg6+IvRjUEGuYiENnW0dWPAeP12UPxlHjIqUWBQekc5JBb6qqqDPFjBmkx9QUhNDMCQEnHwxFu2wOJFjBE26IooN/1fqj1w1C/80vQBYPXO1Dnt4DdGagkSw4c6uaZzgmSGPcixIuucwA1n4frBJ4xhVY47k/OXl2dSAM1gwsCHjmG+hPvAj70GdCZR0wLuJNRvTPl9K59eeyqR2FpJTxtT6JqdtNBdB6WaQulCHmRgwCUZYVev29HzIFopKm0POMuUSQi++h3NEqzcf20UnuOYV0h1muwfJlfu1yUxIrWT/3ogkNk+ekDRfklrRznmUjQ1luC5G20EOdyIM7C7Sw0e5HSbiyuim1kUdy0gyRaiX3Z9NGZtDgKVmw7ycL4FKSTPkKQQXwXYM8yvZubFlYXvPJUI2RnH8L+ArAGa0DXGlqbbahaayhGNJ/bENzLwiAxOghOIssfQudClpbM4yexJTu7+kpjdV6Yq6uQl0OJXo0JymsQ6roKqqY0DiMdsqdE4XeLRF6Fk861D4J8rtEtwPo1bAvEJj8GlIK+9yHQ6k9D/fYvgfkSuHcS9Nom+MYENK0BaDNqkMTnSc3J3+zerSMDr3xBNEBCMDKehns2PuRl6+nTKPChAvz0GdSf+AjU+z4JrBwOYka7qUy+buGVEZfawK/GI/sORgmxV26INsvMCLmsKnQ6Xf8kPFvWYWFDgRjIq8C1c4NPnbNB8vmC5qOzIV285sFe3y318ZlwmkmUr9SRbGkTIZDnQkIQv0NzBDintohJaMaVV92vtsJTTS0Ot30gXkNkSk1sKaSHjJrZHFCIGAyXpZPb6sy/gnoYft45xEmoyQKIIxP3VLViRwkCQW16Y+Dmu/dQrLfinmb2Q/N9OGFxxZrxAz2J+vimIK+z2MiTtrIgpty8OhGQpetFC9LacmJzZGiu46kJpwdbHkdt066XsPAt0oqyg38ln8GA4DGK34hprysC+NhJ1J/9SdCjT4HWc+jHjgP3rNttqwgPhpH4lMFNXcRQ1kIIyW+/MyeJwwzvszPZs0KSNGBz/PW5HuovPwb9kz8F9ZGvgAeHAwSkiCn1GOk2wnf/ybZtWonDVdE7RwruCf26qtHtdpBRFqzRxYs4SjZI+B2WWGIU9aOXyIEQmzZEP5S9gGxZ5HHKXXVP6y9hAbTf8u4QJzSWmIDcStsMUk6GrPV+a4EpUS0PB0bW2xspuCIi0bmt4BZBSH4RSqToyz6Fk+hc+6gucZLib8G4UoIPsaS34Ra4wjMUPq7dyeFm3ivN0Pa06BrwTwZ7QPPvLNao/QmiYgGthXnldIwx5gTgPcHFi1LBY5X1dZ3II6bQmQEglWWAsi8Hst41p6CGtt+uLHOYnmagtC8cQs3moTGEJ13dtkOvdSdSRHIByOSMi996mm5v9fpKxCMENhC6VCDwyhrqD38eamUD6lvfAD9wGNRV4Nc3QXtyZ5LIKyh9f7UsJQgC3Gm5DCycGyflyYdXGPxDR1F/+D2g93wZdOQuk1TOy1Csu7ifOodFikS+bB81IVcH8CY/MX4jt/WYUdY1Op0OsiwTuzqNU0KunIjWk71Aou1FV0+O906EE45Cc6d5sHNuVKol7I+y8F7+ov3uvt77ZcbBjj1JhAxiTQXxYjxridGA0wNUCrf5nMKSdd4otN6XbkaC1tIoFkK964jRvv4E1MWCoPP0zUc6QQWz0NpyMF6Duwj2COzmHLjbdkcWdE3HZH/+kXYjAzcdwAy2nzUTKj8/a32yRtuZRVJ/fLXTFAOkYnlatbaAm50X6Kc+XNG2/FwpkDKvWKzK0j953dxhJvMlQT4hzmQ8D4uBbk7f9vxovTQBWbemEwOZLck+B+K3PSYL3LF0tu0tgYjXTMM9OUsAqFuA3/cRoLcK+v3fAM4eBrIM/NomaGcOVI4cEPTmCdYVmqCoA/lUXf66RLAF8eBsy8Y/mUF/4i7UH/gUssc/Bi76BiiZ7NCHo3kAuZhsfgfQSDErzGamicJH233fDwBU8xJFp0CWZ6J9Xf8JK4VOg9pmx0k5HsKFIyiB30+F2ZfueH8hVaNcD/KOgYshbrh48nYS5CWHIZ4pnQLcfOW+OCyeo0Jw+uQ0cKO8xvUF5NHo9/shtgm3TgoeYwOEL/fVG3QVyyf6FUnFtsVn+aMtO0cCUY/3AEVRWvaA0yQDUZhvAW9ukTNgsjaepvGCTAPXGiCu4d7NXOk6ACLCSMM87WtPEHWePwHeG0TQDUsw9WI6Y08I0uFq6lG5DNn7YBAlCTvWUIrQ6/VwaH0Dl966FI7jsKDcOJ8pUpj7RYBSeP2tt1DrGkoBmdkHA2gOpOY7PTV2BMZkLurp+p/oFEGC9n1MjqtiazAKNqAKIFPQTz4NtbYG+u1fBk4TQAp8/iZodwKUAFjBEXyzp0pJAuEGcRKgjXY0yXxkptauOxr86AD6k0+A3/9lZGceA9sRWVhMD4TAgox8bm7NTxqK0Fy8w4giHQfcs+6b5EQiqDwDqRzzskRe5MhyATGU5BXRQ+BIufBL1s5cn2DY5yt8PtRcJhCq9C1Bwl4jsZ0dWEsg0UQLYK3RuoRIYj/F1WSPlkzTSPJbEwtlL0h73778c8BwcFKQUlB6Ay2VdkhGzfRoyUvgdyvJRPpMnyqWLkBaHAdRfIykU4p7gfBEjs4DsuDryMA9m6koTgPWqCsNxQxFhAwErhmUWR0x/O4NrWtU/lhpjnQrZQq7jaQb42SkyDgd8AXnKuRLijGvakymc9R1bbx3EIpCodfJQZRBMaAVoLnCe979Lly4eAXffe57yRvY5ONt8mr8oBARQ2U5fu8Pv42f3trE+uHjYAWzI0bZDu9ahNyoLdRHsqKDgpjcydcvXmYKM+cR7DncFHH8fUcMIENW9z4I9H4c9Fu/ZGIrAl69Btqe2Ta0AsbcI1rPymen4yJCiEikpTt7Y7RfNIPXAf3hE6g/+TGod30WtHIEfoMQYECTRNJUFJE5gxuzXg44icwWTxf8bJTdokogaLl3yJqke6e3yhRm8znyLEeeF3Bz+XKrc9hMHKtB9jxv++RjxMEmUiBolxvHdY9ghhBmBiLyDnEDjAmD2nf6R+bBkWk2nIWGnbTsmEwSJ5vGo3o1Y7/9cOvPKURG5zo0if3hEC3Qnj6+5nJYUKl0f3faWVqYl9zuEjlHALennn224dP5L8IjDVshEMA6EIIzbWU7gwKZKSKbdjydgesKOWUgUjCv56xhtiC57Z0M43z7TYBeC2H9kZPDL6VPEqsl0j3svnxhlRoaNzb3sLm9jcsX38L29k1MJ1OoTKHTW8HKYIDVtTWsDvrIshx1pfHqa2/iX/38P8fm9RselL0kjQ7D9n8jiNe/Irx+5Sb+zb/8J/gzf/4/gVI9sFJmd6NqaUWKKmzAzulFbv1DkpaCJaVmFp6Wpub0kcMqa1duSo0I4FNnwJ/7Caiv/TJIvwXgJHD+BrA9Bea1WGNgn5+066hOEdgAEaKnowfP/eYgQZzqov7kOehP/ijUA+8Fq9zozy9+B7tJ+UYuobDbASRto7Xzkd8x5DXqdNKon7noXsSk8hxlVSHLMhR54dvTTa/C5yGfoZE9MFi263GOU6Mn5X1ri/YWPC2DL8mVLQk6ksHpvS2OzC9ogJPo7miYBjksALl0rTDYtNi92JK8wTnvULit5xSk0O5fhvBYOI7VKn0CchZGmmW6RpG3/Lx+kxAcF3mw5+S7g7aA88KopJ9iPSkLQrIkReRPXlakkCtCt+iAAYynYzCA2bRElhHuvetevHrxdXS6ObRW/kRwM/VrhDDT09o/KOaqzY7IhBqjuqIpW0MfNlR1hUtXb+DqtSv4F//s5/HS97+P2WRq5/kVsrxAp9tFr99Fr99Hp9PHdDLD5UtvYToaoq4ruy4is46BrAHujiCIkHe6+Le//Os4dPoMPvDBH0G/30OeZ8hUhizLkOc5Op0OijxHeEiP7Py4yJIEwMve5u3EAUuTGLzFSGIQDxG2TVERAD5yBPozfxLqa78Kql8G338CeP06sDkClbL8lCQbzQA/VbSsF4t9/Zwx+P4+qs+9B+pjPwU6dk/iFsSjA19eAkgO1J2jEFk8t4iYAJlpR/a6CwRHcM8uECloBpTKUdUaWZ6jU3QCv4FA9ilxAvs1Mc2uN5O3F4/Owcwt6IZpKzdVnMKLWFuHcCd8jHRvRbrWuBC9kyBXPz10W4e01ZldEFIck9jqEKtNorQXvFPhbU4fxZzWiCejyXu+vuTReb/tV01RWizXA78rQ5CEF8XElQ+7RF6Gl5nE3H5oJiXiZkqhl2V44L678Sf/3F/EeEfhX/2bf4xuv8C5hx7EYKWLj378Y3j85iP4l//8n+PxJ96LU6dO4vrVG8iKHN1+B/fcfQ793sCYJYfTVN1QPFSAIV5rHgnLbObmZUeQJqWh8eL589Blhb//t/8hXvze86irEmDtOyDRDOPhEM4Iwy6pGqw1wgK4+AwSxA3km4I9aNRVhdFkjn/1L34Rf/Tcyzh05BB6/QK9ogOVF1B5gaLTA4Fw/z134/3veRdW+gM/vSQzDy3CXl5PjgloBS8skZcTW5A7V2DTuqkkZvDKCvQzn4diBl76AfjBE+bMpBsjo0e5K0nqJF1Ajq4lwY2OFADW4JzBT22g+sKnQR/8EnjlsNcHiXkw57uEfEQxDrdd/cjV2yWSM/w2AsF79f65NxBYG1trIpDVIxTA5un3utJQSqFTdETmYc+e3wbOjiJi1ZGQ31dJyiJHMAI0o77sy5T1a7vP9r6Ed+loNMk+Bm4hnAcgWUZSeKtAIQ9J2WnytqTvJCEAt3MgXiRWzBRxo1B7TaLWC/PP+9KpcAHimeD4s8m5TQ/AG5i91MjNjUT8bhl38ifs6IAwKHLcfeok3vW+D+KHP/MpnHv4UZw8cQo//hd+HKPJCP/q5/8Zrl+5jhvXrkJlBf7Fv/h3+HOdFXzmC1/G5YtXMBztQnONEyeP4sKbF0BEuPvue3DqTB/u/Kd4dOvme5s6ig8dkwoz4dXXX0c1m+KrX/smXn3xZbOTiOswnBdleeBgNkDi3iDn+gcQzTy4L+5fr1aXke3dmjVmkzHeeuM1XLzwBrIsg3J/SpmzlWzdFGV46LHH8b/9z/8znLv3HrRU2ZcZpoUkQIQu5cDFL7zbWridSAF9mpojP5VkfdiVAfQnvgDFNejlV8D3nwToOuj6EJhbMJHrDI1M0+scFO505eTsK/B7j6H+4p+Aeu+nwJ1e2DQg4qGl6T2QUHIt6Q6SBBpbUwW++clNibgtIOl2FhV5hrqqASIUncIp02Zo+6lUheU3bfHFLCSTJccgtltbYGFXbrpJzrlLn2URWoW+lDgIIlXYoNQOu460fJoII8OItcEd+6J4AMk4qexry9P5WPvAalu4tekjp+1GIVYtsoM1xrRIWgXBm0Ra/Wb+JOIuqmU0XwgBGLICXm9LWsbW02+xc8ZqhS4U4ef+4o/hw5/8EjbOPoq77z2LgX1JuWZGdanCq69dQjXeAesaR46cRFlX2Nsd4u67TuDw4aO4fHlie4HGzuYuvrf1PZx/8Tze876n8fQPfQhucU5aNUlmimRF0/DsHG6pK3zjD/4AH/3gB/Hd77yAcl6aqSk25EqyTdnq2PABOHzxGTNkO1gjlb07MlwtnjQ2utPMgK7N+xWo9CDnQMVl8Uff/B38t//1Jv76//Df4eTRI436NXaceAuiqH0jr9h7AwKE4aaSYmMNfduBpvXhBivQn/wSlPpl0EuvAPcdA0MD1/dAc3jb8UqMdCVtTqAWAXKRg9cA/uAp1F/8cdATH4NWuRVbxfm0mEEaohLTSA3EDOBKCCMuP9ISHrN/2FpyIJnjUIqig7KsDCkURfANfLlJ47GDehIAndZBGrokAIkf8fyBT2VJL2xP58hMgqVQkqvTTeI5Cf0FSVkYjYvOsTCCyJMCohvOjlNspCRxkwLifhmVeQvh1t/RLPtWWiontU9ZSvZHQmikyDqb2bpOmYjRCHL5IUne+j0NXukUX6NU/ZnC7794Fd0TZ/HwQ/djY2WAIs+gFDCejDEpJxiOtvDE4w+DoTGbz6B1jel8DoCwt7eN2XyOsq5Q19qfIKqZcfniFVRl6UtmoTOvI45NICI4x8l2uuD65ibefO08mIHh7hDsF7Wth+Vwn8Psq5s6SheRfaksC/J+VbjHIZ6ZirKX7fQYszjqg2vouobWNeq6BtfhCJAXn38O/+jv/X1oFjtdkkaMd7CIThH1XxZGSz5uLGq8v8PIm5o5GTwZrEJ/4gvAw/cDaxn43HHg2DrQyc0pq57N3XeZWdJHiMKfYvAGwJ+4D/wTfx70rk9AZ9JvY5tlasUBVFydPGyEZgrleXeJxOyW96RC/QF7LIVQigCrBJ/tlCdQ5GZLKhgo3PSRF9HUVera97F0EwizuC/AkcmSOPn/pAwpzgRig3fwXFs2KcjJ5PKhYAyNOImuBY75EV1qVOm1BaW7POSKhfs3RctFDsHthtt+orl9TL8Icn3LtOYTQKXd9YkJmBpR44hN5pVBTiXIZHL7I1m5QlZiWc4Okamc4PsvvIyjJ+7FsUNrqKo5dvdGuHDpOq68dRXzSY2XXn0NFy9cQdHZAoMwnk5x4+ZNXLl2Gbt7IzADeQ50CrPISgCms6nxor3kEpkYbS+Zdzs55IuJyF6/ev0Gdjd3oGuNbrcQO6TYTBiTIQC3P5xChnG5AtC8P+PJKUzTGNWRJyW3EAgN63myV3Z4qhve/LVYOGRm/Ptf/Lf40z/zUzh7912NejtJ5G53udPG71QSIEQ233Cqrb1qvbo202IrnxtFEQD0V6A//iUo/CLoxVeAc8fBmkA3hwC7c5IInnUVWohBCKUAPlKAP3Y/+At/Dvrex8IDW54/YrlDLqEdXLme8ghgqZTUcYtVGWZ9A9olmhC6EOmMTZl1sLxjRgoMoNPpxqCdgnCzi/p1Ptui5l//kCkFrvNmKjTh1yiFPVobkX3f9XmzcJ0KIX7LRccDo69YbPYViftIW71NEXIFLMxWLGg1UaIk2rdHE7c+fSTsVAqxfPpHgAzJK7I7t3k/KaA3F399VDDiKQJ3i5LfzVJM3jHXkwBZGZkAHD9+FD/z5/5jTEvGv/uFX8XJoyexM9rD3nCMm9c3sXXzJq5euY7zL9/EoY01TPeGAIBrN7bw9//eP8GLL71kXloDgq7m6OQZoBTWN47g8KE1ZEWOMHWTyOCMLdFnVGsOzo2ugd3NbezubOHsPXfh9VdfglIErcl4ptoBq0nk1w+sHkPnk0Yd+ygNELXTJr5NOeQTpqyk3tl2IhPPTZIAjJs3b+I733oWZ+66C4DYY560s5/fFbuAgvPrEsg53nYgiVQs5YS1JUJY5BysQn/ii1D8C8ArrwHnjoF1BbpZmXZzCOA3AYgMnbGRIQw+ocDPPAb+wp+BPvMQdDR1yZYQRNoUSCPBbaSAoeKJYPHIIieZmYj+d7S1Moor5suj6ph/s6JAPZ1DAeh35HuaXQr5qLU04nYM8EXDOT22NeQT7NxQiW8rV3Z6LEzs/AvitL/DIE+2G6UJo5Ret3LrsSROKUDDxgIJeOTiWMeIk4gWeXtEIMNtbUl1TWO+t/tVjUtoXo7nytLQUsl2LAwGS215xR6NJDWZbTA8WYAkmmCXRw+t46u//uvYHlV46+oOjh0/hRoK5XyK4d4OxnvbuHr5TWysraDX62E83ALAuHLpAm5eu4yd3SG6RY4TJ07inrvPobd6CPV0G0waJ0+dMmcO2WkWuKd/W9QaXfReZegEzMDhtQ0oXeE73/42nn73k/j6b/6m6dJEhhBIN1UtjZXbLrpLAvRbFmv9tkOfmgNBCMQyYof0crKo1hqvvfw8GH8y8rS8KpxyfDNRHCECylQ+xHHlfW69HOKz3XffX4X++Jeg5v8SrC6DcMI84LU5BlADlQQR8rL6P6XBxwrgsz8EfP5noI/fberPgQRIyX7GESZx8iUAfvI8dwSatnVamtTL6UaQcLgtIrPcJikzMQ/95XmOWVWBweglIwWb3MsQpw79UK5TxRuMxQbS6F0gLSwOhNFzAr4SLKSPkKojPHDHDn1TTTVK93Mfkhhk5ERGWVNHkg5j25NE9JOEhY164HBrW1Ibl1KVUDNiTKELQgviiZ9h10W659hFlcwsjScuwjV+NISUdWEZwXlLsZQAYWN9A5cvXMIL5y+g21vH+ZdegFJArghlNUdZl6jLClnG6G4V2NndQZ7l2NvdAxEjKwpoKFy+8hZ297bwkQ9/FB/70p/A9u51PP7u90DrGlorKMrELiCzx1w4TIkK4y5v0gCHDh3BqTOn8dwfPov3fPiTOHriJC5feA1F0bFH5FDohGJLiDdNe75Q7B0F/yT0hNiDCnp1xitazkdl37YMM2pxI+4wBQL0+0XcNBDmRAFaXEmmLW1GflTZtM9gLix+C/BNVB1+k79LzMDKGvSnfhTqV/41wNeAB06C62ug7WF470D0sBibd0QrDT7WBT79PujP/1nUx88EdYpXYgfyEl5NrAU0DMPhmKi+sGoZJWo7CdC+nql3TMFUCOLwVhBACp08x25ZgesKnW4e5dj8HjQrTpKJOYgp9nnscRfyCA+pC8vZESFKHyHxGAC4KcgWuSRTeVZoBzQH5I12SKssTbGRnctFLjgHKdNa+Hspcb+NcNtHZ8tPE9qQCnGFGwljE5Rpoo0bHinapWELICG39sWjNr5i8c09gRu6jGyWQCqrq+sYz0pwNYNCiW4nx3i4ha2t6xgOdzCdTgDWGA2H2N3dw87uNu5/4Amce/C9mJc1RqM9KFWh2+tjMp3jF3/5F/A3/9Z/h6K7gpX1dVN5rcXCbAAtdv9ZQw2LoalHZJTY6RT44Ec+htnuHr7+67+K9UOHUNU19va2UJUV3GtBnRoaS3eJsUZf3QKpvO7VxvE1qffoCe7E2JMRRydjPPnEkyLtIrlkFxF5MaVZNvoNCzvjJEL7ThhbHhnyIQawdhj6U18GjhwGDnWBc0fBa137ek8KelAwvxWDj+bAx5+G/vxPoz5xJizqug+bhgFv394WhNZMHeR0jkTQIHRcNzktk5BLq+fRDjaOVJwNklLo5jmqqkStNbq9rnkftGdz7Z0WkSr8Z9cYI9E96oWyTBxpqYLsWySW36ntG6UabTN9Su40UcbVKrWjOJlv1KZwPuf46Ql3jcRnlJzaanV74fYXmhGGdUuFkEwY4UfzqdM4d5mOBROmlTbgFxbgQnOkcLGIxN10SsgHSbvHILmx0sPLr+9hXpXo1jVWVwYYj7qAKtHNC4znM4AYve4AeSdDlme4//4HQNTFjesXsb15EaPREE8/9V5cvHgNf+Y//vN4+j3vwakzZ80eba3BypGBhQR2pEWiHuG3n480PyxZEMAa737qfXj9xefxh7/3e5jNtnHvPfdga2sTe3u7GE+mqOvSjE7YvEOBiMynfecukTK/7Xn5bpeJNEOjplC+8y7ZrhA056fhO7o0emP1Jv+yrPCBx87hkcff6+skB4TRFsNWV4yDnvyplRTJEKa0Q15xbgtGDLKqbhrjyAnwp78E+nf/wowQquPAK1eB8Qyoa/h1BmLwegZ86gPQX/oZ1Kfu9kBpVMAR1wb5UhIN9psCuXvHQbzwnkKMcCgcEbHYlRUFqTQnTlCCW+sj1shzhaqcoypLFB0z4q1Q2za0E06kYLdsQDFBKaBi757Brf04k9ES9OzUmGkyV3hobk4lFrYqRzhpHY1thbtyC0xL7IVaCrGdXJzc4BC5nWvt7Wb5zbUck0m02L44ywOF23h4TZpT2gQtiVrmc8l7Fi2hQYH2ogTB1kQimuDZRakafS7ZSWM8FpuP7XD9boGTxw9jfXWAWTlHxQol11BaY2N9AyDgx594DL/+3W/jlc0d/OgXv4Qn3v0wLly4it/+1nP43Mc+jcFggIsXzuOuu47jzOlj6HS+i/vuvhfrhw8hy/JwzLYzBenJ29/xLqOkdpx+ZXQ6HXzqi38SdVXij37/96CqEnedOob+ufuQF10AmSEi1mCuUNcVyqpEVZaoyjlm5Ryz6RTz6QzzeYlZWWI+n6GqK3N+vnfnTAN4b88SiGOQmFQCwTsyMJ4iANaoqhLnThzCz/6Zn8HKoeNmnj4Z14ZTY0NLulx9F7IIHp5FCG0dHADy4nvco9hG2ojByeyffAaDT54FPvsnQL/4b4Djq+BZCXptC5hP7btYAR5kwCfeB/3Fn0Z96q5wrk9Qof/0zRlN74Q7vhcKAdu6T5KsEaRnHp1USuSJQoKsOXcpEILbNaxIIc87KMsS81qj6OTmbWylpRobkYjQ73ZRM+FHPvphTIZzfOe55zCfj1BrDQ0yR2YgLpts2zhp01UFGaLlAEHiUjftKgk9KwJw5zjE2m2kbNxP9e8+FwkRN7y36UCZ4U6Y+Hrnlppva6QQPPxUYNEsrvU4SijAXTKh3Kki0kMyI6HZ7OGSA4iFj70j7uhpjiTKc8qXonSKDP/7/8NfwU/+2Z/F//r3/jFG4xmKbg/9wSoO99ex1iOsHD2E+558Cj/20Lvw1W8/iykr/IN//ou458RpVDtzfP3rv4bPf/orOHSoj3I2wYWL17EyOIJf+/e/hqe334fHHn8SnbNn0e10keXx4q2bRvLHcwB2y2UgxIZZMAPKvDt3dW0Nn//RP4UHHnoE3/79b+DNN9/AzuYVVJV5gEyRglLmj5QCqcyc6dQrsLHaR6aOIsty5FkBpTI7ijAKrWuNqqrtX4myKjGfz1HOS5Rlidlshtlsitl8ZsimquwJre6sJ23BhdDJCxw9vI6nHn4EH3j63Xj3Rz5vt6myHxDIsal3wgiINUAeEHzc1O7ElIQ/0NEZQ2OlecnI1o6CyNaB774f+MTnQP/+l4CzG+BJBbpaG1c4A/Dux6D/xE+jOh3OMQpHVoRyPSgxhaklTw5CB77+UtombLG40XCUyGVN8OdHiTncZq9iHzd0JkJGCmyOfsS8qpB1cihSOLq+gbtPHMZLr7+Ga7MpvviVn8SXv/JlfP+V86i3r+PilU3cOyNMxkOMRzsY7m1iMhlCVzVqrePnJWyBwTUK7RPVmZqf1Fb3kGUY0ULSgrAHx8Atu5Ba9Z76zEsJwCSITU8ySOj7Li41rr398Dbe0Sy/CTXvw4LhWBrJdwmZAHDD/bgbLxDE92djGCpKYwGe4jxSigkNEW9FdeV3uh088uA5KCi8fukClMrw/qeewsqhDRwaHMa7n3gUDz/1OE6fPI7ZtMSTb3wC//5X/j2OrR9BrTS0IrzwwvP45DOfxJNPPIaNjRVcvnoNr7xyEblSGG7t4tlvfg2Xz57F0z/0AZw8cVbIFje58+ZMRa3unZ1KqRWBmKDsgXO9/gAPP/ku3PvAgxju7WF3cwvb21vY293GfDoywD2bYjadYzKZYDqZYjadopzNMC0nqOsada2ha7PWoWE9dUsmmVL+gLuVToa830VR5Mgzc00pMw3lTpTVukJd1ai1eX9zJ8/Q6xU41Ctw79nTeP8XfwJZfwBmjTBVZMFZMLz064JZSLew4UOGmNKTdG0fVArnlkjNSkeI7UUHmqStc/LIE8BoCPrtrwH3HgfmFTDaA5+9B/wzfxr13efEURLu2Zg2n5WkH5XUVOzEESG28+a5QjGlxOlYqC24SKlurX7c62Rtfv6BMiJUlcZkOsbGoXX82Oc/jU88/SgKXeL/+j//HWzu7ODJp57CP/23v4bTh07jxpU30OmuIOvk6NEKil4P64dPYDS8idXpFbx0ZTfB0YCwvi94KRbAo/QC26L46ywSBA0yUTyCkiv4y4LzWOTU6aLPpHZGComAbTutDijHLYTbHCkEYwsdZElkFyWi6NRXR1w3zx6Brdu8/7QzyQ7rr1Gy2JiKS3F/tA62qAKjqhl/62/8L7j3gf+AqQaOnbgLDz/+fjz93ifxwQ88ibW1FXt2PLC9tYu11QFUUeCus2dw+NgGrl7axHw6w2Syh373LK5fuYabN26i28+wNljHkSOrWF0boNMd4K03LuLokeMoitx30rDAKAjBglnwlBtVhwIhyxS4MGfQKEUo8hzdThfr6+s4U52F1pUfifhto5r9YXhaa//EcVXWqCszrVSWM8znc0zGU0xGE8wmY8ynE0ynM4xHY8wmU0wnQ0xHM5SVeX9DXZXg2kyYKKWQF5knDep0cHxwDE8+/V48+uGPobd+JMiSCQCm1BJizz7ahNawGjculZ00IGEYfMWOQdNPlS6nmOIgN2XF4Kd+CDSeAd/9FnDfCfDWAPzTP4n64UfCcwgIcss1IVePJPdEEgH4LR6on3uPorh6y22lIoK7lujFJhGbHYDG3AwBgIYioJxOMbp+A0/cdwaPH+pi/egRHL37LI78m18GXj2P86+/hgfuPYn3Pvgu/I9/8xfwwMNPIs9zc94YAxVX6PRXcHLtEF67PjRLMlIpFFdXyujkieDExW/BTl9foceQ1qFdoucoUUt+8kK6LTXF8SV4vtgKZVZNqng74W28jrNliXmZVJH3ZSLLbVc+jvjZ8iNuHKSqEk8epzK3ZxeXCwkm8a3ZvMTLr13G+z/0fjzx6OO4eu1X8PTTD+Bzn/0R9Hod+0BYjeFwjOF4gllZ48q1q6jnQ/TXuyDFqGvGhbcuY2tnjnI2w2Q+wnQ2AUGhKHJ0uh1srB3GsRMn8cCDD6PfWzEyeXRwexvIT6W0mY3bH23m7s2nyhRyFFCKzDRQ0UGnKqHrOoC/O6VVlOefTIZb22B/amp0HIZbC2F4EoH95NpMLdXzCmU5Rz0vUZYz1PZgPgajKAoc2jiMo6fPor+xgazXN9DtxGH2WxPBLMA39p2NEhorLSJQNPJv28UXTxO158KRrTirY69/YoCzDPUPfRjZtATTS8CHn4F+79PQmYoOI/QLyxys1zetK4hDuW0AEdchTIHIPhkIwfxqQCfHCdpwS/Jx7GgZvao8x8nDq/ixT30Uh2mKjc4Apz70QQw2NjDc3EG3u4qMCC/84Hv43Fd+Aq+8eR4VK4wnI1s8Q9mX2lUl43devYaqMl4aaW5/DUTkV7b0h1Q9SQh52H4jckrU6tvoQCMFh5VuDbUxJSmyCD4Lmu0rnlD3SeLpzHeKEIDbfB1nrGppJfukFXUN6whJokgXQVMReYgio+vCp4qKJUTb1YODYzzGSLEOeBIRKl0BpPDW6xfxne+9hC4XmOztYDgcgwBkucJ4MsXVa1t48eXX8PKLL+Pym69iNBrjyKF1zGZDaK3x1sVLUOoGZuMRynqOcj4FEaPodNApuljpdlFVT6DX73v7cAZlsTHs2RZ19Xv9vZ5tr1VmGSoj8wS1UoRMKWidoc5zSwgMsPZz/I3pKk8M8ODvSCJ+jkL7a+zy0mJbrRyJOEEJIKWQZRmyvECRFciyDpQqQOaprUQWU2m55hy3eeQfhk+JfRJo/bsLjJEsWrZ011o3MKS46tIzA90C9Yd/BNldZ6HvfxDaesPeA5XE4nbZuXw8+MrWTiw86kLBzfU9wmcU7FuuKktiCG3sypUEkSxlsoUqWxVmoOYanXqCM90Kx558CIfPnkGxsoa6LjEb7WC0cw2zusS8Zrz62ivY2Rvje9/6DtZXB3jr6hvoFqvg2owkK60xGu2C6jk+dnqAr14et1Q7TJ9xdB3e/hvXw62WENgm9AGJLRQ3QUsmjrTJFRR6ZSp8O+tGZYbIHivd+lUz13cs3OaW1FTV7d7UoqTpjpHGV++GLfDYpCJJXlgsiTgGx0ZsrjGkgpL3OK0Hp2pcuvgWptTDpz7zI/i1r34dV7fGOHPyJFSWYzSa4PLli3jxhe/h/Cs/wKVLFzGvGLsPPILZbIJaa0ynU+hyjguvv4J3v/cp3PfQg3j9jYvYvPAmbm7fwLYC3vehH0a30zUgq8k86BRV0zFiaIfIROwt1//dArzKALACK4JihVxn1pO3IK+1N2rmuDw/SgDgRwbuijuX3+2a0u66IAeQ/26ycGgCsxhOZjopy3JkfjHbEFnYahDvvAqdJeC7O2OmYZsugkEMr5/YmQnnG4Uli7T3xo6Mn6oSniaAMI3BAA96qB59PNiZ9xhT8o1FdtnFmy2kCBQEYE8zcBXgJK7/LerQCi3OtDgQpJzbZqFHl48GYb55DSfVFKuPPgDVG6DcG2J07Sr0ZIorL7+Eb37z27j55lso6xrT7S3M9vaweXMHr7/4AmZ6hn7RBdgcuc0A6nKGx4508ODxLr56aWT6QeRtL+ztcpYJDU0vwOgAusJxFAkS6mwN0kl1m18iojI32nA/Ma3EEPzltvJFLW8RjlvrwO1vX2+EPOuGRN6wbqWk6APO0Ci56guwLbOsFDeNFXKOvf6YZNBCSCaEV9cEz80dV6NEZxr0u3j83D04fPwk1jeOYnMEXLp6EajmAAHz2Ryj4S6mkxGqukINYDqbg4iwtrqGra1t3HPPPeC6xHi4h7KqsHH4MJ548mm8+30fBjjDm+dfwee+8AW86z1PIs8z5FluvWi7UKsyKLujiEiJelJQna20284qvflg1pYEtCMD7Z++jV7sLr64+WTpaUXmI4DeTS/53xzuO+B1acw8viWGLINSZtSQZbmpc5abOtvXPbptrioYgcAJ0bOsc9FG+LCjRH8chHStKbbSeKhp0gfwRczPvuDkwyd13klDouZvTu8u6g1J57LTa20A40nc41NMcC6+dwJE2zHYHH1uyV5r9s+31DWj2noLh0mjLmeYXN9EtXUDb7z8Kr7/3PfxG6+8iZcvX8PK+jq+88Z5rA0KHF5bxbWbQ0xnEzABq1kGZR0LDUavk+PPv+cormxP8PPP75hXuEI4ExRGx3F9Xb3iHUmpOqXO0+aLMTqijZYEzSBHMe4KiX+bBTdYQYwKZLs794DE96acC4RCVc+WC4639TrOJYba5li5hqBQoWWQ77z0pd0h7s2J6kI/bqxLtuTnsjK7l4yBOax1RUxmc0xmczx95gRef+MSzl+8hkPHT+H65RvQVYmymkPXtamXBti+gFiDce6BB9C5eBl1Ncd8VmIym2Felqhu3sBvfe038N0ffA8f+8in8MMfewbnHrrfzO9rAivRCYKkvoJhVxVHt+uqwq/+yq/grUsX0esNsLa+jsGgi35/FRtrKzh67AhOnTwDIgYrArOyZdnixMJ2W0+IXQkOEZO0hDClFNfDxAjtS36bK5F5+Q657bGWNMwb5tzeMqcCOaJDAPVwQbS27U4UyvajDy9I0K23lNajMljEj/1HudW6YWhu6BZrL/7hs5flpfm4+IIQRB8L9WFxISWPZpYc/XCeVGg3Qnw2FdkLzAxkA9CVH2BydRPXL1zH7z33Pdwc7eK337qAN7d3sD0ao0eEjAiT6Rz3HwbWj6xhb97Bq9c3cfae0zixvoHR3g5evnQDxzuM+w9n+OYrI9GWsuBQmZbT4yO5fZXibtKKL4FEmnqn5EvTpXaQ3cw9oZVYCG93zuNyGERx29r8pMW5EvedUFr2DhkR3qEtqUlICcF+d43CtM9z0M7TSbIwWiL/YViDk5Zqnnlkd8oJZy90ELHNv0kqUaVNQ1++uYNOMcDm9i52trexvbuD9SNHsXN1B1ozer0eTp84jkcfexhnzj2MF7//XZw8fQLf/+7z6A/6+Pgzn8SVq5fAM8ZwPMLeaIj5ZITDh+/CBz70w3jowXPI7EIbKwMszkNfpOvGVAcDV69dx//4P/wNXH7rdbPoyzCHlWU5ukWBe86dw//09/4hDm9sAKBoPcDn65UXa8U/LyEWpN1d81Msg8nRif1HeqS+hSk81EbueQk7peTG4MrbhG3naCopUUrUfknndM6Cu+bFcMoMrR/8MllK7K3FRirqHXV4YaeizQSXNvgmdJpGBROiDjoEm+26ybuN4hkrcjKweMqZoz4anlMQqgsNHJMgMRQYVWcFE+6h3pth6/XzqCnDN968ghevXgURQRfA1vYN/27yi9t7ePqRR/DYoT742y/j6Kl7MZsBV3auYT4r8eCpDt64PsH5rQrugUhjTaFyck8iR6oL9hnBECU6X6DXeLdSsG9f8kJ8pQXfE0kaABOXH/3wxiEdjqRJ9iOEVnnawy2QguwoQbh9kwhZXN1aU6YdJ8kiMIEUJ1VE0ngiuhz9U6P3pfWyu3YCbAAwI4iMNVb7K9jeGwGUQREhZ+ATz3wKDzzyGB595GEcPnYUp08fxa/82m/gxIkTOLyyiqqscO3yJZw6ehynj23gwoU3cZTXsLJ2COvrG3js8ffingfOIrdv2Qq7eqxk/rvUhevIggzJdI/nn38e1y5fRlXW8G9Z04SqLjGflzj/6mt48YUX8ZEPf9CMEqwn7vuA9bj9ImcCauYz1r9rkrDV0ZFKcwdTI09IUiCAlN+5YR6oA9wOFwe0cqYn8QsSAwigIbeiGmfB6s3vReWYJPwup7YdINws1xuZ++Tod0QtEbImN6VSl4UErMNOl7j6QTyCaBak0xls6+CPJLGkKadhwhZvqyvLQCrPsLN6Ckf7F5DddT9+5z98Fa9O+7jr0FFc3ryB+XSCoigwn2toLvHIUz+M0ydX8ZXPfRrve+plvHRlgldfv4qNIzPUmvDy3hjf3x3j7o0B3nVkgK+9dAO1V3EMvrInGzVwONlE6NIPfkRTN9Qs2brlcoQeaZ9oC95BEDqVhTfaPgb+YG0BdxeZyzsRboEUArKHufwWeJeakxqPOm9LurSH2DSUXoN8uEx6DEl2ATNDKwphGAzlpiQoVrizJCbjnSoye/0zlSHv9NHpF5jPp3jgrvvwnh/+DJ58/3vx0MPn0O91sbHawWDQBesajzz8ILis8L3vP4+iWENZlbh05RX81b/yv8Hf/p//NsbTGbY2r2N35yZu3riGR68/gQceehTHT54A6wKMLAC1l919YxCreF3F6quqKvzeN7+J2Wzq54C9Udo5/Olsgt/6jV/HRz/6IbufnX1ZYbcLoFgeNCAV3NJ23taFL8eO7+PdLWHOVcpugNlPJTmSsG3jzlySJhF1ILINnzzjEmzEGgLL37a7tdmn2z0inYtYC5Gpk7gaZpApitv2I+DrPiPohSGgSyBdwA+R/RXXqTgQ3QKX1zvaHK/7aZ+3IDty5MmYr6zhOzsFfuXFl1FvrOM//fE/jf/zf/WfgUhjfWUD9505hSs3dnBt+yb+8n/yn+KPvvUHGNXA7uYWMtUFEXD4+DGsH9rAbDpBXo7x0MYEF7dvhPJkXRwgSRMkqdNwXYtmTfHYWwJRDB6JeuQuoFiGZlxJojb3cIdaIoZCbJTY2EPNOYpqrr1zNHHrIwWKfkXfzE/7O8WRBRwSUa4HOAf8bRV1TzF6dlrYjRr2I2KTlZUoXEl4w+ZBuO/cXfiPfvancGj9MH7vG89iNjOv0tQY4cmnHsNHPvQeHDk6QJ6Zg72UAuqK0e138cabF3Do0AYuqk1oDWzeGOGF73wX21ub2B1O0el30et1UZVz/OD7z+HiG+fx8c99CWf+v7T9d7xlx1XnDX+rdjjn3Hw7R7VyS61oZcmWnBNOYGNskk1miBM+wwSeB57hgRl4gAkwxAE8mGSCwTY2zkFWzjl0S91qdU4333viDvX+UXHvc1qWxLxb6nvO2aF21apV67dqrVWrduxkiNkqwknUONpLtYXFJR5+6CF8fJABg6D1SpXce/c3WV39GaampvWgsYndysqLqsxp6+J2wgmIFdK5NusbMoGNEIK2OVmZExMTRcL5EzxI2PI8bar9rEy/cfbDSI7q0ApAo8II9np4phpOHdqpK32hxKiuq5Xlf412iQemq5FjKFjhbYhh13eEQsuZg0zaaZ1c0fpjVL0yvnQLDoaPhiKhwlQ2ApJEcmRiEweTXey4tMnO7TO0prdywaYNXLzrXN7yppv4289/nS9+40vc/vUv0JpYz51ff5wdG6bpHj9NUfYRskTGkqTZQMUxT5xaZUOSUjpKhFQRZhyLYDIdKBpW4aHeraNgIWSkoQ7CUqF6z4gxehZwOKtGEV7X3XJWcVl9xf9/AlNfwX4K1SqOrLCF6bM0qTq0RpTgjL01gldvot7DdZlf6RdVrbpl6goQBPeI+nNK8da3vJlzz72EtZU1rr32Gu67936kitg8Ocnhoy/wuvhmBnlOt68Tx60urbG4sMrefS/w0KMPcdH555MPOgilOHbsCH/zD59idXGFjJKoIxkbH2NqfJKJyUn6WV+vXTDmEuyHETYOxOp8jKfdM3v3ceTFg27dQalK70wVRhgrxbGjR3j6iSd57a23orfzMcNNKjvWHI2U6Q8hg4gIoUDIQCqGQ1JUO8FuFBN2rQif0cB16MVD/OZv/heKwYCxVpOx6THGJ6aZGJ9ix47tvO/bv4tmI/U+jfqgMrUdLYwtAazwDMfySwnwQCOsUsQ/MKQEBUxVk7nDw1g/XJErlrxhW0YOGRWUYN9VQWfzV3n6VOh2dkCoH5pGdjtX+1KH0voOGdFqJUy0UnrlOImM+b9+6ufYOptw3p5zWb9uHd945DBR9BXuvP8O3vfuD/PgwYMUvRlk3HKtLSkoy5ySgmhskn57KWilGOqRehs8a9WhnwodbOiwqj8ckCekZb2rleMjVeWDEaJL1bvFfh8BJC+l03gO9LLw/yQ8vIIsqTXpWmmRvad+DV/p0Wp7lZtDoUFlTLl+FBUGOEuCMie0KkUaoacCWfoSeGxuKoHPfu7LHD90kOtuvJULdl/Mvk98hvHxFpPTkywtzPPQI0+wurREf5CxurbG8uICp04cZ/8Lz3HkhRd5Yd8+ZibWoSg5Mz9HnmeURQ5C0Ov3kQjSRDI1Pc22nbuYnF6HCFKCVkSRwufnR2EX29lWFEXBvffcR6fT1kxvhYZNY2ly0JdKMRgM+PpXvsZNr32tceiatwUO3VAz0wvhCKwyFkmF6zANONXLlZLMtDvAAzAZTBWQD/o89fAjnDp9yrCccKk5dl90Ie94+3tpNBqGH8SILvQnvE5rNQU7cL1OHorioUGM9Sc40WMUuRF8Vz9RE5auzLrAMYxtBZizGQc0tNaw+qCvKELOPDdKNFiaBwqRWz2twoY5QDLbv9XGtM9w6mYP9r3CLwNVTWiON9k0KZlpRbzmbVfTnJkmaibka112bTiXNGlw5PARykKgSsFCV9HunSHLC4q8oJf3aHfa9Hpd+t0VWmsrREgDSkOwHLTSfDNsbFN1h5RRYZtUlZahHlNVFby0cfeamVft5TWaVZUHP2NjNDDUP4eOGr86/nFa1qiHXtHxynwKZ1elRjcqOK+w2pkY/RxY1cg9PPQ6FQ5IMfQqh/4Iwg3Oh6BMBNquZZ4RVVdGM2632xSDAV/+p3/k2uXb2H3BLvY902fD5o308wH7n3+eu+64k7XFRVbXVui01+j22vQHPVRRkmUD+nlOWSqyImdufp61tVVUWTI13iSNJJ1+n+XTp7jssiuZmJ4OxE5gNhEmJ1PgsKpSU7GytMID991PmWsHc6m8ONED3koYQVmU3HvvPayuLDM9O2u6QPiuFpbnKxQ2izhC5vNDytnpXT2NTuM2RAmEti0mELxRkoKIKEvlopz0swX9oqBUhQP1WtUCVtLvcIDgT3mh5x4KfowYT2EIdUUoeGfJ8Hio8H913FQcnyFuuBv87wpwgh/ztshACIVjZRgcqkETldTTKgRnfMFC80IZ3OBS3itVo7/A+i+EELSk5F3XnMM1l53DzIZNyOYYqiwpum3otdk+vkAkBMtrHU6dPE6p+rx48gSL86fJgG63Q7/fptfrkBUZqYB3nr+Orx1ZYS4PzbzGzOxo5ntcW7VUSJAKHeuBVf7pKu+HkBASyQKhuzLSN1M950DZmuzqLx4hM4dVlQDBzW8rW/9PHa98nUIApVr41upYkaqmA9zAGnGcFdisIBOVc7rDzxaV66+HVQ5L1LT3Ia9Ynjc/q2CrNaIdWzcTIZk7s8in//4zbN+yidmpCa694Vr+8M/+nv5jT3Hy5EmW5k6jRElpNKpSlRRFCQLW2vPkec7iwjyt1jj9TOcBGm9GXL99igs2TpOPb+I1b3mL1r6cUMTV2g7+UZMuTWPF88+/wOEXX9DrHGodo2WvMKYJXf6Ro4d56onHeN3r32QYXbkB4ajgSGUFy2gmtENShY5M24uWvvUeCaeDCpqNBkmSukGmdFJ9Q5MSVRa2Br5toSPPCX8T6VSZtviFavWJbyiIa6Qd3U4jdEaOxVFMZ9pXB7K6LAl/u3uH+nmkrPPPnLXWI9SksCBXVy/4RJ3WIUuB36PCKnxKsmfXBnZs3o2MI1SeUcwv0Dl8goXnnuP48y9w7Nm9NJvjlItzPPTw3SzPzbPcWaPdXkUIQSwFeakoipw0Tbh0tsEtm5p889ASgmCdhPOHVMd7CN8hMIRNdVg9jKYBMNiQ3RE32V9mjPrV8WfrFV9HVVckxNAt5vTZBb3vG9+j/6cMSK8y9xF+PKvh8xUmtsAQoPhQWfao7GwyCiMDTe0sRbg6mAFbUdrw2pfbxYyafHNS1w+CkgKZNhEiYsuGaaYmGlxz/bW0y5gXXniR5ZUVIhkxyPvEkSQvchCQZRlFUQCKKNYb6Ky226yu6eRfcRRzZrnDie40O8p17L75LYzPbtA7oSkbfQQht4qgHfqLd7qVRcm9991Pe20F8KYjjyZ+wCjzzGDQ5xtf+zq33PYGpJC+7Ya/V1YWODM3R5ymNBst0jQljhskcUSjkSBF5N9hCO7MNSHD1jOZuR5VlWtpIyVNG4aNgj5QpZn9WBOGUwHMbzUk6KsC21+sC2Z3byDAh/kqWCDnuNldGlKGCK+ZT2sOGxLPdQFVL9dcqygEwfeRz571GK5kCJK+bkYzCGaaox/3xhxt6oPx8SbR6jLF8hqrzx/gyBP72XfkMIcX51norXLgzCLIkmajwd7nnqWV6n1Jut0OeZkjC0FTCmRrjMnpaTaM9xkfy5hKJSd7hQcqO5N0pKr2ml+xXr1SX3xXp99QNwTmMkcEI9hFvQNH8UDwdj82PDg44f5Smki1QtjAEQ8H4a9Rx8st/JWCghMsBD6CEe+sDBLbKWL49vrgOVuRRpL7mYklZu15pzScxdcQlOkYqwYcWMBwNypOnDzFBTvOJWk2GGQDojJh9+5zWehK2t2+M1WNj48zGPQRpXa4FcWAUpXEMmJ8fJJed8Bg0PWLhsqSrCjYcdW1XHTrG0mn11MWGWWuNz1HxcOVhyo13YhQrHU63HvfvZRFTriVJ+Cd1Y5vDWgoxQP338/a6ipT09PBqzS97/7G7fzaf/5lSpTOrprGNJsTrJud4T3v/y6+87s+5MxbNvOnFTBZf8ADD95LUQjSRpNWq0WjkdIaazI1Ncm62XUUdmN7A1NJLGk0E92Xge1VKUWhCkpKhPD9awG+YlI9a+ergKFGcYWn8aijOrRDtTKQBAGw1N9g6TqqUFeMqj0UCI2q+a0mCg3dR9e4fiGMRsLjpW2SE4IE9FLeJRMIyDB5g/Vtra31WXf0MCceeYi9Lx7l8OIyZ8oBLyytcLCzSE8URGpAUZQUZUF/0GOQ9SmLnEhKbrv2WlbkJC/se461zhon8j6LayClB2M926+3rNr5Cr+IL1TOK9SrgKFvS4gBnk4BPUXYl56OLwecq/LQy6FKM16ygPB55ctgBH+54+UBArzKNBeiSnt/1IHBnBQjbgh4rVaW13ydDmCoFgLCUL2CMWrBIcQZ/90vQqrPPJy9zw4SU9byapsy74OUdLt9inKaO+54kKU1RZENiOMYRUmv32HQH2gncamwtlcpJTu3b2d5ucvJUycoysxUUukNaSZmIUmJI+0KL8ucis3R0mUICarHiy8e4sDzz1f8CBhT23gaI4Sg0889IAulM7cePcqB/c/xmmuuDwhlRZBkeblDZ9BFmZ03pZQkacy1191AaaopGe761dU1/vuv/RcOvPAiZVkihCRJJK1Gk8uu3MN/+2+/yx/8/u9yZn6RNGnRGktRqmRlaR4nYE2/qLKk2+myb99e1tpdGo0maZKQJCnNNKXRSCGKhpUFqDgb7Wivr4bWis4QSYcC4oJCgueCi0P8j5cZgtpzXjlSwfNVbKgbSmuizYKmreRZ6jks/D0/qVqRrh6quo5BoLVsraiasWMWiVkFSkrBsaVl1q3fxOpA8sR8n8fncjrZMp1yjbm5Mxw/M08ny4miiGbcII0l62c38La3v5kDT77A9t1Xsn5qE2dOLNPtRsy153n8TEa/8FwZSojqEcKUp161aVZzCTuDwFlfI7UjpZVNVfO1B8pvffiwXvARcCq8YUipGB7tTq2rgcP/mePVZUkVYriiIVKG2g/h9K026oZ6a3gCWPl2tnZ7+ffSmqKt0VmcMnahVL0dRV5wZm6BQgFCMr/SZXIp4677H0ChKMqSosjp9XSyqbLIkZF0Gkaaplx7zdWcOLFCp1fQz7qUxcBoRopma4w4TpFRjED4eoSNw2tvwyCrK3z/gw+xurSIk96GJrGMeO31lzPWnOKfvnE3udkPQeOSotPp8MC992hQIAB9AYJI7xtdenNUWZaUhaDb6YJZ3KYqqqZ+PElixhpjDHoD8qIAoeh2oR13WVlZo8gzHr/vPu568CFXJ4XSKT5sxlYjyMpScfLkKX78B3+AVtqk0dQzj4nxSWbXTfG+73wf7//OjwzrTwKyQcbR4yfZ/+JBFpbmKArF+NgE27dtY9fOHayfnSWSwvuWgk8hMYkCqzNeK9SrsRGVVQW+Jna8qLA3fdvqQFAVMF54ORNBfQNpwjrg8bQi1AJkc220I9Qu4gxopzBBCaGKphwwVMqptadbwOHeCjOvv42F5/bTLk5xYu4E+07NkQ96FGXJuskZ3vWmNzIoWjy29zEQgre98x38yy//B5bGYl5/1QQT0+tIx5rE67byeKzINnVpLJxkz0SXJ0+tUgTKX3UNhekLe9340axyYBWukEb15AgeO0Vg/h51BI7eswFy5e4qnFTqfRbZJcIvrtgqL4644SxnvvXxqjbZ8Q62uupDRaAqc2EoTqgyAgg42g+7IUKI6r11cgDDUbPDVa9EJY3qAS3HRbUcITh88gQ7t+9gsd9jUGiB1el1aaZNur0e/UEXUJQKrambdNQIQbPZ4PLLdzM5ucyxkwtkeY+yyOkN+nTXFmgkKXGss6FKs22lThs9VDEsOFTpL+h0Otx9z90U+cCFCQrT3lYj4V3vfRf5IOardz1AMeg7gpRKIcqSO++8gx/4kR+n0Wzq0FOrNUmfNsHZQI2TushzRy9lNvMJzSoyipBxovfYVXpWIqVAlSV5luvkdiLSIGNzL+kXmSYrr5UKyPOCteU12qJNZPIjyShiYqzFra+9MXBm6+E2yAbcf/eD/O3ffpInHnuYlaUF8qwPSiGlJG022bBxM9fcdBPv/+CHuPKKy4hkNKwhWl9JqBIaKdjPBpw6dYaDh44wP3cGVRRsWLeB8y64gK1bN9BopCgFRZ4hhNTZbR0HWi6uqUwiYHlFhc2rfC+oPsjwbzdmahpYTcsare0KY5rT6xMQwT1CQOkt2eFwjtMGz794mM9/9tOcs/lcdnTWuO+p5+hnGWNJi9dcfjW33HALl11xOYMy457H7mfQ77C8tMRNV13Oj/7YD3Dy5BK333M/eVFSIlhDQtqiOb6O6a0xjfl9dLIMr56KCk2DDnMmZWn6cUjAK/thxlhl3UJQqmn/WZ27odm5St6gtFBxUO5cUODZj0p48+hZ0kufeXnw8IpB4axCty5rK8K+doR1E+EDI46zgIdTZYdHzFmrpTnCxveGapG/XA9htGXMLy9z2a4dHOt22TQzyXPPP8tg0EOBtocaO4rdYKZ002tBkqZs3bKJbq/Jxo2byfMekRS0uz1OFz0aSYqMIiKp00YLIY2ADQDStS2Y6SicPf/Fo4d57umnnS/BaslCCrZtWcfNb3g7awtd1s1O0T09R1maOZwCpUr2Pfs8hw+9yMW7L6nIjSiOzKusDwK3w01ZlJTKL5twphZTPbs/gkK5aKhSKSTS7PhW6puFQLrwxyon1GWaDVMtlTIafEmW55RKGhDU9y3OL/LHf/BH/MPffZKFhTPkee58KLZxstNhZWmJwy++wB1f+Qof+O6P8AM//INMTU1YZgjaZSPbdGXybMD999zP3//DJ3nq8UdZnJsjG/QRQBxHzMys47KrXsP7v/M7ueHmm/md//HbLCzN0xybYXJ6iomJWWZmJ7hsz6Xs2bO7xryq0gcVQSYE3vRl61gXFMrPSqqaBaMP5e6rhqeGQqtmxqrY2X3dQJCmCau9ggNHTrFpdhubNq5n49Q6zpm+kHe+8/VceP4FnHveeZx7wTbmjx1lbGyCbrfNwUMHmd25mT//m08xt7xKVgyMqRUdjVQqkiTm4YPH6OZFrS6hUlkVMF7rN7RhCCLdnarGfwFp3Y9htVIE5b80qUNzTzhmqoj7UkcI5OHs9f/c8rVXDAo2gmKo1aFwNaOpetdZ0MQMOHvPyLtErfjhF7rBU8cN70gSTlC6HPqMALkwKsk3BVEopJDs2rqdbneVtZUOrWaDpeVVIiEQUaSjjsyuZKDXOEgZkSQpk1OTTE3D5PQ0xaCBjCBOmizPNYniyG14bze4d2YFZ6oTQ23zg6DkoUceZWlhnpCrBRBLydVXXM76LecwPVtwxaV7OD1/N/0y95RUsLa2wt133sHFu3dXNKDY+CLsfQijECllnMRWk/QC2dNWa/Lhe/RAUE5I22yoQgiksrl1BH6xXbVPMM/rOuqc/kWeUxSaEkIoluaX+LX/9Mt84Z8+R7vbJi8K7xyt8aneZL7g9InjfPwPf4sXDx7g53/xF9mwYdbzWS3Mp9dp86f/64/4qz//OPPzc+R5oddVoEFHCMHy0gpHDh/i7m9+nXe9970c3r+fh+57gMLwoIwkzUaTH/3pn2bPpbstNnrMknp/jgMHDvL4009y7PgRet0+Y2Pj7Ni5i8v2XM4F5+2k2Wj4fnEE0jM3afopYO7qx4gh7PZhDgSVGyOlO+X4IOQV+5nECa1Wk+mpdfQ7HS7YsYWf/omf4PIr9jDRKtmwYydjE2PIXpu8vcaOmRlOnjzOvQ88zPYd53LHvU8QRTFC6si9stC8UOQFvX6H7uoKG5oxpzv9oOG1JW2qLoPqAkngBHNNyjslxNKEyh/LObXftjQCRqf2Tl+mCPsi1HEZvt8flcHv6mEhu/aCszz/rY9XFZJaD/Fy76uodYy6a2R5Q+ogXtxBtSn2dv+GWsiZQ/aQoYOSlHLrHFy4mg2bsGWZ5wQ6Q+frb7uRt775rdzw+jfSXm7zq7/4i8wvrxAlkrHJCfr9Dv1en8hsH6nM7lFSSuI4phHHxFFKs9mk1UzJpdmHFkmaJkhhTCHBPztbsMBghS1WUw9o1uv3uffOe8izrKotCEEzltx40y3IuEEaKV77ujdy94MPMjCL22wcdlmU3H777XzvRz5C2kgx5CU1sxhvb1decJRFleb1rjXCD6ugG9pb01NZFiRxRBxFFCg920LoWUUwOHXXmKFdR3FTpzzLjCDN+MPf/l0+/0+fZXVt1Zmu3M3BILUzpVLpvaSL1YKv/tOniEXEL/znX2JyfNw8Yh9QZP0+H/u93+V//8nHWFpeoigKPwOpV00IFuYX+MRf/AWtOKE/GGjQk4KoiIhlTpkVbrZnaVaWBY89+Ch/+rGP8dAD97G8tOTohRDESczk1Hr2XH0d3/39388bXn8zaZK45wHyLGNubg5l+DCSkiRJSdOEVrOFkLrPl5bbLC6tsNbtMdZIWbd+lpmpcSzDeYFZF3TBGgBhR5eWbFEU0WqlJKlipZdx61tfz4atu6C/wtjGDahY0l9aZP6pAxx9/Gk2pIK8KHh27/OstAVLC3NMTs9QqD5CFRRZxqA/oNttUwzafPe1u1g6vchXO/3qQsRQHgTg5a6Gpr+aAz1MojfEx+Z6NYmgl/jDkWEBup+tPHcxYPT6vSMApaIcGbknKjfbir764xXkPjrLuRGKSP3SWYELKs8LdyKYEA+Do2++HbA1kHRlCfuo0xUQYYcJ98fwvBU8hr0ETE1P8S9+5t+wbctm1m3awuG15zj/oos4evIUK0tLJGmDjTMzbNqwHqUUzz53kH6eUxQZSkESxcRRhCIiTROSJEKQIICkxGhEwvkToqhmQgqc306RUBCuszh27CTPPPmU2w/ZtkMKwbqpca645nozQCQ3vPZW1v/pH7HW7VEUyjFWqUqefupJXjiwn92X7sEOsCTWoGWZ1ivcfrV0dX4XzMiEMDMF30F2POWlDkecGG+wfmqCbNCjyHPyoqQ7yBgUpQEJfUj03tLSmps0Wpo9IiR5UYJQ3Hn77fzDJ/+aldUVcgtaygNrIiWpFJQK/Q6DWPpVBb1eny9//tPs3HUOP/GzP0USS6+IlCVf+vSn+cuPf5yFxQVdvk0HYdutAt5ToCjp90uy3sDzcwlCmFlO4YFVoNeN/N1f/Dn/6/d+nxMnT5CZWQhKJ3hQgBgM6HS6LHz1BE8+fA/f/sGP8lP/8ieYmZ4EoQXiqSOH+IV//S84OrfMoFDEUczYWIvtO7byy7/+31ldWeXvPvH33HPffczPnSAbDIiThPUbtnHtDbfynvd9G3v2XOT2sKiMsDpIKK85CwSRjBBRDGXMO97zDnZccgnFyhoqg5XnXmD5xHHmD59g+fAhHnj+WR478BxlmXPmzGnSeAqRtxF9wfLyEpQ6SKEsCwqluGA65e2Xb+FPP3W4KtvdMPbiNtS8XZSU0Wjq8sneHoqzUNH3Y69+h+n5Smzr2UoMH1UewS1NR1XgrMewr/ZsS3pf6fEKch/ZNgQ1r7d9hBP3JecKIbgN3W0gwr63QsTAVRMqaCKs59mIE5Yzukr60+C/UvzGb/wWkUz43u96D4unT9OIJLfddD2tyZRSphw9cZL9Bw5x4tQ8UdIkFQP6qqAoS6TQwlmhzJaaWrgJoW3PMooQkURG0gGCtHsWC7NHsZvJVFrh6vnwI48xf/qUMbn4mH0pJBft2s62nRc4Ftp54fnsufQKjp06rVdbG34sS8Xqygp3fPN2Lr7kUp1OA+Ucr36ohQK+ou8M01JAFCVUNSfzjAARx7z729/PDTe+lk63Q7vT4fTpU3ztS1/i+NyCjn5xwgaaiWB6fByBNI7wEoSkmUQksWBlYYG/+tM/4czcGQqzsZCuhwaPsTRmXTNhenyCsshpd3vMdQd0swIoUUpSliWdbpu/+Ys/5cbX3cyNN1yvBS2Koy++wMf/5A84feYMuZlpOd4VEAlBLEAJobeqdM1VFMpqdWYoK+1nyYvCKdtlXvAPf/ln/NZv/Abzi0tkRaFXdCNcymorfAoEZVkyP3eav/7477O6usDP/+L/zdTkuJlJ5izPnebEkTN+VigEywtz3Pm12/mLj3+Mp59+ht5gQKFKV7Njhw7xzBMP8fnP/C0f+PD380M/+lEmxsdqmq0HPyd8hQfeSEYIGZNOTjExkVLMHad7YC+HnzzAmeeOURYdTqucTz/2KA+dOINIUpI0JioUE2KNeCxhYXWRpsgRcUTcTEhixXK7z2wi6Zw+w8DGQltBbOgycomhS7A5WmwG2GZkjTBZCWyPKc/5Q3LeCh37U53txuHBEQqvodvPNqrU0K8w7JbgU/kbXtHxisxH+iW1yKMRmry+t6pBWqYaaUtTuFw5dfOAle9KCB9iFoKSlTfmMUkVP4ZKq804KkASKEH2hisuu4LHn3iGDVu2srra5fTpOfK8x/EzZ+gez5lfWuX0/CJFUSBkTKRKVBQhRURJqRPNocM4o0hvFmMjULQjVmrzkXU029/SLAhzU3OqmoWp+GCQcecddzHo97wj2FxPIslrXnMtjfEpU4agOdbk9W9+M3feeyf9gV4voa0fiqIo+cbXvsr3feSjjLXGwADXyB3OFNpMZgS25wHDoGZgxFES9H5V44qSlDd/+3fqfjNje/HUGZ548hlOzC8ikF4DE4ItW7fxn//Lr5OkCb1um26nzaDXp9vpcMHll/Pg/ffx6EOPMHCL9wydhWDdWINbrr2G7/qRH+X8S67g1PGjfPPzn+GbX/wCB07Ns9bPjPNa268X5k7x8T/+Y6666krGmimqLPnK5z/H3uee19q7sloiRELSSiRTiSSNIyihl5csDzL6pRcSnre0qaxUyq1+B3j4rjv4o//5P5mbX9SAYEx1lMqbSRxfKxPVVNBur/G5f/hrNm/axM/8658lTbVfKitKBnnBIKjvsROn+Pmf/3e0V62vRQVlCgohyIqME8de4E9+9zc5c/wY/+E//TytVivo+6pyYBVwy5N2RjfRSHj4sSe4YgxW77mL1WOnydU4Dx0/xCeefpalXkaz1WJ2fJyr9lzKarvH9qTJ1Rv7/MU3nkDMbGWxP6CZRGxYN8vDTz7JoCzptjsUeYUYVoCEbKgDEhy1wK0nUba1o1eA2ASNtj2Ve5yscsSoP107P/rQVX4p4BgtyauO9NDE7mVCRRyLs4rosx6vMvooKD5ok883M+wwHpoJuDYIbwo5W60DbUxUX1i9Dt4WXX1bteiKdDJ/XLRQcJtSnD4zx/TMNCdPn+Zzn/8aUaTottfYvnUjxXKbSy/dwMEvH6XZaGrZJQWRMg7WMkdIYWzWpZ4hBPWVErMvsTEZSQ0I3sYc1GnELAzg5KnTPP74o1pAK28OEgLG04Srb7jZhLcKNyhuuPlmNqzfyOpaxwkLm1vomWf2sn//81x5xVUIII70sxZwQha223w6DatGWiGEi14y6jEYx3mRF8ZBqy+VxuwhIkmctoIM7MZSLSUqSbnoqqvZuHmLKTIob9Dnl/7jv2NpZcW1yaL9WCPmTbe+jZ/71V9j/ZYtKGDrrvO44robOf+iS/jj3/nv7Dt6hr4VngoykXP/Pd/kqSef4obrr2Fxbo6vfv4LdDp9CqWc5h0LwVQr4ZwtG3nru9/FFdfdxOr8Et/84ud5/OEHOLq8Ri8zMzhDAqvYqNJHqa3Mn+Fjv/dbHDl+kkGee+XX0CwSklgoRAk5UAaMWhYl3c4af/fnH+OGm27m1ttuRkYxCqFXDRelXmuCIitKVG/gldSAzlZBoFQUQLfX5h8/9Vds3baVH/vpn0Ca7WGtkhvoz4apdWdK48cQieDYyVMcHijOufxaouNf5vOPP8bXjp1gKS/o9nMK1eGWa27i5OIS560bY/e569i8fpY9T+zjzlOLtNbNkJNz6PgpBkVBXghWF5ZRZUGsYgY1TdulERmhFNp0KlZ0jgIE3xoxfI8tszYOQs6vh5uOmjBYhXkoAcfogiuHl6P2LV758W2r3u9Gw8uKbnLBhd/68BaMGvmEPxV2hnIVHlVYUIywE6D6oUAoY0Lw5+r3hUVR+145W1Oyq88ELVO42aYAjp48ybrZ9fSyjOcOHWD/i0d59oVDPHXgIA8+8Tjf+Ob9UCgocQI9iiLiKHZMZDN+SqP5S+FnAcJUxjuYbcihvSesoa2wBQvBI48/zpkTx1A2AZ4zaQi2bFzHBZdcYcrxgnLbjh1csudyktibhpTRXtvtNrd/4+umGL3jXKV/g6Moi9o5z9SW8aU0Ia0BcwhnOikrYkXTISKSSeBkt3SCsoCyFJRmo3jt7NbvPHPqNE8++ihZkXuXkRDEUrJx/RY++q9+jtmNWygLU80SojThnd/zEd727R9gw9SYG0ClKinygtWlRb76pS9QKnjmycd4fv8Br12b1jSSmF3n7OIX/tvv85P/169y2zu/g3d//w/wn/7wT/i+H/9pztswQyuJAoni614qRan0uo2H7voqjz7yKL1BpssvFcKs/RhLIrZNt7hkxzYu2ryBLWlEKjy/6lmeYm7+DH/yh79Pp9tHRjHSmrGU+WcXIDpeNGJM2B4zn4auZVnS73f5i4//IU8+8TjWGxtirv/wJ6WUyDghScYQRc6gTHkyK/n6co+7Tp0imZ6g0+syyHr0+j3+6Wtf4ODhw1x67bXMNjM+f99DbF2/gWywxsm5BQbdNkuLetFhnsSouEFGxAUzDbOS3igO4ay6ypWACmQYL3GfZWPfx3UZM+qo3OM0PzFSyI9cZfUyBXa1pj4YNXhx5Y5RoPatjpcNCsMvGX6DGPp7FmAIFTl3f0U86BKUwM+bfSd54VJ99yhBP+rldjCNaoXuTyOUEaytrhBHgiSWtDs92r0egzznyLFTiCil08uR6Rh5WWitP9ILzyIZ+S4rSj+DCjjHvEaLTzHin/0vqKSe2OjK53nOnXfeSdbv4shnNPJICC668EJmt2x16wjMZlskjYRbXnsbaZr6gW0GgioVd97+Tfr9ng6ptRpkpeP0UZqQVNd35v3OfSDAbwsRmpn0YCnNklRl7rXAYUNyRdCLQmjhWRhaumgm9LqQA8/t5cTJk9VkZ+gFdFdedQPnX7ybstQpCpShOUqvIXn3d30/5+w8hzSOnSmtVIo8L7j3zm+ysrLM4w/dx/LKqjcbCYikoNls8qEf/Elec+OtlGVEUWq6jE1M8OGf+hne+90f5ZypFq1I+vab9BHKOI8HvTZ3fvULLCx3KOyCMAFSQSuKec0Ve/jl3/1dPvalr/Obn/xHPvC9P8i2iTEirMarBfggy3jwvrt54vGnieIYISWFKv2WrLUjiSKmmwkbGjGb05ipSBDu4qFKPcNdWprnL//3x7Spq3aE+qr9K4UkjhPGmuNIkRA1En73zz/N//zanRxZ6/LisZMUZY4Akjhi44ZNrCwv82ef+Czzaymbdmxl73KP8yfHybtt1roF02MtUIKF1R77Dq2wc/MEzbHY9XPY575G1VrWI47ct7omL4YvVchXExqVUaCs7v/SQj6cLfhQ+aDs0Xji3ye8xPT/gkWrI597eajw8mcKrs4ViT5UWatKeKStTWhcr1k12EszL3gClA6FaEXdr797OL1AWAPsGxwxR85NXJ2cwC4L5udPM9FqUWQD8jxDxhFZkYGMyYqCKEq1BmlrKYR2IhvN32pqKigXYTWbML9Mzak8wsEctv703BxPPPqID4m0ghlto9++/RxOnTrFyZPHmV+YZ3lthU6vQ2/Q48qrL2diwizSMs+rUvs+9j+/n0MHX3AKzyjmrJmVa5VT7vNs4GwFTjhMLW1kVAVDSwZVljrZnynf4AJlqTh86AW63Z7DHAywRjJmz9XXECVxZeAgPc/sOPc8LrvqBlpp4pS7stQhmy++cIB9zz7Nvr3P0s+CWQh6drdh01Zufds7KEph011RomczcdrgAz/+k1z1mhtZ10yNaSPQ5pSiyAcsnDnBU088TTfLTTSULV+wZet2/sOv/Tfe+M7vYP3mLVxy+aX85P/zS7z3O36EySh2QK/MTKDbXuFzn/lHhIhIokTznfJAo3lDMNZIufjcbXzgPd/Gj/7Yj/Le972L3Ts3sy6N/QwEzQ9FUfDAvXdz7MjRGg/asV47BESRpNVIEcDk9AytsWkNUnmuAyKMErJ103aSJKVQGSudFf7qrsfoHjvB5IZJWmPTbE8iVpaXOLm8SlHmdAvBo+0SUnjy+Irj0SoLKje2CP8GOqYfcSP8mFa0BbK68g5Vl0vBjELYdCkvIdXdU4aKNh72LO/wFLbwowNgRo+v6tzh1Rwv26fg62xH6IiG4C+F+n+l4u6ZYdwSNapY5zJi6DUja2jJbJHOCRbngLV1tikZhuuO0ovO3DkBp+ZOs2PH+SysrBCVkUmxIEy+95ii6BLFMUqVJnwTtyCtWr9ghiOC+hkOEMZe5CKOhlSYamWf3vssp44frZqOzG2DPOfP/uZv+OTnPqcXxTUSGs0mjWaDOEnIsozFpUXrV3UzjLJUrK2u8eB9d7Pn8stxoFFhTBt+WQ77vitV1Fq/17JMO9FCtyiHWVdI7YdwtKqYXaAoy6omprSWPHfmtHb2B1WxM53zzr9QD1aB3hZUBAqHgjhJuPyaG/jc5z6N7PaMtq7DVNfW1vjqlz7P4UOHKFRZaaaQkq07z2Xd+o1+Rzlh8wjpz9l163jHd3+Uxx9/BNnpUwjv2FdKMRj0OH7kRY4fn3P7cFg6RVHMre/4NvZcfR1FiTYnoWhOtXjn93+UL37xH1k+dUD7JYQuL89z7vjGF/nhH/hu0jgZsiMLIEkiLrn4Qn75N/4rl195PTIWqDLnwW98lf/x//w7HnvhBGu5YwlUqVhamueZZ57inHN3OSHlhKVVBKwaZsZPs5kgUIyPjzE+PoEQEhFFiMBsKEXMwuIp0iSl122zOrGeO+bGuWB9zMYtktVum45SHG139axKwUkkxWLJpulxTq72CaW3kzfKauNGMjhtQd87tNlRbWyN1GPDzq+QtRb/48aBkewjZmkVuVgDg/r3esCOqN1U9U6cxWgfRt98i+NlzxSqL+DsDbGXnKaoRt1SwfDRIj8k2AhfgtXka88PiVLHuXbQeiKHos5pHAHC2zp2uz2EKomlpDCrlmMZkxcDGknKoN8hiROdNtsIdyl05I31M5SBk9WONmsu8U4/72OoVL/2qdDC8Z6776LX6QQzBXOH0vbq5XaXk6fnOX7qDEcOH2f/8wd5+olnefyhJ3jqsafpdPs4Z6EZRCi9pecd37yLrN/35Q4T1eyCpqo+i5pDOlynEE5mVOlXqlanI2I4/1DwXlX6d9pBqsqSztpaxW/hZgpRxPjkGELo1MvOlm4lHoBQbD/3PNJG06yD0NdKpSjznG9+5cucPHGyImCtUjG9bj1JHAPKmMpCzVN/nnfpHlpT09qXZN6n0MCQ9fscf/EFllfWnJPbvyPi2htuMRFs1vwm6PYHrJVrxFMtM1NQTu9RZcnJY0d47pm9pEnq5KXVZ6UQjDeafOQHf4rLrroJRYQqQMiI6974Nt75Hd/LxrEGNh251gm0j2Xvs8/WGcGSujJmBDpgIk1THWARR0xMTRDFCZGMkTJG7+0N+4/sJ88znVRSlURJwsz6dSzHMxwop1ibXM/E+g1smBpHKkGeFSRxTHdQEgYgWc3RKlZV/lGuT+3MqsJyziQYPDSUnDN41whZPpJhXxIQwhMjEGjkIYJ/w7d6WSYqd7u6vMzjZc8UfL8rh8Th+dBbbwVcRauq1d7ve3D2yoqhb1bFVgEBPHKGdbEAUAmzUKO70T0Xgr19lfk+v3CamYlJ5lZXkAoiKSlyPQ2OpKQsMooipywKpLEfJ0kK5DXNVNtqAWzCNwsYw5Qw4KXCtukvi8tLPPLAA5RFEXK3+1RWexMKVVrrZenKq84sDP3MKlVVKh577HEOHzqIWaRt+LvK4C5UnGAAuQGjjCA2syXXD/anqpbnlDnjUzD96PeeNc+UvhwvuBRFXnd6Gz6QAiFLp0SIUA2y/hKlGJ+aJIoTN/3X2qU2cb34/Asu0sqbtARKCMbGW14GuTFbhfLW1ASNiUkjsDxoKqXodTucOXmcXqbt9aELTcYRm3dsQZUFKysr7D2wnwfuu59H77+HvY89zuKpE9ikKsLQWAlBNujz4D13kSYJ4SiUaD/Ipo1bufn1b6EodIi03Z9CRJI3vO+DfPEf/o6jq4fIhPV96EizkydPUJQ6fj/surrjWQjMjC+mRFGWBWNjTT1jjWP0mhBlsu0W9AYZcalojU8RRYJuv4PowuEXDhCrNqlQdPsZExFcu61JP4u4dMcmvvTsSUD6/UmU52WrH4TmPkRQb6VcYoAwPYWXc8MmGHfNKnNORRsyklf5XfjyVVDOSIEdDvawOEJZF4p724L673oRQ1B01uMVhaRW8Ul5IltJBZXKvZTAD+/11Q2lsr3LT4/cewOBHR717rHTeE3oEEaGUd6ZcYxWoReu4cIHV5aX2bl9hrkVLdRFFBEJyItMZ0rt92glDbqDLuMtbatvNsfodJed0IhsRFIwdxVoB6rTcGzdhsigHJMLKXh2714Ov3DQq99U2+f6xMZv11DZZUGtMK8upVSwsLjEHbffyS2vu8XQMCCyeS7L+oDeJ0FUSvfsqPeI8ELQAWMdFIK2hvbgSjtKLWAqyoIoEQiSJAlW3/rho5Si11tDCkXpSVxrjN7xTUrjuDQAaGmR5YWZ1Zh+kxayBFIq119OSfU5EQCld5NrjJt3C9dnJYr22irL8/NmkZqvUim0IL79m1/nHz/1aR65/26OHz5Id2WNotQrsV0UlOEvZb4oVbB//3M0HDmUq6AQks1bdjC1bl2w5seMLwWbdu5k5+7dPPjCYfLSh9GWpWJpcYGyLIhk7HrZKx9BlwlNnTiOdWAAilarZVbs22eFBphCR6KVCKIkoSwLOu1VFk8fp7d8ivWtmJPLawzynDfskOyZFawWKRfubPD3TxSmeV4muP4356w0cDwprLIRsEpdDqsqn9TBQY8TO4ZHyThb4HAhonIiWF1gx2Fg4hr9XP19VnJa6SfC1tYqPXx21PEK1ymIkd9F5fPlvdhSoxqpW22wVhLDTIC24XUmCEWitefqsxYYRK2nFYHtrJbyVinv9LTAlecFWa9HM070ClEhiUSkV6pKvRI2TWK6qz2KpCCOBWnaoNP1b9Sb8Qin3brVqUVRtZ2PIKwbe0ZY3HX3nXTWVgNqa/powSSCupuHbehvoHnbv2qoFB1u+sUvf4Ebb7we52JxNNIM1l5ZoSgy4iSusGI4UxMyiCtTwQCtqJr2mqmRpCa89U1FUVDkRaB46QKlFIyPTyHlMAeWSnH61AkntB0bOJC1o07fMIx9mvsc9Fq6GvNUt9vD+6i8+Ak3bJFRRJymvn1WZilFp71Ke6lp+EFfL9HJ7Lq9Hr//G/+fS0DoWufkkS7Ig5LQ5jElOHbkEDs3ztieqFhUpqenie2GRHZ3JEPUOEnYuGUrsRT0C98epfT6HA8K4SF851o2loIoTihLbepsNFITim3MgxHkskAVNv26JJYxFAVri/OsnjnOTCro9vr08oLtLXjN9hYvnsy56YZZPv6NI+TKyg/h90sQ3hzrZHYtgtFW2fKk9Bji+6fSuhFrFszf0JdQk1BW2o8UiaHMdH0Jw4LbF+orPAKI6i2sgJy9Mgq/RhyvcEVzTYArT8A6WeodUKW4cgPwbLMJ4f4M32MT2oVnZdhxVoOytbLmmQoueGHoBhUhAwSYa56dW15genoDp5cXKAtI4phClc52nZUlcRzR67dpiRZJkoDQ6QgoS+JY22JKFfhaRGQGvKgIq5Bo9rrtheWVJR64515thjLat0JHlaRS0IhjnblVRF6YGRCy+z3oPQy8Q7UMBL7VlJ968mlefOEFvQGNk9wChNZyT5w4TnttmWazFYCQp73SCOZnBeGsRIUCOeh3AWFeJ/ztFEXBIM+0AA05UQpmZ9eTJnEFcHQ0UMmB/c+jlJnRGBq7FfSmjDzPddoPqhxsFxJGAiOEfJV1NtQFijJDxqkDHQeCljfdzMcI2aDZ3U6XbruHdEoMnkcMzbwfzPskfEU1QEVS0IgkzSSmmUQMlhc4mXcd7waVJkokwiRlFELVTGqK5lhLg7nwjVEout2OnjHFfpxVlAELuqZPZKL3JS+LgtRk29UyWpgMwrU9wcuSQb/P4uljJOQkSOY6XZpCccs5EywtKS65YB33PLfEweU+SgoHmKH5VfNv0BkB9T3zQaVbKj1UParGav+8f1n9buFuO/sxrMBYuWi0imoZwfgcXa6HqbO/7yUr5I5XFH1UFfr+I/xRBYjKw0ZwVO1qXvyGxYwsxYwBVS/S/K4C1tBz5mavKKvgnHKmBycInI7lX9Qb9JkodM78srSrlCNELEjLhE63QxpJOt0eKMX69drRnBcFgyJjOoo8E+O1P7sXQ5Uwtp0Ka4BRpo579z3PoQP7vTkGDYpCCLZunub7vv8jSBXR662wtrLCyvIa7ZUVOt02vW6bfrfLoDeg3+8zyDOWOgOWe4WPkTda7srqKv/0hX+q+BNs7ymlOHV6jocfuod3fNsHDF4Eg1DAqTNn2P/Cfm1CKJUXmkqhVKnNZpXe1GXbxX0VR53SgnvQ61TGpm3/tu3bmGg1ObPsZ086vXfJk48/SbezxsTEpFbcgvFhabiyvEKv3zP+HYd9SCmYGW+hBhnz3b7LiKMMDU4cO87qygqz69d76rhq6/aUqmCQ9bG4GPrEiqxAIJGqKky88mKB2POhn1EJEimZaURMjbeYXbeO8y6+lKtvvIGt69bxO7/+/2nlK1AqBIJM5boFYexlcEQiHoJkheb/yoJF16GhMqD/SgRJnFIoRZYXpGnDAawFVO1ANxygSpQSrCzNk/fbTMeKtW5GXip2Twl2tCSnBjHTUxPcec8hlJCeN4SoAEOYusOCVNhCZStq9laxMWXW8xYCQ/hcJWjGKnDuhx8blReHhdR/V07VACF8plaZitJSbdWIOnuee7nHq9uOMzjqFRMjqlu92cOBj/AddY/+4YLKLDPZTqg1UlS+ewJbzWSo6Nr7PFuYcygnmPxwgpWVJaIoNRu7lC67abPRoLe2ylovowSmmpOkzQZS6gyevW6PJDH2VLPLmE7xIHw2T/fu4HuoCZWKkpL77rmXbnvVt9doknEccc3NN/LRn/o5YtkwRNGx/UWRkxcZeZYxGPTpdzr01tp0u6vc8+Uv8Xsf+zhrJpMnGH4vSr75tduJRGkGj6mUWXzV7vT433/8R1x59XXs2L5LXxV6+8uHHnmc3/mt3+b+e+81gkRV2lYWZTX6yFyUQi+qcrAcDI48z1lbnkNYF6GRvgrBBRdfxJaN6zh06oyxt2u65XnBgQP7efrJx7np5tfZrvXENfxw7PARut0OdqZhtd04jnjda2/h9KGjPPTsXrNtqBZiRVly5uQpDjy/lxvW36Lp4wDUCixFv9vVabyVfdbzb0nJ1MwscYUKyplOLXX8Fz0raEWSmbGEDTMznL/7Im558zu49tY3sm3nLtJmk5VTx5n+k/8FLx5HiJDOOkOtVUiqY1cfiRXgITsqnWfL+VYcL9RFkC8rTVNKBXlR0Gg2CKN7rGnRigMpJHlZ0FldYoISyoLVQUFDKq7emPLcXMabr9vMJx8+SacQlNKM19D8FxZeAzqvRxuJUsuVZD8rHDlCiFdKtVit7HNWfqgKeFeE/LeSzfUtU+vf8VQeIWFdHYbChoeg8ezHK4o+GlkVJ/9DIAjIHGp77vJZmuPxwhDcm3iU2yvWvKuGO9YdbWuiZYZy2oB9fcgAVZ+O8De5skW1aQqyPEMoPVOYaTbZMNXk4JkVVLMJlEy1GhBHrJ+eZXx80oBCQXttlUYj0bmQysLVVkYR/V7Pm1hCjdArjq6jV1bWePD++7R5wQoNoQVII4258aY3IUWDshAIqYxpKyaKYlKaqJYnvxWcE+Ob+PRnv8D+Y8e18y/gnZV2m43jE9ru6pYLK1QJBQWPPPQk//Zf/gwf+r4fYsfO7Rw/cpyvfOXr3H3n7SzMnSHPcr/Lm/CCvlQlRZkbxcg7wqM4ZnxiwiUSdLQwtN+392lufcs73UprhNBbXTZirrr6ap587iArXbNXtlKIsmR1dYW//Zu/4ZrrridOGr6bDY8UecEjDz5Ef9ANVixrgZU2Grzhve/l2W/ewTMHDtDrD0z2U22C63TW+OxnPs2119+AkDE2dbWdKQjgxLFjzM3Pu4Vkjn8RIAUXXnYFqYyIipJcWPUkUJyEzsDakJLJRsy68RZbt2/niptu4bVveyeXXP0aJiencClUgCRNmRyfGJIFCkykVu2k9d0JQdoIkt8Fd2aD3GSHtQ8FhAz6yv5LkgSlYDDIDCgYc5FJNufNSbqvOu0VRDGgGQtWB3pXv3PHImIVs2465ehCl6dO9p35uP7aIRlawyvna3A6ozA6TtXsHNLFmpjqIqw646xaO1T9hVCVgyMPo/ya737moDxN622qvXGU4H/5UOCPV5wltd5G6wjWFfA+cHdnSBiqYar10pXbKtOfrfy2WDBKfodMajrECn73TPC8Bu8qsjuscu83oFI7r4qcJJJcuHMjk42EAycX6Xd77L7gHNIkIomblPE4mzZv4dALz9PprrC0uECjmZrZgt3YRYdsrq6uYE0EdkZqbfBWiFgzx/79+zh08HmTjts3N5KS2dlprrrmRlRhWUsEHeZY1bfZnN927jnsufQqDp88RU+Ze0sbfaNI0iYTacZqr0dhBxaKooR+P+Oeux/gkYcfp5GmDLKCXk9vzu623Ax73ZqGSm1rDrpftyOO2b51B40kpp9l2EVgSiiyIuPvP/kpLtrzGi674kryfs7+A/v44uc+y9ziAh9817v5whe/Sqc/IDc5kZRSZFnO177yRf7xs6/j/e//IJE1qRjzyZNPPsud3/gyWa7DQqURGFIKNmzYyHU330azp/jil77EapYzUJ42gzznS1/6Iu/+ju/gxhtvNvsy+JBAVRR87UtfYGFxyS2Kc8LGcOD5l1/BxMQ4iyureIpo3pQKxmLJxvEG5+3cxZ5rbub6N76Oy66/iXWbNxNFkRMkoTNZJgkNs6I4HB6gNySyfObHiBcdjWbqnPaurkpvjJTnQaoLFZbrBpW7GEfaXzbIMsbGWi5U267sdhF3paIoMsqsz5QsyXI9i44FXDIZc7QL771ikt/55jyFlG6QhOM/VJycMkcguAPlLzBEnEUYWYDE43d4OKWVCmDYi46eIlRsv5Vo1oVqxbDeObVnhyR90Miz31QBrpc6XsWKZvO7csJXYOi1lRMjesE9KkY8bO4PpuNi+OpQWS6dhSUwOLVb1BsRAIwvJmAzIyD8gNORDnmhmFvrc+NVl/Dw/jNs3bKZuaUldmxez+LyCpt2rmPnjp08Mz7F6toCc2fmaaQNxlsN5o09XSm9G9apU6errXPIYGqhNJMppXjg3ntpr63pWgrroNZmjvN27WL7tnN0s6SlUI1gUDFRAySNlFtufTN33XM7g6Kn1x9YC42CtX6XS8+7kCee20uvyHXElRF+2kld0G536XT6pvo+345yqIyjoQ1gtcnslBBmVqd3arvs8iuZnpxgrdfzK66VNjnt33+Qn/vZn2JyappsUNBurzLIM3ZfspsrrruePRdfytLagyx3rA1fa/SrSyv8+i//v6ytrPCe932AyYlxssGAJ558it/81V/l2LHDekajcDRN05jXXHcDm7duQ958Kzu372Cxt5+8Z7OYlhSFYOnMGX7zV3+F//rbv8uuc851IIZS3HvP3Xzqk39Pd9BzMwWvDUKZ5WzbtYtzzr2A008/waAs/dgy/bD7ggv56Z/7d1xz661Mb9hIJCNc1loVCiCcbI5k5Jy7ju/Nuo58YM2ENelohE/a8KaecIzlRcZgMDBKBbXdypQvS/i08AjFYDBgbHyMKIqckLPgYJ9UZU6iFA2gU5QUwEUtycke3Hb5OF/et8bJbulMwWB2B3XTXg8IrsxALqqgNWF4qscwPwJdRJPywFChhQjElsJrnsFb7Avqs/9RQ1IraqbeFQX0LEDykviiX/JyoWjU8ep9ClW5yVkg19fqLCajihIZnAzji6rWTd9ZozAk1IQtA7lz4ftM77rxJ2yIqn9npX+Cdgt02uvpiSanTs6BlGRZlxhFt9Pm5Pwys9tz1m9az/TUNEeO5Rw7fowy77N+ZoojR7SZplQlSRJz+sxpBoM+rbFxDwh4ILBO3k67zSMP3Y9EkRgtDEBIQSNJuP7a19JqjZu0UtZmrCp1rw4SfapUcOOtr2PHx7ezeuggWa63fTTLlFjrttm2cwdZkbH34AEGud4Fyw4wP7vxjmOb5Euik/PZASwj6aJOirJ0dfBze7jy+ms5/9xdLC6vsFb2dY4kZQRaXjC/sMTC0opZLa5ZqzfImVy/jg9+70d58fABspNn6A60U1RnBy05c/IMv/ZL/y9/+fFPsGXzdtrtJQ69uJ/FhQXyoropj4wl09MzfNt7PogkZcPOHdz29vdy9OO/Rzfr0C9M35QleZbz+EOP8LM/9uP8yE/+LLsvvZRue4W77ridv/2Lv+DY0aM6ZbUV5ALD3Yo8K0jHWtz0hjfx5L6n6GaKLOivUkGbiEtuuJn1m7ZWzRhCA2tRlEQRIM3qcSEQkSRppLisu4G2Ocgyt4DSKj1elRZ6zYYdkwHzF1nOYNDTPTxKOQ1wIYr07oGF0u9rtcaIY7sORKCU30iqpNAZAAR0CkUpJVNlwXgcMzPdgFhw/4sdEMHq+OClFkTDvQ6c09gqh8EAcNp7CL6EFg8r66uhqD7gIiCKCHjXnrJKLravA3CwwmakkhuAc124jQCU6vkQ4F/qgW99vKKEeJXDIKTTVF7Wgz4Us3I9ZC7TQItz2gTpiaSEGsKXitD3RbjzIrjTRxYJV37luaCOuotqDGDLAZ567hD/eNejCCEoiNi8eSP9/oAkiej1+kzNTDE7O0NWFBw5fJy50yfZumVTMFC1uWRtrc3c/Jwjgxaw1mbq6bU4fxo6q2zbuI710+NMjTcYbyZMtBpsWjfDzbe+QTvvLJzKl9I0HEERwOad27j1tjcyljZI4phIRsRS7wYXS8m+Q3v5yX/5s1xx8UVMNhNaSUQsdZ7/yO0UJ1zb4kgynkZsGk+YSCOSSBJHklhIs/OccAvRvN9It3vDts1827d/gM2zU4w3YmK7x4S5yQrjstSLyhSKIhtQFAWve9vbeOtb3smm6XFaaexs7DYSqdvt8fzeJ7nrzi/z2CMPMDc37+3kAlf/RrPBVVe/jhtvei1lIZBRzLu++3vYffEe1o2lREZqlqbcwWDAk48+zL//6X/BR97/7fzQhz/Mb/36r3PoxRcZZDku4ipgJgXkZU5JyVvf+z7WTc/QjHzeJ4XWhvcfeJ5f/vn/xJFjJxBCISn1zAr93q9+7nN85pN/Q57n+lmlkFJoM5ClmzGOK4ExHxk+DxUp8+Zmsxn4dPxoyIucXjaojmARDl2r0CgDCvq1WZbRbDaJo6TmPPeCTClFrqAPpFIyMzFGGSe853Vb+dwTqwyQVUEOJvtvqLYTxJ9Ux48LVDE8ZGONhPLUropV5cpwz6qaPDC3CSvonRyrCrVKZJGt03AxvmF1hdehFMOHOtuPeiDBy4eIVzdTcG02WsnI2gb3hQ6TUdSwaAsMSXzlO0vUiFOnkxjxzd3npq3COWmF4WjrY7D1s/ZEK7BE7YVhsxCSRizZtHEDvdVlur0+RVHQ6/ZoNlrMzM6iSsWJ0/M89fTT7NlzFc1Wg9UVLSiElEiZsPeZZzn33AtR1pZfKiKvgoMQbN2xk9/8/T/RC+n6AwZZj35P/4tjxWVXX+ns5EMajFehRnKHjCVvfd97uOOurzC3sER/MCDLcr0OQxXMnTpB2Yj4L//zd/nd/+9XePThh1nr9RnkJVlps8DqeP5mogFh65YN3HTN1Xzuy3dxZmXNjZdYmlUleTFcGQVCSN75gQ/y4t6n+MqXvsDc8hpr/ayibTu9SgBKkg8yBoOcifUzfN9P/CtOnzjKfQ/ez9xal84gN2BCYBIo/Y5mgfatHa0JWzafyw/+0E8wNjbu+GfTzh18/0/9W5Z+6efIj51kvjtwG+6gIEex1u2w1usa1lU6x5NXcYKBqplJpwPPOf/yy3jTm9/Kp/7xk2RK0AuCfLK84Btf/kcW50/zPT/y01x77RUkqeTk0RP846f/nju+/I8UZUlvrceHPvpREpOhN2023X4Dzm8G2sFvkhk6y0fAHnp1d3U0KaDMcwb9zMk1YyEMWC3QtqUEqffo7vcHpI2UOEkqrfcSVVekANaPpdy4ZZr7jiwxu67Jl55d5XgbF9llx+hIv0DQl7pNRvEzJ0rbA8LzT4gEoY5ty7A7Ao48nOwKK+BbZ2qKj6EM6jhCNw5q5UHColJYwVpbh0t6ueJ/9PHqQMEJx7OAQXgfVIVTWEDwU0+xhjHhpR7zhDTRGpZh6lM8Vwc9jbNO2spdwnYg3k4ZvFgI4aaFwjClNocIxiZa/MAPfD9f+cIXOTW/Sqky1todBLBxwyxxlLK4tMQDDz3MtdfewNbNG1hb60JZ6m0LJyZ5+OFHeMMb30yjkWpbuzQasflPoIiilKl1G402K80CIOGiTqRZcKRxwWrffhAABIH2Q8dFV1zJ//jjv6DdXqXT6dBZ67C6ukq706Eo+lxw4YVccMkefuW3/oB7bv8y3/jiZ9m/bx+rq6tkJndPI03ZsHkLN9x6C9/2/u8iFZIHHnua7iAzm+roTVgiBFkWCJhaX7UmJvmRn/sFNmzczD99+u84emqOdj8nL0pjusJsbSpJ05g4UmS5Nrxs2rGVn/3FX0H+yv/F/Q8+xMJql/YgN3sLhLxktWhlaChJGwkbN2zkB3/oJ7jmhmucKQ70moXr3/B6PnTkZ/n47/0GxZk5lvu5XtRmmEm7v0qnpYZpzaNgFZmFB4V23sbNlO/9iZ/l8Ufu47kjx8j7JRk2EkzRHQx46MG72fv048zMbiKOI9bWFul0Vk0KcsHv/I/fhCjiw9//fUgEzbThtnW1fjFAJ3XErgwPo6X065IkdWnfnWMcvYtbrxckSbTCTmkaEtBWCIlCpx/p9wfEcUySJK7dfr8Q3Q+qLEEIEimYW+6AkDx3ZsDeUz2XgdavywnCLoUzFFXHK57dg6iYqvnHKYGGB0JAeTmHqLd9eGC5VdYvoZBVi6wkHjHtG2GLcYAUvrb6guFXvbyWvQJQGNbwfaec5fYhIT4aRCqad+XegBii8lEpSeAdQn6HsarAd4R2J5Uz4fgzdlrpa+Xy8ASIZesphSAC1tZWaI6n/OiP/TBbtnyZfQf28/izz6FUwZYtWxhrjjG/Msez+w7y/IHnuOSi8zl89BRZrvcGaI1NcOzIi+zf9yxXX3eDjkxSOo21LAPmMKmTda4hvahNKIXdGsUKJMv8wtHMD4ZKKF/YdjNr2brzHEI/AUEZUugZTHNqkje+5wO87u3vYu70aeZOHKW9ugpCMr1+HVt3nMv45BRRHDHodvgX//r/5tjRE6yuLtFZa9PvdxCRYMPG9V6LcoPH12tqdpbv+Zl/w/VveAtf/IdP8OB9d3H6zDzdQabBRUjiOGJqZpwLLthi8ixp4bf1vPP4t7/6X/mz3/4NvvalLzG30qE9KBgUepFe6YIX9P1RFNFMUzZv2sT3/sCP8f4PfRAZaxOIlMoljksbEe/+yPcQjyX8yX//NY6cOs1av2BQKuymm6GuJw1vppTkSrjoIjeZKxR5PgAhOOeyS/nRf/nv+dX/9B8pVJuVARTYNNOKrChYWVthrbOKVfttrwohmF9c4g9/578zNTvNu979bpqtpt/Nz+qeQpAVBYVZG+Nn377D4yR1m0Q5RVhAWeb0fd4Wo/FqYafDlZWrqzRZUOM4pj/IiKKIRpqahgvPX4aHrTJ28YZJJoDnOh0KVYKU2P0XfMobN4Jx846asmh1c5vpwA8Qy2MWLO15/2R4uKFSuRSAezjTGtJuvIJZebz2mrp89zd5mvqOCMDFIfmwXB0t/r+FEm+Of97iNeErcNZgUxXe513H9VuGiw3MA1DdZU3UblaAChhmhFO7fsaajobuEvXOMaCD42c/SzDaeT7I+MQn/prrr7mcdRsnecvO1/PcoeMsryyzfuMGZmfXMbd0muMnTvHVr9/F937ou1i/bpa1Th9FSRzHtMbG+dKXv8zFl+whSZtEUalt0EoGzmYzmyoVyFDrMYxSWuAyFFR2UFsBWNMj7CIqf9k7rwUVzcmSVPl8GERJg03bdrJp+053zqYSsW9rtCZ47dvfUYkasRssxaFHSzn292NGQRQnXPKaa7nw8qtYOHWCQ88/y8kjh+j32oxNtJhet5Gtu85n49YdTM2s8zRCMbt5Kz/xC/+Z61/7Wv7pbz7BU888y9Jaj16BSfamTIpzycTYGHsu28N3/9CPcsMtb0DIxKzz0LS1W6kq9M517/2+72Hzti38wa/9Kvv27aUzyOiXJYXCmJQgFopUSFqxZCwSHG+XdMO1HkqhyoLcbN4jpeQNH/hOTp48xh//3m8DPdYGkNkFIkqbQKwAtqqTTVMhpUCQc/roi4CgkTaJ7EzSczhlrp3jfgKpecH2fRwn2u8jBaK0Jhdtdu30OpZRfNeZ78oIKq1gCITUaxWywYAokjTShgMa4caa7XPNH93VNsfaGUokBFDmGFQYsAGb5dTUT4XmIOH5O9CgvRZeG/pO4AY/a5f9TMPXNYSS8ERdLQ2BbNQRXnMgZIG6cmP9BeIsjXHQN9yOl3H8s6KPnGB1HYHXqL81RgyV5+8JnCRVORfgp31/6f0FVYW+Wqw77wsS7p5gBqDs7KAW4eTQSZtuIilpxjEb189y4UUXc8N113HxnosoKNj/whm2bdvJwQMHuO11N7NtyzaeP7iXpcV5ntm7nwMvHuTC83Zy4vQc7UxrvVMzs+zff5B77rmbt7z17cRRRClLHSZpNlApS2U2Ty9B6QgeU2WfxzoksnWU1JdmhhpPoJorK/2VBYyAhuaa9sfY2YYYKsMJ5XCgCbcGWdParmR1VRgaTYEWqasTxTEbt+1k4/Ydfog5PNRfFJh0Gmbwl5A2xrjlnR/g2tvexoGnH+WZh+7jwL5nWJifp8gLxiemOefiS7jyppu59OrrGB+f1vqlCWiw661kwDPdToeH77+Pa268gV//2F/y2b/6S77y2X/gxMkjFEVBqXTm1kaact7u3bz5297NwScf58/+5h8QZsGebV+hSvIic/SMk5QP/cTPIOOYP/2D3+HM0gqdXCenc26GUBqZoZakMRvXTfDRH/4hvucHfxKISJJxIuOktzwhhKAsCrKBX73uO18fUZqY9Q8mOkh5wdvptD2ta/WpCCAhTFhsgyLPieOIZrPp+SkAgx0bp9m1fTPPHzrFJVtb3PPiMqII2VlUTFzhISyfBmO1NLzq8SE0vyh3c1iP+h2WV0MzTp0/Xf3ceAvrGABZSKeXkMwivGWUzjrq+UpF7Efgw6jd+nKOVwAKtRo5eVNdhRdm+xz1+LAJqSbF61WvCfqA/g73rUYsvDSq1VVgk6yJQGMY+U7h9JjqngrgbPmtNOXS3Rfxhje/gYsuvQiilCOHTnLnfc8QpRGbN5/DVVdcwyNPPMA73vomdp5zDvJeSa/f4/SpM3zpK9/kIx/+IOtnp+j2BhS5Lndmdj2f/eznOPe887jk0sv11F8WRjJps5Be8SYQZYlEUBqnraOGgnAlt923wovOs3VPMLJtQeol+iV8pnLZalT+ndUe8Y6/aiikBRdRqaN1gXgVynGa765AU3XwEGKVgHRskkuuv43d170OVRaUeUZZlsgoQURRkPvK1qnERjwJhFl3UHLw+QP83n/9de69+w7e8o638+9+6df4oX/7b3jv93wfTz7yCM8/8RjtlRVmt2ziiptv5JIrr2RsbJzf/Pn/O9jAB1dflPI5p8zFuNHgu37iZzj3ot187H/8Os8+9xzdQU6/VGSlmYkgkEIho4ixNOLii3fxQz/5r3jjO96PkAlloYhinU5cgg7NNKBQFIVZb6Ccj8WTV9FIGsRxjJTCsJuXuO1usB+4qtIe0182tDKOtcmoKAviOKaRNivjX/dvyebZKd5z03U8Nb6fx/fuo1PgJ7DKx9x7U01QaWGFoF3kyGgACZWUCssO85FzajtPuhhyG1QW6lrMdfw3SiTjZGM9ZfzZD+H+nnW9QwUQPJSFtRghEV/y+GeZj5xm6eo3DBoh9I2slOlp5/QKETZ00ARljm5gGCdUfZeXi4HwDK4JW496uRYQjKkokoJzdm7jTW99IzMbNjA3t8zCg0+yfcd5XHDp5bz+7duZnp0kjiSPPPg4X/7KZ1lYmOP8886n1RhnrbfCmdPH2btvisefeZrzd2xjbmGFIs9QA0WaNuh22/zNX/0VP/mz/4rNW7bpBRHkCBHrVkVAqZOJlQpEaYWXAQJhm2mFbyiWQ7LXWaXWYZbJwi5V4TQ4jPX2z1XvUcGra0v3Q0CwAgaCWUjYs67S1bOqOvj1uNfl+ym+8gWYugoREyWxW0QnbMYbpbwmYG3lhg7ddpuvfPaf+KPf+x0OvLCfvCj4zN9/isnZDfzkv/2PrN++mdu2vYNb3/UOENqUY3d5ywc5c6dOk9dCUoUQRpOXzuRl02fLKOLGt7+D3a+5hjv/6bPc/oXP8sL+fXS6HQq0XylNUjZs3szr3vJm3vOh72fzjgtRSoIqUQIarYjxZqJzLhV6s08pBQ1Ks1dySE4P8WmrSSNNSaKYUpQueioWkl53gBXT1n+igjKss0Cgt1VtNBqO7tIuXrN9o3Ro8WMHjnHw+KdoiZixSLJpusX42BjNRFLkksNLS8yvdpwfwm5aP6xAes3esqTC+hFHC2p3JfAryPC3fZfVddVwKSL84oTz8FvqIbX120bJtQog1G6ogF8F9FT1+RG1eanjVTuaLZ1tbMzwHbXHRl10DdUdaXVed3sQRqcHUSi4wkO5hxTauVS9y6B9pWyqvWnkVQUsjICVAiIJWzZtYGb9er78tbs598KLef93vperrnkNE5MzCCEZDAasrqywsrzM+Pg042OTPPboE1x+2TVs3bKT5w8+Tb/fY37uFJ/9wpf5oe/5MOtnpuh1u0RRRJ7nTE3NcuLEKf76L/6Mj/zwDzM7uwGS1GsZKJSUhl7WzGEiOSRByKWhmdUerJxzU67AIWoZPgSGmswOudIKSk9eC+KmROVnjF7wmL50g8oUbqYCFsCU6/babCAsrM77FawwdawNIldnFTwa2sUJgVK/uzSZXedOnuBPf/s3uf0bt/PiiTN0+jp993LR5a8+9ic0my0+8uM/zfjYmJs5K6WbFgHHXzzGs88+RuaWZ/tqN5oNmq1x7zMs0ZFnJlni9IbNvOsjP8KbPvBhjr34AidefI7VhTnSZov127az6+I9zG7YhJQxqvT0KgVc8do38bMq5fSZM6yttel1OhSDjLGJMSYnx42QNe2171eKpNVky5YNrA1y+v0+RZ5TlErvTV5kVSAw1LObErkLEkSkczDFkRYzRZFX1DWdyl2/e7kvWSwHUBaopQIpFhhLY3bOTvCa83bRFE0eO3KAo/MrfidrG1DhuCWwADj9I5AFwqiLynFgtTNGCPSKDK9jkFM86ueHVDB/pq6tBvw4EhCwaTOGL6pK5eo3jK7Jyzle9UzBDqrQrKPrEajyFYQb0ewKnTz6W+28Ms1y06f6IhOzEZahUpjd0detrkEENm0wWrWHAwsOAu38iyPBzu1bGSh48fAJrrnhRm5705tYt2kThw4fY27uWY4ePs3imTNEScn0xAxXXncDuy+7jPvuv49rrr2Jyy+7jBcOPUdeDlhcOo08LPjiV7/OlVdexcnTZxBCEscxZVGwbuMmnnv+Bf78T/83H/zwd7N12w6nvEchSVBmVa9pdyAUPFU9pYZoGoCFuzcgriDwXZs+cAEQAaOGg8YKVsuw1W6vRY+ooO/tjzJkZcs/NeZ2Lw5Hi49gqYzeqhyuCI3gLe55f90nBuwsrXHg8cfodHqghEntUVIWML+8xh/9z9/m4PMH+chP/hQX7b7IbYOpSsWpUwv86R/8HgcPv0huBKBtfxwJZtfPMj4xY5Rs5evsmqFACZpj41yw5wouuOxKR0c7/nx0GY72Sim2nreH95x3qW+lxUQliCIRRGB5ga4UzG7ezi/9z4/RbXfpdbt6LUx/wCDrs+Pcc7GPqeBf8Aqs4iCNs7rRbJIXJd1er8JfdqV6lDSZnNqEUiWDQYciH1DkPdYGGU+fWOTpk/NMNGJ2zU4z0ZCsDmzWXt/PlfFr+CY0J2owMDMcy5chiyh8AsrgWsh5VdaqaR21o66UniWwtHI/YV1r54cqEArBUJOtvUKd5ftLHa/epxDCb3jFnhK9TQABAABJREFUqRxYCezG7sgGVyRRWHbNYy+GuyBQ7EwxFRHo6mI1WKuNhs0Jay9MEe5TCKSEXVu2MDk5y/7jJ9i+bRsry/N84XOfpdmaZOOWHZyz63wuuOgizn3Lm1m/YZa00SArMt669E7u/MZX2f/CfvbsuYw77rqduaXTFHnG6uoSDz38CEJETM6so9vra3NCpOu9bv0Gjhw5xp9/7GN82/vex57Lr9S0ixSICKVKpIpQ0oT/CQ+IdhrthkoImnXiKT28rLfFmp3cdyUCvwQOeE1YeUBv4+AtVQAiw8DhXhkCS8gzQ3wgUJS4mV7FweSfs+W77LGlgwknGCoFqwB9Aj7y9mrDsSWs27mLN77r/Rz8X79PI45oC0lZFhQoyqJkfrXNZz/zSR685w6uuu4WrnjNDUxNTXL69EkeuPt2nnjkQVa6A22/V8pli22kCbsvu5pmc5KitMEVo2gRENKYuNw4Ur5tFaOKqj0XcvrQLM4DklIgRcS6jVtRG3zZXvgHs4KgelVAUJSqACRFnjMxMU6322N1dS1gI+X2vS7yPnneocwz+r02ZWESfQjl9lxo90ueOblIKiSxFKSxNv+VIgDToCvDH5b9S1PJ8B7X/SLQ+43wHRKiIa8EtPanPFMPC+ARnobKw77Kw4cbkaFYqza41nAta18uDFSPf2ZI6ugmVGpvBna4fsC2oiowAoFVYVav/Q1pp0GHD9dBVYnlbqyggWOG6sxBX5ZCMNZI+PCHP8Dv/PEnWOv3OHrsBDOrA97wtnfwnu98PzvO2Umj0UQK6cIWS1XSLXIuvexSLrzkUr7xja/x7e/6Dnbv3sPiA/PkSm/YnsQp9z/4AFde+Rpa45M6U2SuZz55njE2Pkk3y/nMP3ya48eOctNrb2P9uvUotG04UtqE5Bz8wmrqwadpjI5lD0gbAroIBahf8e0ETkA/jdeqIpvtzESZqJvwmn2X3enMdo3VJisajwWW4Dm3KDEcaBVws7f6wuqOvOHhHQpepW0tgbE4XHBms6m+8f0f5InHHuHrt99OM4loFyZ1BYqiULR7Aw4dO87xk3/PV7/wGWSkU6b3c51uuih9HQQQRYLxyUle98Z3aoHrUPbsA9nRq9SKjhVEjv5B253cqvA/GlyVbrMSdnuZcKZgZnmm/eEwctQMfAe6X/zMxZpzyqIEIRn0B6zfsJ6F+QVWVldcQ5TSm1TZdkVRTCIjk0Zb7wFSFhllnuk1FWbKqiK4dDqiI2NOrQwQRIGg1LwiVE0rr5mZQglaYVPDl2fV6UX4MSoI3yulZ+vJ+vnh++rCLFTvwrDbeuXDwlTlFjXi9pc6/tmb7Iw8AiQFgoEbQsGwRPdE9maGSpZHMKGNQbeE5qqwNMOzPpTQoK2odpyLRlK4PDH2vUIIztm5g35W0Gq2mJgaZ2ZmkrQ1xo5zt7Fx8xaiKAVkpVxbibVeh/e879v5jV/9fzl05BCXXXoJ+1/Yz6nTR1Eo2u01Ipny1BOPcNHFexibnNQ7VRUlQkLRKZCRZHx8imeffo6FxRX2XHYZF1x0ETNT07r3lF505vdl1hWomJAqNLTRCVCZQ7tnrBCueYqEFx4WqDXm28icALSdhlZDBzXiWmVECLdpipsMVDQzP8+sgFu900X9BtcEP0AqGpfyP0wDFZg1GVrQNccn+P6f+TccOXKEJ595ljyO6GV60yOAotT7WmelQGSFld34rUj9eyMpGWs2uOo113PlNTfpbUClRArlQutrOkoNEKiszNbXDBgoAhopB8B+2Jm2+fAedy+uvkOk8/fVx3ZAV19FRX/QZbXdRqiSdes38OjDT9DrtDUYKJOvygCrEBFJEjHodimyHqXZ3U2g16kIFRmQyOnnOc+uKL5jzzrubs+zWkLh+rPSqbpezlphR7bn0cpMyf0V9sEAQjxMmEtD9LHDzdE/BONR6OAUkBHXKrdVTduu0FE2Lve+ERV8Bcc/ExTCCfqIw1TQOkuCk/bxOi64cv3XgMsDsHBsrIzWFKxQlP72Wv1Epd9DQPGhtP5TRhLVW+a5B75B0ojo5QOmp6e47c2v48knH+WiS6/g0j1XGVDR2qYVpFJIDh5+kUsv2c3u3Xu4467beceb3sRll+5haWmZXn+VoshYWVtkvBzn2Wee4LzzL2JyakYPisKnSuj3enS7ayTNJvtfOMzC0grrZ2dZt34909NTtFoNkiQhjmPiKNYOQQsUjlOtYAjWGIjQtxI6dg2FrTRyYELAj8qBbWUQENi5AbfQIAAmbxYVFdAwhiLv9wn60WtKyhdSMYENjfDKb7/vh3BC1AlbW39zb7iHBUqZNOeKjdt38NM//0v8+i/8B54/sB+UopfbvE+6oMIYqOv6pqVRJCXNRsKO7Tv4gX/xM8RJopP7WXpbGpngAWfGsCgj0M5oU3mnEwYAV18qZc9UmhoI9wosuPZbzFCOxsrQRClritHPlKqakwpR0l5dZf70KWbXz9IaG+Ohhx9iMBi4jLU6GaLNwwt6Ax69A5t21pduy1tUiUCH36IUnUHB1/ae4vzxBnvXSh2JZ4X2kN+sDmZeuLu9Oiw53bNDkOzlbnC5Lu9VcNLdV2NL5/F0PFwrhFH3+350VwIb7WgdSFV/voLjVYOCFX5BDEswiL0ACiV/gNP+7lEOaHPUr9Rtp3oqbMoW1Se9GUNUV9kKX3f36qB+wlRforM1fvg738RnPvcYp1dyZjds5tDJBdY6Bbe98fU8+9TDXLT7Mhr47I8OlpSk1+vxzDNP8O3vex+//hu/xt79+9m1cxdHjx1j/wvPkZcZeT6g3Va0WmMceP5ZNm/exsz6DUipVzKXBhzybIX9+/Zy9PBh1m/eyPYd57Bl8xZmZydpNJs6JbWQxLEkNvHpKIyNXyJsxtM40sARx0T2exQRxRGRjIxzUJrV2tJkPjWrWxE1v0XQo6EGGSK9lVlm5uGTZQczkVGzvRAsQrOKAEq/YFEfNW9yyDsVdgtGbDgoQUvkUGu2A9to+mWhU4/svPAi/s0v/Aq/95v/maeefhIB9IqCovRp7/T/QX211NPbaDZStm3axI/+1L/mgosvMRE5sauoBVSvnNh2hABomiwseBG0w79Tk9WCqT0fBAFgSRBet13p71OmPaq0Ala56+EMw76+12vT7/c4efw4l156KcePn+DRRx4zM4MCvU1qRiOS9NAZXYW0SoNEipLSLDiQUscSTk5NIAoYZH2KLKMrFJfuGEfMZ+yb77v6V9NkO8hxNKgK8VofEVoSQskW3FYTVfZcRXGvA4Mppir/aoDwrfWa6k0VZbkmcuv1eynkGXG8fFCoSWhbJ7d6NLyhPrUJHwhOOqa0juBQAaSKFzUo8UKhIvStLTysjbIjzZXgnDAGAcyYxYKJFXbTacL28y9nEB3kx374x7juttdwZv44X/vC53nzW97G4QOHWVlaYrzZ0q+RQT2FoJU2eOKZJ7jm6ht43Wtv45t33s4N19zIjh07WF5b4tTpk5RlQV5kdLodmmmT48ePsLq2zMaNW0gbY1oTK/UubXkxoNfLWFluc+TAIeIk1rODJCVOY5I0Jk4SkjgliWOSJCKKY5I0odFo0EgbpGlCHNt/EXGsZxZRnDiw0GkR9ECVkXCDVhi/iYwiZCT0/tQyNtt9RkRxQpImJFGMkHpFq93DWkppUnFLZBTp2YyQAdAIrDNZWbu3k4MBWrgUD1Z4et78VlPxKieNHnb6qxW2RvCVWiAWpT638+IL+fe/8ut8+q/+N1/6/GeZX1xmUAryUifrCxdwCUBGglRKxpspF154AR/98Z/hNTffRl6UxKKkEDl6FTXObFmZNtTqLcIqByAQmpgQuI2QRra9EmpjxogV+o4M3r+g7K346CZ9rnTuBZSeNcwvzXPq1CmarXE2b9nK3/313zJ36pQzHRVliSgHbqyFYthGB+nhqXlvx7atDPKc5YUlmklKKSWDfpepnRv40G0X8V/+6Cva4QzBTMFLjND041XKQFRaQMAugBOESke1NFNGqOWrChu6G618e8kjKCOU3f6r56MKMIR8T/B8Rf6LSlkvFxZePijUncpDg1CM/Gr5rQoIvlsqSa4sbqgRz9eKtp0SFi0chTyCO8FB9V6sTVxYc9MoiC3Zd983ue5Nb+DA8mnevXWcG254C888/jxzp88wNTHO0sIcW7ZspVKETZEgBCD54pc/z+tvfStPPf0Mjzz+AOedu5utm7cy6A9YXFqgVAV5ntMu2iRJSp4v0lldZXbdesan1hElWvMXRkAqVUIpyLKBTk9sPS0iYFasAaM6IHTTjWYmjB9FQiRjs1uWmTVEsQGNxIFPkiYkSYNGMyVNGyRJTJSkJHFElCSkSUwcpRpkIkmcaLBIkpg4SpxJS8YRMtKpQixwRFGwS5jU1+IocmYxXZ/YrLSNNLiY+6w2GbbUd2NFba6MmaFBYgaW3ekOvOlImd3ySrM50sS6aT70o/+Cm153K9/8wud46MH7OTm3QD8rKqAgJbTSlO1bNvHaN72FN7zrO9i4dYeZfeSURq0sValBV4qAZz3jDplonQSqDUTXuKDHa1qlPmrpcsuAOKZIN2Oy4zWcHVhgCHwxSiiWlpZYXVzhyOFjXHvDzex9Zi+3f+Wr5EVGqXQKkCzvMxXBfLcAt691Hfh1l62bnWXz5s0cOHCQa6+9kltedzPPvnCCp+6+g3ufOMV0kvrNsZSySBjwQ1XKVpRzqw3WbUL2OoFsCklu6KnU0CNVngrIHp7XdQgRwBG8Uk44ZuvflG2Aja+tgEF4tweVl3v8M6OP/IKRCkqGsDpUm/CiqjwXgl3YV6pejJH4toOc8A+vh+Uq8NNCV/VgAiE8g7hnBVlZMnPBFTz+wDN84959yDznl37xZxibbPHQw48wPTVNr9t1SOb7RGjt1jTk2Wf2smHTLm57w5v4zKf+hhcOPs/6dZvZvHErCsXS8qIzPwwGA/I8Js8L+ieP0VycY2JyhrGJGdJGExklyMgMA6H30VHkhkmt9ocZzAHVy1Db0zdp3PNZOMFGiYkamPsIFxHkBdKH1AuV3EY7xpdhf8caFJIkIYkT0iTVIJNogZ8kKUmc+BlFpM1fcRQTJx6I9MY8OtJKypg0TYmiRJu8YmlAJiI179HmMelmQ7F5RyTtzMjMkqIIISO9UZCdvYgq71CWDhT0p85DhYjYefElfPe5u3jH+7+Dg3uf5vln93Li5Al6nQ5p2mDT1q1cdPmVXHD51cxs3k6aNilLRSFLKAsoBBESoSRCKsrSzJzsIMDwbl0NDQEs6LNwDIRjRpiEd9WiAqE+4lABE2l/gqVJCA7KybNer8v8mTmeefoZdl+ym9XlJT7x53/OwsIcRVlQFLmOsBv0KVNBvwzWGI04hBCct+Mc5uaXuOV11/Oeb3s7n/zMN+l0YLlfsNoveGbfSXKj5dccVqbuPmLO4Ya5pM0+dYHq6+J8UAGanFXunv3UCLoGd1g1vybU60AzulxRQ7lRL/Zy7+UCw6sChYrTznbIqLqE2kzlfl9NMUKL0cLLxN2roFOCG7SC5bViVw/b8UPaldcgtPBz8s4hkb3bAkUaQ5F1ueeuexhkGQ/d+XX+8q/P4eF77qXbPsVFF1/MRZdfS1hM6FCNIi1ginxAq9ni0JGDXHfjzdx1x+0cO36I6cl1zEzPIoRgaWVZ74gl9G5cRSaIC0Fe9Oj3TrK6fIZGc4xma5K0Oa4zqcaJy4JZj9KyvOY0P7cKzTJj6flR6DBa1/bA6BwqcNXO1UCA8pnLnEUvSFJWpbkvRZo9pAU+cspLOf+Usu8xgBNJgYgjdMK1WM9CEu0fieJYn4sS4lSbx+wsJDGzlkhGegYSm5lQIg0YRcQyNtuFarOZ3gApCnwxkSkzJoqk/hSCSEI0PsXF19/CRdfdRFnoTX3iOCFOm8goRcQpkdBbqJZliShM+K/QGw1JpUzKEksP77vBKiwEptoK85rvfjh42ThCKas7L0cKHAV2T2d7nz3ceotAyxhkfU4eP8bjDz/EOeeeS5mX/Mkf/SH7n99HXhYUZU5R5GTZgFKVzHWMIiY1/0Vm1XNVWxasm5llsdPjA9/xAdrdNR575D6mJ1OmUkU/jyGKDB868T2yMaY5Xm66Baxq6HYvrfx4UfUbbMlqBE1D7bam/VcKqZmgRh1nla9uYL8E/FgZWa3ytzxeFSiEppvK60IiBFk2Qwexe8buIayqrO0Z1EoUb+urMLhrrH8ykEPgFl0FwqrWUXqs+ThgxwhC17XRSrn4yhtojn2G9kpG3l3kC5/6a5bOnKIZw/4Dku+YmDJ9KsJaI9CMLuOEtNmkKHusLM6zvLLIueddzIHnn+HM3HFaYxOMj7WQUrCyskpv0Hc0zkpFVgoiAVGhSPqrRKurxNIIwCQljhNjYkmJrGlFRohIa9YE9bHEqOB1QHQhBcppb55ObtCZB60DU5TS/PZamOPzMBWx8C+x9C0Ke6pwtas4MJWvgPuuQLk8RVWmUc55bLnHhsqW/iZTGWnMZ5HUMxMZRUbIG1NZkriZRCwjvQbFznykIDIgLI35yzGeNZtFEWmS0mg0aDUbJhlci+ZYi+bYGGmzQaPZZKw1RrM1TtpskMYWxLS5zPph/OxF4HJkV8BWf6uGvY5E8uBUYDqqCK5wYPhn3JA2tLWv0jOGgn6vx6GDL3DguX1cvPtiFhaX+N9//CccOvQiWVFQ5hoQ8jwjy/p6X4nCL0iUQpDEie9L+y4B7f6AuNGi21vl1je+keu++iinD+/lwKknKbMcoRrECLJAqlbGuzLcYAEgAEtlvlils1Q25N200/p2jHCtg6dw76ouE6s7fcP7QxRwz1T6oIokVQCvX600cvgGq0yoqkXmWx2vDBQCaeKFaHDNanq2QuaLD88LBJIhdt2bb9shaq0b1nhCge4704G0COqmgoESVFrziV8J7G4x9Vpa7XPqwMO86Y2v4977n6GfrXL00H6Kfg81Oc4EMRs2bcYUEwg/zWSNtEGj0WB8fIyllUV2nXMOn//8k7RaTWZnNzI/d4rVlQXStEkSJ8xMT9Lpxqx1um6xk8LEwCtBJpR29IocOciRouf2RcaZHKQTenpBnfQRRVIihTHTmERs0myZqO+P/Dm7OYtxMEcmZNCuT5DCLlbzg9hrYcHAwJ+UZgC6kMpSuX6y23k6554Dh2DDexVyOyNMGIGG4SJlSnNdOSdiCDK6y4yfxvFBaLMNeNG+wywcs1q9tOYy6f0kUkbDprM0MUEBCWma0mg0tTktMJfFSUKSpqRJQhw3TMBAgySJ9Own0mCVxDFJIyUxZrgoSoijRINSHJuZUuIBT0ZEseUBUa27YVurfFW6Lfi0RLcCO8sGzJ05zQv79tHttlm/cSN33nUvX/vKl5mbO0NhNvMpy9xkZu1TllAUhvBGmYiiiGazURnjtl+PnTpDXki+cft9XHTxbtKkz6EDz5NlJWU24JwtMzQOLtM1TKXzf/lhWG9NpS3mjMuGXBPOAtx6DjHyWbw8NJ9DM4qhhwKIqGwSYy+NfplvUj2WSFWKHFVJP9cY2YKh45WBQgWBasgTSoPgZludMMYACCcSQZFBKKmD9OFq+DdUgQZwvoL6vVb423ssiFklz5/yETBlUSKKjO2TkjTqceL0InmeM5ZKlts93nvrm2iNTwTNDgeY3gNARAmNRov22hoXnrebifEpFhZPIYBGo0VRFnS7a2SRHsRjaYM0jul0u3SzjLIk2I5Q6E1cAmpKATrNs26N1YiEVL6thCDpBbE0ES+A3lNXf9Hl2GgjF3UkjWlFIkRkFsxp80oFRITUwCT9Cm+7XsIuspOV0e+ZymloSmHj4i1faeCxawtU5fHQ8em4yTpBlfLA4S85FBfgQSp4H76ksww0BW67zKpT0wKLnqlZhLQdoWlqeUQrJCbk18zu4tgDuKNxJIkS4xOJEmIZEScRcRrTSFPSuKH9M9axn0RESeTNX1GCjDUwRFGEjDUANRoN0jT1INVo0EhTGo2UZtNGqxnfi9CRcL1en6XFBZbOzNNeXSPLFQcPHebBh/+Bo4cP0e/3td9FlZRFoQGh36MoC725UWDSEAjiKCaNE2wkmh1GqlQcOXGUibFZvvTVOzl88ACnjx+n21mj3e+xPhFcsC4mMbPHAOvdGNb8FIxxfcFxm1NYlXutly/BuLbyyXS3L9MuGhSi5u/1/ta6rHbKT20YOFBS/r6wTlbaDcFb5bngKRFerq9eOfvxys1HIkSdYLYQasmW4xVmIUpYHXfB7ycs/DVVvy0ggz30dLAKCFa4h5AxXL+g7OAegr+2HCl0HqJ1Wy/lwKl9TKQCsgExJXkmOffiy7jtjW91q6CDChg5IIjiFCFj4qTB4uI8G27YQJw0aDVatNsrdDptoihByoQs61PkA/IoQkYxY42URhLRH5T085yiIvTQqIo0Sc1A5ykygspos9Zc5oDZaEMSvU2ktHsGCIUoSmIhkKLQ2q4SLuJJ2leUwmlUpekb/Ua9zaTCnrfXXAwOGLCw4KOBJnZJ06Q7bwSDiSjS/OYFxRBjG9XQvwsngP3CK90piioNVRnylRfcniP8FD900PMS51xRJeidYoSbEdn6lHmoEQXjY0jLEror3bZpKsRQh/jC0BM3s9OmMSGlmcFY34qOLNNO+SCiK9GLHmMZO7BI05Q0SQ1gxOZ3rNNpU9Lv91lcWuL40eOcOH6c5eUlssGAwkRn6TDqgiLPGQz6FGVOXurtXHU/6z/CzGz0/s22/7R6WKqSbmcNpRSDTod7548RSUFW5IxFgg++dgsbx405zwm9UCKEgvBs58FG7WnfmvL1sCzhZJH/bq8LVbWYOOU0GHM+0CUAqIom6q/Xer92hFA2IrrK0K4KEngZ8FL+h+B4dT6FgJHdXxXWQllOdQBSJZYWRMpoUUHd/acf4RWhr23FtpEhoPjaWaINQbTT2uovq5VgHo2AtNWijBtkROzasY5Dx1dIJqd445vewfp1G42GrOHHOVgRoASxieOXMmZh/gzTU5MkaUqhFI1GizzP6XfbIPTq6aLUScJkkRNLiUQwFkMrEuQlDArIlTYnlQKvBZuG2MR1fmApoxnbhHcaLArDmX1HK/OcY1B9VpuqMFFFEBlHb2zs6rGUJJEgiQSxkMQSE44qiCNBIiVpJEiNfVyJCCVKDRylDvcslI7kycuSolTkStevyKFQWojYLS5Lpc1oJQZ8lBUFwpn8fMqR6pTZgY2zy1seCbR58MJ7hF3eDsiK1kj9Oi43kc6p5H0gbixUlUTcAjPv1Q1lfmVtRnUchQCVB7VSbiF5NSjZmx4cjYQIwMVLPGkA3IKMXVOiFFrYl3oGoK1zyuwpriPoylJHauV5Rr/XQ6mcrISyqApu7Zfx5jBR6QMciHc7a0ghyfOCDEVDCr77qkl2xDGIxIBCKJhtO0SgPSvXvqqk8kLVpXxXpV/dLDxN7IMWo8t6P1qRU2eMs5x0+asYvl4FuLDP69ARHiP41jX25QECvGKfgqjQ2hNk1AurN1WQ2XB9GI3imysqDRol9L1m5SdFnimqo3jonHtLcE5U77LTQIFCCkW32+PQyRV6gwHR2CQ7zjmHTRs2kUSRw2tfhnFwCpCR0boaDQb9AY00odFsgZCUqqTZaKLKkkG/T1bqPXOl1JuklErbpxOjBTWkYlyYwYc2ISklKBBOUCpzzfOXFTbep+NAK6SPqFPIYToKK5whFwoKr2WFRYXP+c9gMBpw0WAiSKQgiSRpJEliAx6x+e3+6f2TY+d0FSYjrETHLVmhJ8hLxaBQFIXewjQvSvJSkRX6X1HqVcdZocgVZIVul9ZIMdk29axHCwgHla6hboharRFRAVKjGgQ0FdjwUiFkQBthXB6hOhSMIRVoku5lqmpicPT1AlYpa0ZRjglCkQJ+YZgqRaWzQiVKCL0jmkGPQC1zDfdOZ02sABA0rQdZn7zfQ4qSbqFcVt0Qb2WkZyg6vDiq8JJVbECgVKEjtqR0isRnnl7j/JmS/3L1LuLAROkgQYnaFsei2mfO+Rpo3MLCqpFzTgEQbkmA830N9xpBMcPiOhTSePh299au+x/DktZDm/fWBlSrPjKyki99vEKfgu3RqkHI18npIf5nrVEExBh63IoS85oq6NUBJHwibHt9FgP1VMPObOlwS2FnLMJX3GjIOSVGo4likiilNTZGkibePl6RhMoxhjQpJ9JGgyzPKUoNBHGckGU9ABqNpjZj5AMdB18UFEBDCLaPJwxEzOqg0Bo7CiWUzxjjNCtbX98Ntm7WWWzDOW08PlZY2ZW0UlPOT2ulaZv0g6FEp4tWyjgMS/JCr1AtSi2QtS1Z6ZmAsgu/cHb8EkW/VPQVoArHE2DNWvgOUgGn2L4ybRMGZOyntpRIZ/aLJcRSEgvhFrg1pGA80ps5Re66Xvrn+M20WaCBtihLPXvBz1pK868ws5rStEsnxdNbZmal/21nNlgzmqWz8Jzq3h1wtQUaK7AV1ExeXsslOB9ihrKAYbk7BKPg8cp2j/b8WUHBO5tt3ypVkhd6dX6eDWiUGYksWR74PZMr4ktIHVYdRaRpgpTRsEwQws0GlSpA6TTxpYBuAakoGfQ6xJFC5BVI8PLRMo1to22goBb5KByQjpJNKjDV2d39KtdHPBNe8/KpKqVHPle5RQxd0p+iWt6wmB31+Ms6XsVMQbm0Axan3HtVyE1WPA9DYL2e9baEs4M6IIxqZHjK5eapXKwDigeA8G5rNrF1lwJiqUjiVNvujf09MnZ/X2mvclvUV8GsKopiyrygzAuajYaJUEnIsgIh0Bua9wrKXDmbfCkEV5+7gXMvuoi//tzdbJgeY9PGjTxx6ITejrEs8csGvR3UylO7W5ywJp8IUmvqMSkqkjjS2noSaQ090efSJKaRJLQaOgombaR+oVmjSSNtkjbHSJKGiXLRtmghIg0WZUmeldo8lmV0u306nR7tToe1tQ7tTpd2t0u336ffH+h/gz79gc6CmeU5g6IgK3XK6cKkUrAC2O5/U2A3WrF7DfttV1xSu4CvXF8Fw8l+en+L6XcRhJ9GJiw4mOlIiQsZjSINODLW16NIkpgV2XqtipkZKJOuRBkToNKzmbxU5AVkhWJQBOcsAJVC78tsTa1OKxYO3L1IFL69Nd7X4GPTunipYXVOjxWBqLLO/QqQGKAv9QyhKAvyIqfIMyYoaMiShUFOO9f8Z/N4+bGtiOKUsdY4qshpNls+JNUK53BaoQRKSDAzBlCsITi4kpHJCZpJjOhnBjz1zNiaAUP5WrEmQSWPYkVbDwBi1BFa86si3p+ovLfyqaqzwLpaO1RgWHk19ET4Xm8iJmhU9fmXc7zymUKlQmqoYlWEswjmGbVyv1d29U+Bj5axrxO6E4R7XgxT273SawRhuOowSBghEFYovNkMJh1VI2g0W05wYCJxwIY2imCQ+mYLhUsbkaR6E/Qs6zPWamqtSOponDwviKWg1WgyoEee5xoUgEiUnHfODhKhmBmLeO/bb+WFT3yNNdmgRGeSFMpmkbR0sueVm7IWApTUG5JkKCQQK0FaClKUyRujjNlLIWVJHJXaZhxHCFUiKYlkSSJLGgm0GpLmeINmq0Wr1aDVaJI0GkRpQ6+hMHmUNGBEps1m7YSZfZjOMuaenDzLyLOMbJCbzz79Xt8ARp9et0e326XX69PrD+j3+/S7fbq9Pt3+gJ751+316Pb6dAYDuv2M/mBAb5AzyHIGeaE12rKkLPx2kC7sFa3ZZ0pPZJRSqMzaoat+BKtUSMOjyrTHzoocZBsW0bMWYXJAaYBOI6GBOJK0ooiphnROYQ1Q+p9NuqaduIK8sGBi6KdKMztReh2ABRTlfTJ21qLNZI78HiINk+sPPxjsLMam+7BO5LIoEKqgIUo2JhA1BPO9nGPtglLp6CsRSZPp1A92ISWtsXGajRa9bptmq0mSpBUVsqoo+rPO3yf0TiJ5nNBsRNDOAhkxDAh2jHulUAXR89V7Qy8MAhPMYUHX92ldeIcyK5S/XrGtmoxErZX+74hj5CzGlmKDOkY8HQLsyzxeVfRRRbxXqalPhemyhe9QYc9ZoAgjQUIhrbDmRPcei4DhTKJKIOFBpuKIELV7ha+rHQCE2lZQnNCM3WokjhHCRXU+90sN9BzwmNQJMiKJU9pra0xOjpnQzsgNvEGR0xIwnsQMwKRTgEEhmJ6ZQkrJWqfHxHhKGuu0DN6e7hqNTSznMVNXxMeie8a2m8qLEkQGUVYihSIWilhCEpUk0YA0LmgkfZppQqsR02p0abU6jI+tMTamN1gfb7WYmGgxPt6i2WrSaLRoNFIaaULabJCIJomIiYROOyGt0DMhmHrFsjdpOZxFGU1VBWCtHBDq6zpdhCpyKHJUUUCZ6zxFRU6R5eSDAVmWk+UFg0FGvzeg2x3Q62f0Bxm9bp92r0+nM6Bjzw0yur0+7W6PtXaPbk8DTG+Qa5DpD+gOTBlZTpZrEM2N5mx3+ZJON1IuRr+v9PVKimrXnyN42/kl9Hlp+NXOZCL7KQSxgAhtMmsIQSIhNWZDC0jaT4M3JaJNZZmdoRjzV1aWeuZSWAAtodR+tkYCraa+f7WAM92cpUFhnK/6HUJK8qL0As0IqLTRZHpmHY20QX/QZWxsjEYaZhoW2EWKVf+YkRkWhAudcnxiLEEuBGEToQyxiinKiZwhIS18GLwtQxmNfmhXNz/8KyI4MiOr6tYP71FeNtQVZ6pluRvrgnwIiLylZgRG1SosXgJxqseriD6q6fthA92U1ExjlQpscUaXVRYYqgvSKjMEUe18hyP+T6VGTiSfZXZgBWeohYhqEdXWqeqJKIkIY+bL0mjRdrWsm9HgeRDcQqO0of0Qp86cYnpy0iweE14IKkFfKWaTmHXNBv1+n16W0ykUrdYExJK1gWJmZpxGIpEKnVrY0tlLUcBuzykMjWvgbSSLDWixKbELG1OhlJ5aWHM/VmT0gR4+asXa8nUNbCZVpwlLY0aJJY1YksbaJJWmEY1U0khTmmlKM01opJEBnYRmM6XZ0iuBm82URpKSphFpI6bRSHSm10bsTF8yDhbnCZCx0KGuAiIapAoPIABI7URWQgtmo0woY/hXCpRxZBtMojS5jsqy1IKo0KGWWTYg7w8Y9DMG3QH9wYB+v0en26Xd7mqTWVt/X+t2WWt36PQG9Ht9en3zzwJQXtDLcnp5waAoyIuSrCz1jCAwm5Vos5IWOH4faaswhXzs+68qDXQWXM0KkbCRZbrvkkibx9JI958NuZaa6Riokn5Wcjovaeclg9KxP7GUTJoMuF2l6OUmVxSBghJFzMxuYGZqBiEFK0sLNJt6PxCvZwZyxMnGQEDYq6Uizwumx1OjcNqVawG/Y+Wh8DvWhchbE7LOJGtmRja8QODTvovAFGZBRoGTbZVZgu2XQC5UzUeVLnS0rO+lXimg2pvB93AeMqKNZ5F59eOVr2gGI+x9R/sK1aomwsC5YdQbFu/mkivflhe+SfkZAVVCDtfVRoL4lw2VaRUQLDP6O7RDVbhNVOx/NhbbxcEHlVC1vovjGBFFtFoTzC8ssGl2o7Yzy2ropAK6cUony5hsxGxqJaSUpGNNojimn+f0ej2mWilnOkGeIk0wLFF8aQHoOs0pWMBnkLG6SDC47kBeOjrZaBqrXdk7FSZZhRIUBWSlBQ4FlAipEKoA0ff9FrS9MoDRioSEQCCZsEipTPZU+0/opHeRJE0Smo2YVqNBI41J05hmGjHebDDWSBhrRLSaMa1momcxiV5h3EhTvfgrsj6AyCQdjF32Vcw+ExItdPT+Bw1QYwZES5TZLcyrkEqHbFlgrmgiyvgKSgrjqC+LgmIwYNAfMMgyBtYX09Ug0+v1zG99rt3r0en1aHfMuX5Gp69nM91+pmcweaFnR3nporHcJjnWQe7MSwYYc21As5FsNtrNmZwCdolFxHgsmEkE21oR69OI+R482ynp5Vmgd1s+FExOzbBrx07SZpNet4uUgmazqccJfsbueSvMOeuKAXQEXr83YGpSZ0otgmt+0ysj3N3MIRgPwSDywjwI63XNrTrbK1nHXY8GFQx5WoUSpXopvDUsyAYh+Bd8axV/yHs2JBRDArz08cpXNDulNHiBCKgkajcHd/oIIH9fpe5WOIu6sPfkFGoYisLqBLiFX+AmatWt9169TRV1RO83q1UBlI04MSmVrW8iTEvjaiswOXQSmq0xVlZXOX/nuUgZYdFIWHAVgnMv2MPy4jInjuynHQsmegWljBlLE+b7A5Y6GVvXzfJCZ65WzWAwhXSomY18pFRoNw5oLvwCMrsWJRTeHkhEWKxzJGLKsOYeXaa5N9gOzwOK8nV2+ZXc3MeOKW2fRuhw2EIgcuM3capajmCACKebnsLYeHDhGMMPMh2JpCOWZGRmOpGkGUlaaUyzIUhSHUefJimtRkqjoVcMx7HOyqrzHOnU4XZW00waNJKmXvAVa+d+ajc1knq1cSx0CK4QEiJT6bI04TolCGMmU9qlLuzURRUahIoM8owyN6BSltpJP8jIsoIsK8mygt6g0DOSLGdgfCv9fk63n9HudVlrd1lZ67K61qXT6WofjTGNdXsDev1c+2RyXaYAxiLJ+mbCromYXdMRa92CB04P2NcuWMtz33tWtxCCRqPBBeedz65du1hZa1PkOUrpQAsZGTNiwMOORYBq15pFkwo63T6TE03Hn0L5BWj1Q2voVm0KnPJOHlVhTFVsRHp25RO7BMGswqYHES7Bpy+nbunX50L+rkgjw9M2rF0XFiie1RYF8HmWxWzulSMLGHm8qtxHbt/TungO1D5bwRAanP1LjJ7ReET1/gdND09C/Qq7f4BvZ+DH0mUF0jFkgPC3T8FQBTArTGwGUqki20IEwjnaXIE1VUA4cuhMmlJK0kbK8vIi4+NjZiGQoYmy5UrGJtbRXh2AEMgkZrGMGOQwOdbg9PIa7UHB5o3riI6eJleRe1E9Q6oDOCddlRlwds2AnWrr62HaCSusrTM93ADJ0zagsXmHXZFsS5GyWicpbWXsoTz9Td/p1c5G8Nkes6BJ4IYUuBTXToj4nVlMAj/lQQPpbfvCR28qhI7wyUpUpn9rp2KJKnOU6uPmhwq9i50bytTszcrZpYXOJm6ilJQBGr2IL4m1SS1JIv07iWikMa1mrE1naUqz0aDViGk2EprN2MyAYsYaCa1UA08SSeJYh95KYcJujdM6SRMTEqyjdmwILZjIHIxRVhgHNnqxWZEXeoFYkZFlGYN+j/biCotn5lg4tcixE/M8f/AMq+0e41IrPJ285IGTBd1BwVxnoLGsIlx158ooYsfOnVxxxRVMTM1SnjzJINMzx1arhcgE1iPvAjisTLFKruMLS39Bt58zNTWuTYd2LAVC2vn8BM7sY5UPO9P3+5CIIdOxA7WQb82nO638uaq+GZiqXIG1spww9DLOy+8qDRzzux+S4TKFq1P4czSojD5exUzBI5M/r9zgtQLXC+KgJiIoptYMFVxwS9ZV7U3CY6zJvBxcGxZsFrKHhGbw9nr2VQXOdCWFQEQ6sZm7CGbAmQ4MnIXCzFE1HyoXfZSmKXHS4PTJJVrNMZNZsyLBUZQMsgGDQUfTQEiUjFjtdZiemUKdmGd5YZHJmTEipdy7kIGJDLAx/E77p/IFOytx+G01c2MWcvntTXkyzLQaCPaqmSn4HAIou+LbCwg7u9DtVs485HpHSryNGD+zEL7n7KwnfF84g/HRZ17bcwBs+qy0yqwRRC5PX6npax2NNpyytHSyW2GatoTj1S6GK5Ri4Pwy9unAURPyk5m91NNyeJqZ4ABp7P/WdxMLnevIhhGnkmaa0Ewjmo2UiWbExFiDsWbCWLNBs5Ewlqbad9OIaTRi0kZCkkiTJVYgo5S01HmWYnJUM2bQSum2EtI4QqYpqYL1W2Z58cVTnMly3vjmW2gtnOBrd+1lNYM2dsW97c+ILZs3c8O117P74ktZ6bRZWVlieTVGKWg1mrT7me5nZfihDHQaz3VVtUIpeoOC6fWzyCHh6R6qaqBaR6g5sB3nhaI+AAvfLUOy1YCG90Y4jaMq5Grv8uXXmMGWJHBAdXYnSD2aKThb1b9e0fEKHc0i+Fs/ryoaebX7hp8IjwBr/LmK5q8qAkFQP18DhMqraxK/VogQwUPCaq/6gs3zHtn9iWVYkLUX2+KcCMJ1ltQZIONE5/fv9weMj7dI0gYub75rr6LdWWbQ72CjiGQUs7S6yvp164GDnD59hgsvvBgplI7wctygTFt8eTJotgUJ6VI6ULnfzZoIzleEbCC0awLaJ7sTXjs3tKpr9rYDTMJVR2ML9ZbGNpGcywBrwEzXUQX7RVfrG7m9GXw9Aip4jV8pl2rDbkCvtenS2fpR0jiZS7daV9NRCy1dTumUNecMFSBMDmZlmcApKFbDBbeoLAgG0ONfuGo7LdeCUmGElgKwCwMzI7CskhI8G5y3ksEGB9h1LHEsSWJBI5Y0EjObiTCpTDSN+oOCXm/AWjujX46xaeMMP/xzP8Vv/8Kv0F5aZdNUg/5yQiOJSXs5MYIBFpwl6zes5/prr+O6G25i/abN9F88hIz0HhhCQGtsjPbSYpVZHevYfgwFov/eywq2z0wToU2Bhesnz88qdCgEPh8/WxhiFUc7y2Ne+AZGoUBeCxH0l61DIJsrGOGrMAJlvJKpH7CFiPCyq2d1FlOHiaA99Wdf4niFoGArXBX5lbyxYvj+St3srXgo0c6gmkA3HStNGXUnsGUUu1DFAoSvgmcnV56y4XwVWMH5HERgHDB0FTLSAzxQFVwoaoD0Ffw2HCGFNHsd6JTJea7NTq3WmMuRrzVa/bL26goDu58CikgIVjsdNqxfjxSwtLTMhg0zSFVW2lzRsgUVISOEtvd7zVpWukgEzhBpdjbzJh0PDn5j9fCaF872t+1EGTzrAcTWUV9zNRF29TWVWUFkVrnacy7PlPm0jmBpvlsQ0anDde4ohPC2aiQKL/hLE9dflgUKnX+pLBVloaPL7MKsQulY+7LwswYtc22ECmZnO40OyprqhBfotp0hHRwPlUYtVtZcF/SQZ3VvWrb8hyvMvcv5g+x7ja3MJk4sFGiTvx3Ldn28DR2tzljs6ANAxiQxbBwbZ3JqAikiImIikSCl3nuiGZUkuSI3fTkzPcENN1zP69/4Fi7evYcsL2imJ8wqZs17Y80JinIeOyMKdAn3acdkaF4vUfQGJZNT00Q2j1Ao6AP56FNgG0la22xF2L4MBH14iEDOKle0cGDgHwlM5nVwt3eIoE2Vdw0hRIgODG27OULuV4Qr9fsqwvmsxytf0Vwv2laylrO6RgYvokWFzajo+QEzqNrnqL9G6jhgMeMKBwi16UfFsUrljwPk0AxhhWhpB62lgdOqa7DtOsu0UUizkEunM1YKlldXGGuNa/u5s9trDbHbbpPnmWuhlIK1dscMQEG33WF6qkUkSsfYvlrC1xHlhT04zTrsn2oUkiGcmboDzixlBbAt3IXSho5hq+2HtAlmcG7mZQBBm4fca1z5zofjBLlOsKe1W+m1XGls6EHqjig2ewYY27qM9AI6tyZCSmcK07uf6cicvCjMGoacLMu0TT0zTtss1yt1y5Ki0FtolialhxYEmgZ6tbtNOqg/nYA1/OQ4pSZxhOkfVTlj/BNm9mXzMNlwSiGFz86plF/HbQHbEV1BpBUXaTeCsaZHtEIVTC1w+0RY7hZVq7UQmj9azZQoyhmQoyKpY/TL3CzGk4yXOghgfKLJdTfewDu+7X3suexqpiYnWFxaJEnNPg8yBgFjY2N60WY9wxz25U5VG5J1/UFGa3yMWIogCM+OTr/BksQDQ2lJpTQcVjOWGmAONEMVYIjlH+8L8P1alVdBJYUYWtdgm1UFIS/1vEwUlftHHeE7TY3dt+Dk2QuoHa96j+aKsLahX2cR4br1L1EhU+lgYqZPu+QkYvh+U274nhC96/I6FOPh9DK021oh7W7EMFaQV8a1SBFwymgEtnsDx4kOcYxkxOraGhMTkwizeC2M7inzQi++MlqoBoUumzZvJkHQa3eIImUGgBfylcSCtkzbZgNsIfBa4ejMF9RmAvqL19qxWrz09IXqM/Z+YcHDBgMEAEuQItv0g/Yn4MDAAYAV/GbjmjiSZuFVpHMbxbEORY0i0jii1WoyMTHB9OwUE9MzTExNMz4xTWtsnEZL7wugU5MoyiInH/TJ+j36nQ6d1TVWlpZZXFpkcXGBhaUVVtY6rHX6dAcZWW4BRLk8T2VpQ5YVUpV6xbgzO1nhZlKbCy28rbC2wtmFbFutXWiOU8GMwZmt6k5Wy8dKb+WJK0dLGsuffkaJ2VpMuM3orELgV/9aQNdKilA2uk65cGYhBM00QeUD8lwRRwnNpElHRsgkIk0EszFsn51i/Tnn8o53fyevueYGpmemkVLQ7Xa1j81skSoEjI+PkReFA7WwbhVpqqyWbWkg6PczGq0msZRDLhstjEPtepSvM5BRtbFfKcoCgyahBuIKQlX7xgr8UvisqrW3YPXIsAajjtpEY7hu1bu9QhC+9BUcLx8UQqS0Pz3c1lCwYtHzBdgZRXivcACNwzg77VbWNl6jSsA4/ln9ZdTtDqIcxwc44woIhJcVcFIY04t07XUbyuDbUsHloHl24xkdhihJGw3OzJ1mdnramTrc7QK2bN7B/OlTLA3MjmoyYq3TZnJ6mkQK2p0eQkgaUYQoDLOMFMyGFkaQ28a7PvMfXmt3IKJb4qKHjCB3e2YLTz+7GtbOBGw9bL/4hW5+NuEXuxkTkKGpBgX9O5Zm5bMUJgmhpJHENNOYVhoz0UyZnBxndv06Nu7YwYZtO1m3cRuT0zM0xlpEceJXjFcZpHbYaBSFKgvKLCPrdeitLrG6cIozx49y9NBhjh05xolTC8ytdFntFfRybWrKK3sHlBSFcLl5lMnXZMHRmhRDgWABwTnFQzlVjykXVjB5M4c1CVk+1X1jvkstEEtbfmDaFdKaPQON2JJKmfEbzvoNW1hfV6vRIOu3GeRKrxNpxCgZkTSabJmeZtN5FzLf63Du7kvZvedyZmamSVOdFSBNU5LEZEU1GNZoNA2gYl801GdVkpjRJqA3yPWmQpEwkU9GJplB6aFUBWWYvvDiKxjAnsb2XQ6UnaLoYUU5maV8uaazhgR+KKtr6r1yMwpbU8+j7jnXgJqUd8pd7RiFey/jeMU+hYo3YZQjAKr3BORzgiO4VGm+MoxnZw22M4T3D7g3iXAgqECrDd9bfYeqlRHcMjQZcXUS2hnnzFMmf3zoBBxGIX1eCqG3SowlUaz37T1x6gQX7rpS28vtS5VmrV07t7Fp3VYeePAbTE3PkjaadLt9JmYmieOI7iAnEjDWSJBdfGLCUCAH9PGNF5UeCoHDgUAwe7AedSmFG4k2s6pb62BnIwZMPCjZV5o011ZA2d/mHZEUQ+YgawpKokg7QCMdrjneSJkaa7Jh/Szbdmxnx/kXs+mc85hct4GkNVaZfbh+C/+ENnL3Pfg0wi5KGkSNJq3p9czuvJBzroJripy816GzMMfpwwd57tmneObZZzh0fIGFTsnAAkSRk0ttjirLAmXDmEstHKStoBsGFmiN8gOUoUlQ6CgoaU1ICC98TNVdmdjcN6ZLlTd5OPOP6Qe7y5wFJKtIuOyrNoIukCAy4CUhJK1mk16nj1I6BXojjVHpOJffdCsX3fQ6nn5uH3PP7mPX+RcyPTNrUmNr76AwCQQ1P2mdptFI9Vog010i+LT8WioPqo7HgEFWkMSRnj0HPO4FsB8bXnBa01+4XsCiLpX7wyMsw89VQjRRYemuLn5HbF+eqgkcrWv5UP6gJRrUHDAEQB6815cmKk0XtloVOf3SxyuOPqqUHxDdHlXxWIcmT1AbUupmBqao6hSsDgaa3BLvpAuBqjpDsUWGZdvvw+BkT1eEqhGybmGNndaYDsTVIRBCrheM8IvMlohmrcLi4hJbrt9QWcCmBKhCcWLuBNdefgv7nn+a888/n2as6PcWtCaUNsjLAYP2GhNjDUS3XzX1uH4J2lZtrgNad9EKdSu8Xf4hb1oTMhT23pcgzZoCO9MIHdYhANgZRzgzEM40JIjQMfxxFJmVyZGbGbQaKTOTY+zYsZ2LLr+SnRfvYXrDJqKkEbTJclZ10KEUlKXJiZShBgPUYECZZahsQJnlqDynLAqUKrxgkBIRxcgkQTabyEYLmTaY2LSdqe3ncuHNb+BNy4sc3fcUj953J48+vZfj8106WcIgMxlRS70xvVIKJUM2EdgVxR5QpTsnjWCyvBRFErt3tG2T5XhlItD0aeVo4QW9WVBtu1zq8F4lAye1lGYzHt2Pth7CmYNxWrILDhCC8VaDXk/nSIoTSdxoMrl1B2/+tg9x3yNP8sSTzzK7YT3rN26h0Wjond4inSomirSfTQjB/4+1/462Jbvv+8DPrnTizfe+nLpfR3Q3QncjkyCYRNIih7ItSyPL8ix7Rp7gZVvLlu2Rc1rjWbPstaSRLdme8ciWLY1pSRRtSSQIgABBgCAS0d1A59evX37v5ntPrLz3/LFD7Tr3NdGNNdXr9T3nVNWuXTv8vr/8UwYIOkniJKzFNYt7Y49JtntOQVHVRHFHpzwRygXKtQ7lA6bvcWT2ivJojsEG+72Rsiyi2wvNxeaUNYf469F/Az2OovWbu2ZBamhwv+3e76SdE09YeF33BLMnhPgjr1883j8o2IXcfvKJY5Ek21HzX6iZb+EIaPsx9r6HcOBAu8Sn8F7aBwAPbLxWThqfcU9E4bha2xkp9UL2+9fU/m2WgTZYCbey7EYMhfWKgTCOOTjYZXllqMsPumfpDt+6c5tnnvwYK6ur1FJy6tRpbl3bQQlBbzhkdnzA8dEup9aGvHmQI1tg6nPrDaC53lhCv6DmcWPjiHvTRvPdtu99N+PWLvyOAwkbrOYS7wnPQGykhNAU2UlMHqNOEhswiNhcXeKxJ57giec/wZnLj9HpDZwNw59PzVjoqF9Vl6giQ2Zz6nRKPZlTTWaU0wn5dEYxnVOlGXWRUmU6Z1GlSkpZUaMriZW1KSOpam2QDhRRktBZGtLbOs3S1jlWzl7i9GNP8yc+/HF+enubl77+Jb729d/j+vYIQUBZ6/fXBX9MpTlDWAOjKrJ1qN04GvA4EVBleH1NFLWnktZIGQBRZk68kp8KLaEYHGhsyd64NXtIP8Nxt476+pxrM+ZCCJaX+qRphpLKqIEUqYj4xvde4qu/8zXKsmJ5dZ3l5VWdJTdo3K9tehff0SGOY0qTHbh9KEchleuXcv+UgKKsiOIenShAqMppGuxVft+dBkg4yNPFe+xJb5DsuPo1GKyKxye7bdM8bq6gkRBs84uk+cT3lsVbufYtINh+/cjDqSQ9CcZHrB9xfGCbwgmifvKSBY69eUF/GHyJo2mzmQD9xxKkBSh1aisDOJaTwWuUZiO+11ho/aOvg/dGTuj3kFI1C9m9lX2nRszzmQdtRNQfdUZUYaJNI0ajMVEca1BwBFzfOJ/O2Nl7wMrKKuPplG7vCpWCNJ2yvLLM5Gif0eGI05srBO8cmEXbbFbnFuqPlufp4+FPIyHgAQHtyGRrV0FpLyDrSeMbmH0QCUTze2ConK4ngAnY0yQuNlJBZI3ESUivkzDsddjaWOfJZ57lqY+9yMa5iwRxotv3qJseYpMdtcyR6YRqckhxcEhxeEh+PCKfjMnHGcUspywKqrJE1jVSVSiMu6mCWlW6UlidU1QmqV02J53PmE2mzLOUssq1/UAEBGFMZ9Bl+fRpLj35DI+88Gk++vk/xvOf/1m+/ZUv8lu//RXuH88oVYRAUokaYbLe+pu0BcpOLWE2s2WWHLG3XLxasB9Yvmrxd6UNyh4tkEq5dd7eR2ZPqoYhUwEmG6qVFtrzvbK6RDafoxDESYgUiv2jMbeufZNsPmFpZZml5VWGS8u6JrQQRiOp14q1Hyil1WNxHFHLaoFmeH30OWTRBIcqBXlZEcYxnTgmEHXLZOkTU0/safasRzcamtYAs9sz4NEJ1VIHObugaOhNI7l5ZF8sSAbmrxB4zORJKeC9qdcfcbQAwX+593d8AEnBEmj/N+WISatPrjfNd4HwtS1Yg5BwqP2QvntirGunJT08HJROjIQj+t5PHoVc5JptfwUCJesGCMwcC4Hx4FDeP7u5vUcHniul0KqkLM8hUHQ6JoDN+NPXAmRds7OzzdnNM9x/sE9d6wI/B3t7rCwPuSsFR3tHrJ69YAgI4PUdiwmWYNjcDjTgYyWK5l49Dy6S2Xbdqn0caOEIv8/1WRdVlHfeurOG+t2sDlkIU4ozDOnEIXEU0evELPW7nNpY5emnPsSzn/wJVs9fQIRhM+b+xlY1qspQ8xHl8QHZ/i7p7i7p3gHp0YxqpnMBIUAkHUR/QH9jk6jbI+p1CboJRAEq0DpuWx2tlqZyWFVTFiX5PGM2nTDa3+Vo+z6HO3cYHewwHk3Jto8p37rHS1//PvHf+jW2zp/jiU99nI//zM/xL/9r/wpf+e0v8ru//x1mKkYR6pRuUoFxbw4cATcrx0qX9nc92BoIwkbfb4PmnMvlAjssEKbOBh63aIiXAXe7B91wOsKomvXrLwXTQbusQgErK0PmowNkIEiSGMKYXMVkWUbSTegNllhaXqPTGxCGoVNB6udLx8VKJU1usIjKS6CnVWjvzVP7TGJe1gRIuknk9q1PiLXU0BDJFvffAgl7KLdPrDTng5IdP2WRwP1/gUFVduSb/rffwlzvPdMTEhbe2YovC9f+iEPgyPb7udwdH0BSWIQcM+Lv2R0aom42QCCaqW6Lrz45VzR0qNHnOZrVAhb7vd0vRyPt5lkEBLwGRNMDx2h7z5NIl62z4TbMfa3X9wLZzOoRaF15aAhiEIUoBaPpmH6vZ4izjlcQJnjo8OiAxy49glKKLC8YDJbY2z9ifW0VpWB7+4iPPfMMgU0IR6Pvd+CHgGDRQCjcmAjvNwGNNGGJubBGwMDRZdtXK2HYyGM31g4Am/bCUBvoXQoFkwCuG0d0Ep3bZ3Opx9NXn+Sjn/sZth59nCCOnAwmUMbpQCHqCplPqY93KPYfkO1sM32wy2x/RJ4VQELSX2N4Zo3u0hLxsEvQCZGqpi5K6iynms+pjo4o05QizSiLkqooqSpdd0HWtc4MGgSIJKHf67O8fopHLz+OGAwow4jZbMbu7Tvcf+dNdm68zfHeA27+8DqvvfIWf//X/i6PPf4on/zs5/mTf+zz/N3f/CIHZUAUd5HGXzIMQ0MYAycdNBHYHtEyoK7tEvY31XjGuPXcSBKLW7JJ/dysdVMbsy1du+tpVCnC+27XCTr8b7i0zM69Owh0dlpBYCTqUAN+r09/uEKn2zNpzYUDgsZBRPcvjiICEVDXlv9+2J5uH8q0pRSmjkVOt5M0Q2LpBA0xbKuCHHXx6BFtymkJs29g0A21bTiuRR9YTwKNN13ulxPU0wOxE4BA4y3V4pIfQoIdgNnP6r2vfdjxgQzNovXJQ6/3mj+TisGKXap1u7+CF4QmZenvgvrnvUYRT5w+2dl2vw031KSkEw9fgI6QGg8Qg1RuUozLYbPbGg7CSuQ20jY07pVhGBGIkMOjQ4bDIUIErQhrBUynY6TS5QonszkrK+vs7e1xZmOTANg7nrG5ukqkJIV9AzPzjTpIE2yLYXYEW3mMECYxqS9FNOojYYyQLRvD4j8a4HDRxuaZofBjDPT7J1FIJwrpdyKW+h3ObWzwiY9/hsc/9RPEK8soDY2mLzq/lahLyI6pDh+QPrjL7ME9Jjt7zPdGZPOSZLDByvknGZ45TTToQlFRHo9J790nHx9TjCdU0xnFfE6ZpRR5Tp7p1NRFUVFVBbLUEkIttV1BKkktTEW6SBtGk16fztoa/dNbnL14kcd/6VcpOx127r3L9Ze/x53XXmH7wX3e+Nar/OG3f0iyNCDu9rl7nLF67hKr61s4u5rHPDjmzxJ2M4HaNbHZXHptmXnEqDVFi9zQfLPMgmoAxKxbmwfRxXUhHPdu2/Cf6Z8XAuJA0e/1SOczwlDQ6STUIuDUhUvsjeZUdUmn22MwXCVJOk0wpHmWtHnDlKKua6I41pHldY1P8Rzh9TeVHSxLegSUEooipdttQKEtLej7VfOxwR6PI3eqJnO3lbgazX5zGIewFmOvHU8amqIW2mz12+uaAwnvAZ5cY2bEB3flGOMWxi1ilw95742vDz3eNyg0phnzaKcysFd4E2dAQHjW9ma4MQElJ2HLJ+jC3dQMifAvsoTQfvERpUWoheN09OkFDskfWMt5e1sLpXP4+33UEbHSGfXsomqBO5qz1gXJdbRtHCckccJofMzyyopTH/kcf1kUjKdjhsNlprOUsxfPcfftd3n66hVEANNZTiChF0AqGjuHE9FNW4pGBeRHN1uws/p/d5uLV/BsJ2aYbNoIe96qkOw4hpYbROuObdbOKAoJRaBdBqOQbhwx6ISsrgx55okP8YnP/TTrlx9FRZFlYDXQoAOyRJmhRg/I7r3D5M5tRts7TA9HpJMpyC5LZx9j85GrxHFEerjP7I0HpHtH5JMZZZnpALWipCor8qqmqCVFVZFLSV6UpFVFVlfkuS42X1Ta9lCaCm6a064JpSISmORzOl5i0OszXDvFyqNXeea5j/OhFz7H3evXeeMP/4AbN99i+3jCfjmlVIJ5+jZFkbN19oJZmVrSsu6qyviJai7TS85sEwIaSiaVMt5C/r4z4ybddvE3j6cu0gyUNGpPn2NvAEl5bXscsWg8x+II+p0ORVoSodNed/rLXN68zDvXb0El6PV6DJaMM0WzQnWflDIMlULWNXEUodDqu2aHNbRCGUmqKeYgHO1QaMGnKit63aRF7H2Jy7bniLfds5Yqq7YUo9+56a+VrH131EXJwl4jfdRxIG3669EuO4/+HDYMQvOqDaPrEyo7Lu4xfjOto0Vl3yc4/BiSQjPyLeLqkHyhJ95mbxC5WbwPKaSGXZAP5V4swYOF53vnnNJUuNtdAI5doILmrwcIrb4opb04wtBtQmX+07V9ZXtM7CQKG/QmNGEMA11CM4xIOl32dvfY3DzrUkjYSGFluKeDowPOnz5Plk3o9QekhWS4PCSKQqZZQZmXDLsJxzLQ+d2F3wULDPqbn4NI0QCCU8FZYm7acWkszLXCAYKfDruJTG4Cz7ROPBA6zYSNPo5N1HE3iRj0O2ytDfjsZz/Ps5/9WcJB31YJQNjCOkBQVZBPqfbvMr75Jkc3rjPaO2I2mpJnBWHUYevxJ9i68ATZ7gMeXL/O7OCAoqgoRUClBBUBddSniqEQIYVSlLUkqyrmZUmaZ8zznFmZkUUFaR6SFwGlCChLQY1AVTWiqkFKwromUgWR0iVLO+KA/u279F77Ib1Bj5XNTU4/9gQ/9fO/xCfkL/D6H36Pl1/+LjcP9pnOU3bffYc8nXP+ylVTpF5BqExMgc3Cq1DGPVgJzwZn1lMoNKfdLDnhXEoxIGPnyNJYbe/3swScpAxSNoTPLWLvsHdoUAjo9voUmU173dWxHYMBQRgSk9DpdOn3e7pwjs0ScLJZZF2RJAlVWbWSDvp7UIBJ6SHdz8JqGZSubVJVkl63i81H0HqUowM+760/NeSqARlN/PU3ywS57+7ciWabdlosvH/O+yAcZOPLdu46Q++bnEmi1UtHi9o4cWJ8LbVTJ0/8kcePWY4TN1jiIR1yrymazy2Ebk43sOiJh6LVTvuTbc1H99ZTvf74p4Tto2g15F3U6p3+rPRGi4wHRet31byPAx1fFDSvY/XsQRAQRTG9Xp/tnR2euPqMIaxGUgiEDtNXcHCwz9XLj1IWM8IkQQYJUgh6/S55VlDnOUtLQ4JxjbWX2LG0xkXrEqqza2tC49Rg4CQoV5fAAEczZh4gmP7rNhr3QpeWIgwdoESBLTwviANtUO7GEcv9Dmc21/npX/jHePRjn4Qo0gFJwgCCglBKRJnB/Ihs5w7HN66xff06o/195vOculJEwYBTFz/KqQuPMnnnXbbffp1xmlGGEbK/AsM+ajBAdIcESUIniegEIaWsSdMZcjwhn4xRsxnVdEo5n5LN56QCMiSZqilURKl0/WEZhJojBZASIaXua10TK0WnqBjM5/QPDuldv8Fa/xtcevRRnn/h03zqJ36J73zzG3zjG1/i3nifyZ073M5zLj35DFESGy5UNYTb5sUzY6s5Yb0iXcCvS3SriY9H7ptiRzRgoI/A0CqFY8yMSkgqL0BOCY/g2L2l2QkrTXZinQpeg4Kg1+0SJgkVeg9EsQaFXn/gsqD6DJrdO7Ux6idJh7IqNdg5AmxpAigbSOf97vF6unZ0reh0u3qPLnDfixy39fQxMprbC01gW8PgNc4kHl3w812Yhh1lMOOnzL7DSGJelhyPuTTXeV1151WbXi6+jgM025eWjWnx9dv3v5/jxwAF760e+hSfwFsC6Q2caM0TdlBtAIlwbbSf6JansgTNO28ovrIcr99bxxI3CGG5L+E14FRGwoyzAbK6rgnDjtcLUEpqjxDlBSItDpF9hSDQRNP0u9PtcnBwwPLSkFCEbUlB6LcYT0cURUESxfT6A3pLa7rC1Moy2+ked+/f49TGKtfG+0jrjO71oeUXbnMQOf9w3MWta4zhv7EZeLYC+/YOIEyfhc5kqlCEQWiKygTO5dQHhPPnzvIzv/jLXHrmI6igkXAcIFQlQTamGu8zu3+Tw5s32Ltzl6O9A7J5RilrorDHxuYTnHn0Oca3b3DjnZtM6hi5vkq8eYre6TN01teJhz2iTuKMnFp/XTFP54wOD9nf3UHt7VKEIZmAoJaIqkZVJbKKqIOaOhBUAchQUCGQKtA2hgANDkEIEkIUkZJ0akm3zugWGTdfOuL1t17j8SuP8uJP/AIvfuazfO2LX+Rr3/ky+zu7XC8KLj/1LN1BH+t9p9e0JYQYjyPl8uaYKTIShEYI6TE+VgoURrXZqIcaAtak1FCuoJFolxl33GmLV/KCSDuxIO50ybIURECvNyBOOszLAoF2LkiSDt1uT3seeYyK1eZYO0ddVfT6XYqyNEWrfPueQxOcWtQZY7TkgIBKQi2lrt5maISjIR6V8Qm4HasGHBpg0PRFeXTLB4yG/jotvxAu3Qhm/1rXbVpP9Mez8fRy7drGMevA67YwgOi/kXCXP/QJ7ir/3PuVF36MegoNBXov5GnwQjXX2Vt9Dh6bLMqHcvy7F5JJeZKBBQevby1I8ORQM3YnRWcLDPZBQixwSyBlRSB6C79h6jbT/GgJrPlq3yNAEJgav0IIkiThcPuBLvEYazc6lxVU6g1bliV7B7ucP7WFCALWN09xMJqytrbK9v1d9g6PuXz+Et96d4ea0I1xYNwsG4AzyzewEcb6bBNPEHiGQOGpjoz04amRwM9TpMfKFXYXpkiLcTeNjdqoG0esDrs8evE0P/3L/ySnrj6NFIGXtVjbDsIiQ0wPyffvM7pzk717dzm4/4DR0Yg0TZF1TRgE9MIBm2euks7m3L95k3nSJbz0OMtXLrN0dpP+6pDIS8ks7Nygq4r1iiFJt4eIIiolycqStCgI05QgiiAMIQiMd4seCxNnixQ6DYW0UqFZvLUSlCogB+ZKECnJSEoOpzMOXn+Vmzevc/nqFT7z+V/kmU+9yN/7n/8mr958h+s/+D5PfPh5BsvLxqaA4d5t1lVjbFZaVRlYIq9AuXTompsVgcnki+HwbdR5GIASJu2GcWmloTlKGaOpt2Vs4SFfTWLBSghBvxMShB3yPCcIQ7q9HlHUIZ9nEEAYR3S6PTq9rgn6NFytademJtfZZivWBktkWUZV1ycImO9r39BIn52ESimqqqLT7Tj1UdNzbxxdZtgFrtqCjXthL/oZYarteQys8L2LlKNDvseRpTpWWjAFar1ne4PuH16/HAYq/2299/KuV5w81TT2cMj4o47/v0gK7qPApfRtpIOGmj4MRMxUtRta4HCE18zizdY7wUoLPrfhhmVRp2S4hMY/2zvtUMj4UlcFoQUYs1l1UJt0m3lRBSXMglBCeWkiNLGNk5g0TQFFJ0lw6bM9nkFJxYOde1w4vUUgAk6fPsfhg9dZ3zpFELzN3t4+Fx9/jhDP/9xyPF5Etp+KQr9vE00qPG7GeXgJayto7Af2N63hsu6F+nMTf2FURoF2wY2jgF4SM+zGXDq9ys/+8V9l0wKCXSfo7KJRNkEd7TC9d5uDe7fZvf+Aw70DJqMJRV4SxgmDjTWWTp9iZfMC4fkVjudTxIcvMyRC9TdYu3CepfVVojh0BXwEuNwDSkpkWBNGuuJdVVWkacpkOmU+nzObJ4SZTrVtJSolBJIGFFyqbH+LCsuoNFxwjS7xWSpFUUqmoxn7P3iDO7dv88TzH+Wf+3P/HL//3Zf4wlf/Ibdfe5knn/8E8XCoU3IYA6ythWClBWFTdQtD9JUOvBNCIEJdGyIMQqSSOl0FGmCQms20nmSNW6veY4EwcQ1CYF80cO9kSJvSXm029myYJKhKUuQ1YRDS7fSI4ph5OgICwiim0+3rOByzNawnjGaotHeXkpKqLFlaXmI2m5l0Ix5R8Pjidq3kZmcrdIxJWVZ0OnF7GzpthUeoLC3w9ws0SfKwkoHZh5bg2z2tPFBpFnIDKGYnSw/FfPpmpbQ2nW70G76FUtlXeAg9b8i9p2ayN7wn2jyc/j7s+LFTZ7fEVvujz0X5ogHetZbWYF+qacWWmGwmV7Tabr+VfZAl9Cd6eIJY+991rhcLDMK1Z2HI9rwuCqJO5BYHUqFqzXm6xHieDslxDAYEA8NB2y5FUYKsFVk6Y2DUB/ZNheH8AMbjMePJMVVVsXXqFPdvvMLFjVMI4GD/mPXVFRIkhed6ql+xXdHNqqYILPG33L9Na2G77md/tWMkvOsM0BhQsddGUejcTsNQkMQhvTimn0SsL/f45Gc/xeZjz1KLxj3ZAcL8mOrBDY5v32Dn3n32d3cZjcakWUayusaFq48jBytcu7vNN2/c4sG3XyHL5kRBwPL6Oo9cvcpTT/eZ5WOqI8na1jrdMDbuxspkiNBGWwuGsiPpDwcMlpboD4ZEyTFhlGh1EMJ4zDUSpJ3jNreGJ+0IQiFY73bY6nfpJxFlJcmrkiyvyecZe+mcbG/E5OvfZOf2u3zyZ/43PPvhf53/9r/9a9x781Uee+FTBHEHRU1dS2opkXXdpPUQykQBW/5ZEIbCVY9zWWzt/lMgRIgMtJrTLXFpGSJbH0QnQtTurY3uvg0IzdoNhGBp2KdM59S5IgkCom6XMIyYz2YIoe1m/cGQOElc/62dQKETB0pbwKiuGQ6HTGYzz/vIrr+GOjTEvT0HKON9VFQksQ1ew4GeXQZqMdbAcdpWEmi7kDr6dQKMzO+WCbWnBS4fmwInGbjn06yfRTLmU8j3Iuntk83VrdYcLXx4Iy0A+RHHByyyc/KBbbJrNW2LD394T08YQbxShIt3+fXC2rTeRyex+NG7R7i/wk2s4aoXnmlVJwqoq5JoKTEMQTOFNp/+YjecCG77bYi09dIRYUgYJewd7LK6vOSKKen/6cpgjQppn/lsyunTZ5AipNsfQBiSZhVry0Ni9EZ17pyi7YZqAU+rDZQLZrMupjbZmr4vdMMQWDAQ9rt1OW0ntouiwP2NwoBOFJk6wDGDJOTZqys89uKnIQix3i0CRahqwtkx+Z23uX/tTe7fuc/xaMx8OqVSivMf+yTF8ip/9x/+Nt/6g++wu7tLHAYMBn0CEVKUJWmWUkvJ2uoKL3zyU/z8P/ZPsLt3ho3NNc6fO6OzZlqQtx8CRRzFdDoder0eSadDnOjKePodG9VWow70dLluXq16LWCl1+GPv/AEw37Ed96+z1v39hlN5xR1RSwUnTBkuDQgIIJ5xvzdB+SzX+MnfuGX+Df/wr/Gf/Pf/Bcc3XiTyx/5OKBrO+e5do+1SfUCK6FKiZQmn79SOmNRqH/XIKidGqRUBhMF0q53QAU2viGAUHPtggAC6ak/Tu5Va/MQCJZXl8izuY62j2PCjpmTvND2pDim1+8TRragUcN4KKs6Uhr4qrKk3x8wn80aqfu9WOOFn+1OlAqKsqDTSdy1Nimevc0BvLsTp/LRAYLS0R8nJSw83u5pq25TC+35Hl7KLRhoimEtAoJlP70zZqwWn23PtXu18Nl/5nsM3wm++T2ODwYKVtfpPaRRp3u++j5xNtNnie3JznmGIdFswqB1RXOTAOOS1pxsCA5YVQ2uTbHQkmi6KOyzzP2+1GB+q6tKR0sGwjAJmnOsDLfjSwYGa1rjIxCEYex0ukEY0Em6bO/usLGx7trVhEY48FFKcXh8zGh8TBQHdLp94k4XEUXkpSSdTemHIRNrR2hFxVpX1wb0rLqnGbi2JxHQpKcwaiK/nKUQuHTfQaC54wDtchsFIb0kYaWXsLLUoxOFbPUlp+pDJte/xfKHfpEg0EstqEvEZI/Z7Wvcfu1V7m/vcDSakOcFJB0e+fSn+fq3XubXfu3XOdg/5NKFc/zqz/80nV6XWZpS5AWhCIiiDrWsuX3vAd/86u/yxg9e4U/+M3+e2aUnuf3uu3zikx+n2+k4jk6DpQmoM3Wzk06iVUZGhdeoCzw1gbeW7cRqEI3YXFnmn/7ZT7B/POZvfOllDmdTpKroRjFRFFHWOdM0ZXcyIRCC9cESV/vL3B5n/MFXv8RP/szP8K/9S/8Gf+O//2usTHe58uwz5HXN4ThnZzxjmuWUZYmSUhdfEjpViibmRvKxe1IY9ZF5Vyl1BTjfI0mvQWOzUEbC8ILYgkC3Z6UL175ZM2EQsLI6IJ1NkEDc7RJ3OgghyPMchCBJOvSHfaIodH20+8I6bsi61iVPq4qlpSWODmY6qM30o40LgiYBuB9HYc8qqjInMWkubBsCrxBOyzVQWBrrtWGJLk5lo9sSjsg5zYjyFAN2UVhppBFAdG8XJA3bP5eTTTX9tXv4hJLH0JxGZyJa7dljwSHqxGGB8f0cH7wcp6JV/+MEzXUP9kPObJBOc31DNJtoQzthdgk4zwshvOtxo3HScExrYhqcFd5vC+eEcFdYrtLNtdKgECZxw22aBqSSJge87xRo361ZDIHxPhKmHgFKB/zcu3eXpx9/rnm+B2pKaf1qms7Z2d1FqJql5VVUGNLpdMiyjElRsjrosV+h3ewCHaGMVREZl1TRUgk18QWOgxFWKlCOiDhAMZvaD1YLze82QC0MAgbdhGeeOMdnPvMpti5cRtaCpJ7wh7/219n9rf+FT69epHP+GYIypTq4x8Hbb3L72jts7+wwns0pypKw2+Xyxz/B3/qf/le+8MWvEAcJv/KLP0ckYDYuWFna5LEPf5je0grZdMru9n22t2/x6PlTPP3YVV565WX+zv/w3/DP/p/+AlJF/Mbf/Z/5lT/xTzEYdLH2Lfsu2gYSEUaxTuMcGEAMNSBYKcCpB5sl7ZiJrY01/uRPf5puJ+B//J+/zCSVXFxb4yfXhqwJiVSBzqFUFjxQBa+OxtyfjHk5nfPsmfP0U8n3vvMtPjvo8xf/vX+X3/o7f5M//Wd+hc7KGQ7u3OArv/07fPOdHeYioDR1u6VRdzgXVqW9k5Qh/KEInFecn8xOG6EFQWDvkWadgRKSwIumDgAZNMyJq6CHlg5XlldIJ8fIQNBNEsI4gSCkKErN8PT6dDp9HfDpMXIKLSnUdaVVZLUud7qyusb9uwdaUvAk8RbJ84DJeQaZSwRQVhWdTs/NsbvWmzunHDJ0xk+X7avOHIFQhjapBmaU+W0RVECdyIbhmESBsxE121C0rrWMS0Op/FEw9pgTFL9BAffMhwGC+c3j1X/k8WNLCiePRTbZfz2Du83bNwNhwcC7pS1NWMxeEAcXHi38DwK3uVsNe2jr600fpioAbfipywoRRFipQik05yYVtrqWM4x7s9OUEsWpJixVieOE7QfbfObFnyQIoxZI2WGWShvQtrcfUOQZ6xunyOYjhkvLHGYZ0/Exq2tLBHsznTzObmqbr8gDO9+4bOfBupy6pHYKJxFYcNDt6WubusgafLQdQbDSi/n0C4/w4ocvc+aJR+hsPqVBSkoe+8wtvvuFX2fv9W9yafM01e4dbr/2Om+8/g77+0fkueaEgzjg6jMf5W/92j/kd778u6ytbPD5z30KVWZ85MVP8NzHP8vy1jnCJAYEsq4pi5zx6Jjrb77Kd7/xJT724id4+9rb/Obf/9v8C//yv8n/+ut/HxT8k3/6zxLH1pjvqLop+WnTggR20YA18to5dbqPZgktLS3xkacf46c+/1n+k//8r5OVAR+5fJmPrdRc2xvz3VqS1TXUNZGUbArFR9c3eOT0eV69f5dX7t+hOHee8CjnD7/1TTbOnuWX//Q/x+tf/j0+8+f/JS6dfYRfSbrc/st/lRsiobYuzaGgVhXQdjfVhF+/h0SXc8VT0QdB2KhnABGEeg0rSRAEWsKw+xebM6u9JoWAKFCsLK8wOT5GIeh2O4RRSFVV5EVGGIR0Oj26/b5JaNisZ7umq6rSta9lTVlVrK6uMpvPcYFrmDXa3M0JaufRCQCZ58Qra9j8j8JBwEkS23KrMuy1+6lFwqwXkudZ5G43tMgPL1dt5U5D/h6uy/elDb9LJ99Y+STSvYq1gdjeOBnD76+5vvn2/lAh+NGXLL4NPOQdPV2Y8Eak6Yiw93rtaG7EoP/i0Hkce3txLnD9XreaXxpAcPmAvH560OARyxNdppaKPE11KghDGBTGniBt7iM9IG5YrIeHW2im0I4IEEZ9EScJo9GYXrdjolubl7ETrUs81uzu7bK/v8/6+iazNGV1bQ2pFO/evsPG5jKB4eZaUcYiwHkaWVtGIJxnTStzqx2fQDQAENoYBP05CJtxEgJXNKXTifnQo+vsfP/3+K///f+Qr//3f5ny8K4pdx1w/sXPs37uAkd7D1DzQ/ZvXePVV9/kxu37bB8ccTieMitylk9f4I137/N7X/t9tlbW+cd+7vNc3DrD/+Ev/Fv89D/+z3DqylX6wwGdpEMnjul2OgyXljh97jwvfOan+NX/7Z8nWVrm+edfZHZ8xCt/+E0+/amP84/+l7/P9evXWpvEQqUzlgda6nPryqvghZ1Pml0bxhGb65t88pMvUAQx9w6mnFo7zUeePM/Lh1Nu1zXjKmVeZ0xlxmGd83aZ8/J4TF2kfObJJzm7ssa1nQfsyJB3Hoz5+u/8Np1YsnH+CvsvfROAjac/wi986iNwsE0ompxUrhys8N7BSD/6fGCiykPHjDimwK4BLNCH2FgTEQisT6ddP0EgXKJDIQLiQLC2ts7o6BgQdHo94iikqLSBPIpiup0+Sadrkkg6GQGB3jNFVVDVFXWlK9QNBn3maertY8v9+hy5wic8Hm+MRFBVkjjpeM9spAW76X2bor/JHe4vEkzh0xBfedM4IXgEysvx1ryF7evDiKwwgLB4qIf9tf1bWMdtYuypPVsPOjEaP/L4gKAg3rN1P8e79bwxZ/BfcZEHCczMC+VvRoPzC2KW36Ijn6LdrZMi0gIM+z17yGJoIEy7JObplNDkKNKAoO0IVjfazIFZvi0JST/EVjazfQ3jmHSeUatai71u0XrIrzQoTadTbt+5w9LSEmlWsL6xRSXh6GjMhbOnEapGiNCk4hCI0JTNNLrzxo3Upqow3kSB0B43wkYmGwLijMzCbaZA2JrJgfkXEsURp9b7FLd+wHe+8xrXdwr+wRdf4vZ3fxeVT0EpoqU1Lj39LIfHU8rZETvbB7x7a5vt/RHTLGdeFFQiZOPKM3zxt3+HJIz5+Z/9ObpxxC/9mT/P8PR5wthmmQ0IAkxiQQ1WURzRG/S58Mij/NKv/Cn6qxs8/eQzvPSdb3Lp0kXiUPBb/+B/oSgrx35pv39TSKeuGhWJwAW6nVQI2vkUDPoDVpdWuPL4U8zrmFoKrl65wO58ykGh4x6KsqYsNUdc1hV5VXJUFLx2eMitwx1eePYZzm5s8Pbefaql07x0bZtvf/m3OHPlMUa3blPt30F0Ojz5iU/wuavnqKdjp/rCYwA0QIRuvlzKEQ/8NRhggN6mMDfgbt2XvTUQBGFDRIXPhAk6ISytrjEdjVAIOt0+YRSRFzW18YLq9vokSdKMmqdWkbKmKivKoqQoC6IoIooS8qzwDLWeVKAeTm4WGGHtDBInRrVp+9xIhYtEoUUKnBuZJw0sXOtz7TaOQdlAQ3Odo2OOv7PqV6s4eYiGZYF3fghGtEn+AnVX3qcWFPpfHtbojzh+PEmhxfYbTsDJXmrhfHMIbzYazFctVG6ua5CxIfii9d3xfVY3bn5bvN6TYfS3h6w0ywn7byUVZFnqpbnQ7yalFoPr2rqleoOjGqmhGQ5NrK2eXlejCpnOJiwtLbnfHTCY/tVSUVYV1999F4Ao6bC0NKQWgoP9A5ZWuwglPUIeOBCwA+oIecMS6RTZjsg2EoU1RgtLJNx1wkkO2vVUV9M6FaS88v3rpFWAlLC7vcfvf+3rzG5eQ2VHIGDj/AUO9mYc3t9mNC/ZO54wzQqdoE4qls5cZGc0YWd3l6efeQ5Fwed/6U/S29ow6bYt0QNN3QJjP9FV7cIgIO50OH32PFcfe4arTzzN0d4+B3sPeOLqVb7xe19hd2cXJ9ShtBePMXYq6yxgDKw+X+UxfnpdCRgOhnR7fXq9IZ3+kDAKGC51OZgU5GVBLWsqqb1raiWpZY00QJTXNe/uH3L9wX1e+Mjz9JIuWdLlWEZ88w9f5Z3vf4PVR5/g9re/hkhHLJ85y7NPXOV8opBFbrLs+sR9wbNNBKZ+QeABg2UEhIswtpKglTDc2nPSoPfXMBKEAb0kpD9cZjbNUGFAZzDQDE6aaZtGFNPvD4jj2KgkPT5foWtVlNqrqsxz+r0eoQjJ0rk30It0Y5HPNf20dyio65IwEE18Bx4h9gij717b5hFF659PS2yvGtrifxKGgDYaf1dfHs8SINpSQYv8eJjkv+niXzw1U3Nrm5DZaGrX6R/z+GCg0Jof0frRj9YTD3s97z5h/+9d1uLNFE7X3wxWM00tAMG7X7gutJ4vaCbT78GJPiq7cJp/WZ4SxZGLzgSQSlJVpS4Morw8Acr2wYKDRLmCIXoxaw+kkE6ny/3tB2xtbGCCCNy7+SokpRT37m9zfHTI8uqq5v7DkKPRlKV+lwjlVEHCqAscF2k2f8stNvDAQ/gcpaeS8FQTYaDVC1EUuWdHYcCgHzO9fwcZxHzkUx/l+ReeZ3Npibdef5Nb77zO6PoPoBjT6Q84nit+8P03kCpmlhZUUlJWChF1ufzEc7zx1jsoKXnmyedYHixz4cmnCQPZysuEB5zCA77AA4Zzl66wde4iYdzj3Wtvc/Wxx9jd2ebta286w6xN06xBXaeLsCYFFxFu3l96qgzLxyZxhzBKkFKxurJK0omIOyFSRZS1pK6VKcEpqaVCSYz9SW/aSire3d1l/+iA5559jrqueOaFF3jt1g7f/r3fRZZT9u5tc/Ta96kP9+kNOzz32BVmuw9MwaJGYrOlTcG3kTTSXRBahsCoBDE2IuUxA2ZdIGy22yatnGUwtGokYNCN6HQ7zOcpBCG9wZA4DsnSFIT2suv1+8SJsZOJZl8plAbMSo99nuUMlwZICXmeN+CMcn/t4csQ9q/yvrsSpfjEYZFIGPrhSQ8+VbD0SLQuV62Huud6oKIcPWke2YYNgS4h0H6H1mdvrN6Tlnt9Ew9vxdM1ifaDPuDxwUDB+WO1pYSTQLEg2vgsOBbRlLnVI/b4aL4AJi783M8Z4oekt5/vbjMDbu91M35i3ERznX0zJUjnBUmsCaI9IWtJWZRa/SANybBqByc5aM5TuwbqUHdcLnlIkg67e7ucPXOqlTrCo4JIpe2Fo+mYW7dvsrW2TprndDo9srwEmdOLBKFRD/gcY+AIP26OfJWC/W4XpOUoA2NHCK26KAwJIh3DEIZajRRFAedXO5R5zv/lP/p3+Yv/2V/hL/5X/x3/wl/6DxBlxA+//xIHd+4yufEySCgLxVd+7/tGyA2MkS1kaXWLc5cvs7ezSyfpsLw04PJjT+q8RcKr2GU3l1sS7a1h+7a0tkp3eYmtjVNcf/cGp86coZaSa2+/qaNolXYOkHVNXdVO2mvWpvICrpRbYy01phnfbD5jZWXIyvISSkjiKDK1GIyrslQgjarK/LNOCVUlefXdd9lYXUMFBR958dPkdPjuq+/ww9//Kr2lIV/9jd/k7uuvURc5FCVDamZHB80ce9KAXZuhN38u+60IXJ8dCJhqaNYjzq4XO5bWqcBJE6bdpWEHgpB5mhFFIcPlAWEcMU1zAhEQhxHdXp/ISCT+ppdSURYFRZFT1zVpOmdlbY0szciLwhH+hhu2NGPRXOxxX+Z7rbzMyHa1eOlbHkYfLRlQ3rryzuhPwl9nNjeZ+ey1bnesT2PaZFu5//tEv5Fe9QfVuseYeBbIq0sQaPe1HQuLVrblFpf9wQSHH0NSWEQpO1I+IGjDknVzdO5Z5mwDAM1nd68BHd93wH9ak9QLs6DFyYuw/Vyc4HY//evsU/0JV8A8zYmjiDgK3e02uKwsK5zA2mrWhvRLk+dF5443L4gQECUJt2/fYnNz3Ynp4KnRzIeqVlS14vW33qIXB8yrmuGwT1HW7I/GrAw6WpfqNrfl/MxSFparDB0H2SQqCwgI3KYXRoqxRMJWjYsCDQZxpOsJJEnEskj59C/8PLO9e3zpr/8HjN/5HT708z/HZ3/xF7l16x737tzhwauvkI12Qda8/PYttvcOSHpdVBjTX1nn1PnLLK+sU9WKfn9IEAVsnD7fStXhwCuwICbw8+m7NSUgjiOSpM/WmbPs7O2TdPsEYcSDB3ecmk9LCpKyKlGyRiGRqvb208n5dIRKCYqiQAQBx8eH9LsRly9eJEtT+v0OysWumKymSt+jpOYWHcOgFNN5yp2dBwwGXZKO4MrjT/H6vQN+/5vf43hnnz/4zg/4w++8zJsvv0mazuiJDnt3butXt9y8WbvWzmOXjdVl23EMAk+StOpBa3BGNC65TtIURsVopVd9z/JSn7rMSOcZcRgxGHQJCJhOppopiWMdS2PtVs12QElJURYUZaFBYZ6ytXWK0WhMXVXYFB/+2rf5ik4ezRpwWgUva4D+Ywmlz0A316jmKp9P9K7zCKwdB/sYpVr3WWZSWNqhvGea92k9w97mfvO1BLoBhck8Iky8hWvK9NwHT8v0QbNY34Msvp/jgxualR9gody/FlS0oN17oWbGvPPN4Q/kiWtp+AOL3w4s3YWWEC4CV9OxZp4EVoRsJsubMjOx02nqisw3/bagULjo0cbryKgKlJYSnO0BGldWqQjDiMPjEUvLA6I4avY4djPq96lMENI7N97l9t07FJViZWWDvFKMjmZsrA7NgvI9iyw4WHuBNT6H2Nmzm78xQIbufquisIAQhwGJBYQoZNjrstqVnLl4ld/6G3+bL3/hu3zpb/9/mO+9xrM/8WnizoA337nJ3vY+2zdvUNSKrKx568YdBkvLdHsDljc2WV7fpNPpsjLc0KAVQqffNRKCas2lMLvSCp1t7bFeCEEg6A4G9IYrzGZzKjPuVVmaKVIuIRtKqzMsBrjMDyfWo2jN+2Q6JQgEdx/sIITiuWeeIktLlpcGRkKQptZGsw6UqQ6oFtbI9bv3CKIOR+MJz3zkY2zPC/7w2h2++53vklWCb37vNW7cus/seEyW1yRZSTmdmtgKw+Ubr6TQSgc+0XeAEDjvMrcmEA1oeJ5xPnNhgSUwTgpr6yvk0wnzeUESx3R7XVCSeTpDCEHcSeh0e84TqhlEqGVNUeQUeU5VVczTGafPnOZoNDIJ+7z59Iz9NsL/RIOtT4AN2MRnKBpK0VIfW6nJu8btezPPlh4sKp4dRy4attV3p/Xs1a2/KAh8bv5hi83SS7vmXRuiedtF/nOBiLZo36Lo8T6PDwgKqhlMS6Kdjs7rgfJe3J72e+mknof0tBkTM0YNkWwm0bu1hfDYNQVuohQnQMIb4+a39jvYLs7mOUEoiOOo1f2qqigLowvF6owNNhjCU1UVRVlQVZVrV6sSaoQQ5FlOVRX0uj3aL9WMlTRBPaPxlO+/9jpHkzlFpdMh3L5xl1Ob6yhjbPZdTRtVQZPgTggaY6Pd/M7jqDkXhqFRE4W6HkGiq411OxH9Tsx6L+Cxpx7n9e9+g+3jKYeTkm989y7f/e1fZ7g8YOPCI4wnOfe2j9i+v8PxNGWp2+XdO9v0hkt0en2W1zbor6xSq5rTZ8+QVyWyqpGidnPS2ttuWCzhsB+VUfUoQmB52Gd1fY3E5OMp84zV5RVsqg8pJRLl7AnWuGwjy9s5+UWzENAEfjafIuuSd2/dpSoKnn/uQ8hasXuwi1S1tjEpl0YPS1j0+rD5cXTnR5MJdR1wcHzI1UcvUyq4tj/m1bdvU9Y1e6OUO/uHjI+OmeVTzq+sUezsaAAPQuN2GiLC0Lh2+/ahxh21USs2zgPYzzZhY6gHOXDE1fxz9gbYPH2G8f4eWanoJh3iMEJJKIqSMArpdDt0el2nimo8j7QdJ89zvR/KkixN2djY4Ph4ZNJmN2Ps70ulFvdEm2BqYtuwi5ZGtNJxOiJr9nlLIvFomKVvViLFElnRutz1ztoLlf8b+LTI9hphyaJqnWvRRdtLv70W4+ONxEJf7DXNirPv2rz/+z0+YPCalyLCDpSbp4XJwp/CxcOOShOCIRbaxf9NNV9aYtpC+3YBeIyd46TclcJbHO6MlTO9383f2SxHqIo4jt1LKSkpipI8zw23qfyB0ERH1lpczjPKomg8lUz8AUIga8loMmZ1ZZmDw31vMr0xVFBJXbbw2ru3OLO+iaokIoi5v33Ah198EV6/TyC6mkMUelSDQG8oqxN2xroFlQAKF4ego5S1p1UUhiRRSBIJuklEJ47pd2L63YTNrqDfSbj51huUBNRVwfHxhC/8o2/TX3+WldNnyCYHvHv7GlE3ZDKbsbI0YG//gGS4RLcSrG6dYWVjk/FkxqWL5yjrmrKsGU+OEG5VYEq30s5Npho7Tl1qcM7znMl0zGx6xKOPP0Ze/iy/9/WvUZc5Tz7xDDbDpbSeRyYi3dmDlMSUKbAjtbgS9T1Fyf7BPjv7+/zuN77L6vISt+7eYW/vvrYb4NmUXIEYZbhPT70goCgr8lJycHDEJz/6IlEUc5Cm3Dkes1lLlte2ePfWDZIkJhQ1V65e4a1XXyFWIMMQWQOBzpra7A2TIlspAnQRBm3XApvqNMC8q2pSYrgtgHbRVVKCVTEFgiiAzTNb7N6/R650bWYrPCsp6fe7nD61Sa/bdZTRMmVKaS+6Is8p8oKyLMjzjJXVNd69ftsY4q2BuRkjR6SVANVUTbZzYqOL29KkaLjpQL+HAFNcx6qeRUsasfui4fxbT8Byqq4SmluMjVrIJ8pNmw3+uBaNA82JgDZHtMxnD+j8S2w6C/tI5U6Y8fIbarX1/o8PVo7zRLSFcM9fpP5W5FkEBT2IqnVbi4h7NFH4N3nErGmnIeD63W0Uqv2tbWTy9Yz2e5srcA27/s2zAiULOkniPKx0nEJFlqVaCvAGXRN9nQ2yLAuyLKMotZeSVS9g3iMMY+7ev8fm5ibXb7zr3sVKHXZQiqpk2B9wPJlyam2DeVEQxwmHB4d0koBY1cjQxkJYYiBMlS4T7ehUBvrFrHGyUS00KgerNupGIf1ezOaww+VzG1y6fIrlzS36nQFJuU8n6RFFoFSEirtcuPwIb719g40LT3Lq0hVuXnuDo0lGXgtWtza59dprhN0uK+s91rfOsby6wTybcfHCeWPAnLG/dwAmBbQlLAJtn8mLkul4wv7BHjs7D9i+f4/t+/fZ33vA3sEe+3u7TMcTsjQjnc2YzlNOnTrLx178BDp4SrnsnLKutbuoye2vAULPX2hTgzh4aDhYWUtu3LpBr9Pn3/n3/yMQisloQm3TXps7HMcbOBbRcJa4DSylZDqbMp1OWVoZ0un2mE1S7k9m9OOIsytDxhVM5imdpMPaxQ0u7W9yPD5GrK4hrPEaU/0Om/DOLCBT/KExmCqXKykMA2cQDwzxlP6eC3SuT712ArqhYmNrjddf+yFChPQHPTqdCIFkpd/hsQ89xpUnn9AprL1dZwGyKiuyLCPPM7I0o65L1lbXGI/HSKVLDrZUSJaoWeLt40HrELpYFU4x2tAFS1CgKZhm51XgynqqE5XUfGOuacYyaw64lMGKdsSzPR94727/b9P3LBLp9tPtj6IlTTROr94kCeHqd/stNm2Y/z002+t7Hx8IFBRtIms7IETrW+u8rQ4lFs+oJpy+BQ5+Ey1ufvEZhiNwEaieLtHBQSNZuHZ81PEf59/rgUOelagqp9c11dcM11eWJfP5XPtdS0Vg6u3qS7TqKEsz0vmcPE2py9LdK42LYhwn3Ll7j8euPOERIcv9NGunqnXu+krqlN1J3CHuLzOb7dDrxHQiQRmEVEp70ohQLz9nQ1Bg01pguEM8FZLWQWvVQxSExKGgF4ecWuryxKObPP/JFzj39MeJ+2uoINLjWs75mV9NuX7jr7JbT0mSLh/+yAu8cu0W/TLj7OVH6a6dYfdogohj1s+eR7z2GrJWbJy+yPrWafqDoe5TXrK6ukyWp8wmE0KhifNkPmNvb4+bN2/wzttvcP3aNe7dusXu7gNm0zFFXqKqGlsMQCnjRmry/3SimD/1Z/4sZ86e1qOrPMCuKhM1buwAtrqMCEwBJbOZFzhKpRTHoxFVv+L4+JCiLIwNAU+12mSotfNpbTaOmTUZOSezKVmaE8UxnVgnTjxMC8ZFSS0rwjhmt6g5tb7MqJjywk9+li/87u8TbZyiVJJAKQSBezcRSE39lE6nqqQkEKGThoQEIUJXnc1eoyVFUFKvf2nSuFhVZC8RrK4MOTo8IAoFw6UB3V6P3vKADz31GFvnTlOUKUGe0+8PNNm0aSSkVrfmeU6aZqRpik2qOBmP3RxoOtiwv20wsB/a3L0QEIUm468l3NKQdWGgUNl2DNEXll01Up3nCXkCgFSTJhvbhPRxp5ErrETh8MxztHGE36l0fAbBo0aWkJ8QJNp01b6S/ezut+y4I8zKvff7PX6s3EdeT0+AhH/OIqknhOlTrmbCAsl+mO7LQqz/vaHfC5z/QhtWpXMCBCw3cfJ5PgwpIUiLEllk9ExqXmusrMqa6WTMfDZldW2VKDIgZOstlBVZOidN5+RZSl3XmkM14qwQgqTTYWdnm+c//ILnsWFVSAFKaCIvpSIrczpxzCyfceHMRYpYcDTdY+f+HVb7CYdCobA1GxvXSj/TKeD+hiIw2jIjJQid8iIIBHEUsrWc8LOf/ygf/vwfJ0k61JM7iP6KGXIJQvLEpz7NL/+JO7z86g/59g/f5HB6SBSF7G3f4/GnnuDUY89y/ftfJ+4OufDI4ySd3yPPUzbPnWe4tEzS6SACwc6Duzz1xBPMs4zBoM8ffPPrfPd73+PV117m7o3rHB0ckOeFro9sPG1CBN0Aom6XpNNlMBiysrzK8vIGa+tLbJw+x6NPP81nPv95nd/H2BDsPNQmr7+StSsar2tkyNb+8ZdT40cvmU4nDLo9elGEkpWOvZCS2lblU40p3D5Xg6928w2Nt9C8KJmmOWVREgjthJApyWFRMUlTVteXOTw64tG1NR7sHvDTn/400Ze/SlGUEEYIUZt1EyBErb2epC32bOIMwNhOAoRoJFVLEDWjZAoxBVqa0BKllhaCIGB5ENPr9jgezUmigMGwR384RCQd3n7nJvuphLjLxasDlldW8fhik8erIM8yqqpiNp8x6A/IspL5bNY4YljjPM0UtJlqf/Mrt1/jOKCqSl0u1TF9HldlVUpe9TWXmszjyJWQDXBoucqTBHwwMvydUwMZjl35PcM9y/GSNF17L6mnoYU4cDl5lX29RSa8zfxa2emEqupHHB9QfeQlXlogqK3fhPLwY1FUeviI2MG32R0Dy3XZGbB03EMAn4BbcLUEt3macJ8e0m1vlmiAwvxVCOZFRVWkpiAOThIoq5LRaMR0MqYoCpcGQimtnijKnDzXXFGaZhRFgTWSWs4oDAKOjw6Jwpg4DCk9tLNqASvyzrKMUytrTOZzTp3aYtYbMtm9z872NpfObDB6kCLDxHB3eiEEHkULvGI81j3RZu12Ea4m3mHQC/nMixd59ENPEfdXtWpnd5sBEUFnGeoK5lOqw31e+Omf4sVf/dPs/dv/V15+4zpXHn2KW3cfEMQR5x57gldf+i5RGHD5sasM108xmYxZP7VFb9AnCANi0WE0GfPhjz7L29eu8dWvfInvv/Qys/EEgSQIBSGCQRjR63fZ2DrL+UuXuPLoVc5fvsSZc5dY3digt7xEt9sj7nRcFlQXye2kAW3PKcuSsqgoy5Kq0iCh6qYkpiMKjkNtlofWcWu7UV5bblinhoiDgCQw0qCCGu1DL6WiRm/iqq4QdUUdhiRJl/FsxGgy4v69XbIsdzU6xkXJ3mTOxtIab9+9h+p0mM5K0ho2V7v8/ne+QR4lDFeHrGxssbZxGqULLeiASWNLswGQVkqRQZNMLwgbw7crBVort47t/gvCkNVhh0CEjKYZvThguLxErQJe/cNX2T+YEPQn5PWIla1j400UOuCp65q8KJinqZaw0zmra6ukqVYl2f3QNjJbRtLsaisJ0E7pEApB3Il1Jlkh8NMVWNd1DQDK3W91qEI1T3DZUy2WtPVNmiyY7400YYiuamKoABdZbSmPH3zn4EXQyqzq87fOQP8QUtmCACeVLEgrXmmBlpD1Po8Ppj5yjLeXTbQlPDRv+TAJwpE8jxA31zVeQq4erY/6oDeg3ZjezVZMbPejCUAXRsfu96S537ZpAaXd56ysybOMwXCo71RaO1HXNfM0ZTQ6JktTkiQhCo0UUVdkWc58PidNU/JCu+HVUnNEtpSnEAFlWTKbj+l2u8zT1IxPowfWGidFXhSEgSDPKmRQc+nqY+zcucbNW3s889ELBHdGBHEHKQMQNhrYM1yLxrPEpkp20c/CRloHhFHApY0er/yD3+If/Y+/zp/9l/4CH/m5P8F4WnK4/Qr93hKyrKnqiqKYI5OQy5ee5tIjl/na917lwx/7FOPXr1GUOZtnThH0lhmlE9Y219k4c47jyZz+oK8D4sxzL195gv/03/9veeet15inGbKuCEVAr7/EhYuXefbDL/Lcx17kyuOPs3XmlAYUU1pToBy9MDONJRx2LVgjZl3r3DtVWVJVhZYWjC2gNmollxvJJcl7OK/mUigLoQm/snPVSAfar10RBaDdFAKUCqhMkZksnfEgnVFMj/kv/8v/gsPJSHPpQF5LDmc53U7NtKg4nE/p9pa4ef8Bjz72KD/56AXu3NnnD964zg+uvcPRE09y9clnQEmUCrS9xDg0CNdjbW+SKAiUUxvpyjwaEAPjTqpMlTYlNHOxtblONs/J0px+J6G/vMqD+3u88eYt6rDL0dGIkoAiyxoiaTj/uqrJs5Qiz6jKkjRNWV9bYzqekmWZieFRHiiohZGWJ37H7PAoUHT7XR0VTdDsacuVWoYSb17sZyct0RiAnarHsq9WfdSUZrVgJwy37oQNnzb731Uz/gvLqCUJNf3y+uktQSPneA8AhGpKINsLfWb8gwkJwAcCBeEGx7pW2fTUfocccVYNOjZoaTatBySWe7XXWuRtBt6kzbYovGCHAH+IHvKL29jCARqWg2jjrvtnn6cQFJUknc0YDgfYKVG1pCor5rM549GI6WRCt9tFdBJkLbWEMJ8xn83I5nPndVGbfDuggUH3J2Bnb4flpSUOjw7bk+t9lkoxzzO6SZe9vX2eePJZusNlJtk+l8+to165iQhWCazIa5eQlQxEA6jgSwfGbdFkQ43DkPDwLt/7wXUmRPxP/8Pf5OJjj0Nd8dZb1+n3l6lyXbc66sbcOzxAdM4w7PW58+AAqUKkEkwmUzbPbNJbXmN3dEwYCU6dOcv9Ozf0aLs03QFnL5zn//wX/i3+u7/2V5gc7fHI40/ywmd+kqc+/Cxnzp4n6sRYN8tmrXtSa+DxWtbwZr1ZlLY4SCPBlVVJkeeURUFVGYNzXTudtt2VWlKQLDor4J7U7FYNbqbimWVgUNRKULkyfJosBEAYCGKhVY2lVIwmU771yncppdLV09DR7GGnz+3dfUQQsXs44qPPPsWrb77JCxcucfPVl/mJ55/h6XPn+Z3v/5DfuPEul68+TpwkVGVpamvgJKRmhCynHbisAs4RwbmS6n5gJPcoDDlz9gxH+4dQ1fRWuogw4ubt+4zHM/obfdIsJeoNkKrCenRhGJqyLJjPZtoFuyxJZzM2HnuUo6MDijxvbDtu5HDz55RwCxRSGEYuCqDb73M8ztsyhEdTVLNSmicYwHhfTLRz1sCluvZ64lZDa8eqxttMCOEkQNtD6ZUdbmIyvDUmPBon/GcuPkksfPYB1Qo7dm/8qBfVx48pKegHtQMO7RAsPrx5FUeqRIN3wmvbDYSdUO/9nTrKk1aai4R3T7MaxOI5//8LIGNuaD8UKGudqXQw6Dd9QVFVNfP5nIODfUbHh6ZUpBGVs5Q0nTGfz8iylDzPqCrtny1lQ4CE0Mnx7ty9xfraJjdv3fKH05M1AQnTLGNjZZnt3X3COGaw2uPBOzkijhgGMAls8W/lxsnP2WTf1ya58zOmgg5S6sUB8+17dEPtgfTgxi1e/c7v89TVxzkeTynFgDytEEIQ14JXb+zwzu3fJClTZnnBNJ3T7XQYHY+4/KhO4FdUNbUs2djc4tqbb1BWhTPMgiY6z3zkWf7jv/JXkVLS7fcIo9CARjMnVuppbUrjRuz4kEaVbbh25cWNlCbVQkGe6/gRW2tbA7YlZjb2wXNDpL3mrNeHEIv6aUvcRKPDNu1IJaiFoqz1rxHQDQS1EKSldrkUhiOtpGRtbYU3dncgitg5GrGxtcE7N3+IfOIqv//WPe4/GHH11CnW+gO2ooDrb77Ghz76UcI4pipLhFCG86/0WMiaUASutnNo6jQga1OBTbhNLgJtGxNACJw+c4aj7bsIBEvDJWqp2Nk9oBaCOI4pa1B+8kIjLdR1TZamzGcT8kyrUdN0xoVzF9nb2zcBoLU37nhEoM3ttnMN6FkJhaDb65PuHOpx9teKlViwaiFl5s7uYtz3VpW0loRhPY289ty1RkpQjVThbTRHL111POWRf0+88Mham3R6RNG/phkBHwAaScRB4EJ54xPczXsc7x8UxB/dZsOb+h3wbRD250b0ajdgIaLViiMEi59t+w/tk1Uvuef4N3kLbRF9vL9W6K4IOD4eMRwsG8KjCUxZFqRZyvHRMYcHhywtLWkpXCrm0ynTyYQsS3UUpyFE1vXRlxnjKGZ7Z5sr565o4iwNkBliIrzFlZcVKggoioLdnSPipM9RIUnzmrVuyFxTeP16i+7DQrhynBYYXPSrsPltQla70F9f40M/9QhHB4ds373DD155mUfOnNFtLJ+FjjbUzuZHzFLFd995hQtry8iqZjyZMhwOOToc00kS+kt9ZKX1+Ovr68zSlDxN2/p607dev4cP4v5SaKTPNgOgvWV8G5bnImhuUSZbaVlqD5ii0L7yZZ673P7exc6wKI2evdm4JzlL4f7T1ykhCBRIN/7CESP7DJvEJUdR1HahBh6n24BCpRRRGJNlNXEckgQD9qYl16qaV+/e55E052IgWA4jXrn+DumDO5y+dIXNR5/S3mdSEgQhdV1hq8kJgQNPqYwNwXAgSlMxnLNCAGEk2Nra4vVrP0AEIcPVAUejCaPxhCiMEEJQq5pepGuFaEKpVaRlWTCfz5hNp2RpSpamFHnK+toqt27c0gZiN+Y0c+fovzeXtHeyEBCFgk63Q57mhiFqk029f6Rb9y27RYuBNl+sBGGIvWUKnDeTtSssLAQ3x8oAiPA9jvxHGg2LHW3hv6LH8ZivJ4Ci1fUWMXS/WS/IFtf+PqUE+ACgcIJcL/TfDhzgBs8RZO9CK7q1iLkDxPZrNsTBIL3lHP1Oub+LNoU2irUICYa7tETSXdsmOghQImD/8Iilc+cJgEopY2jWmR4nkyn7B3sMhn2tGgsCDQjzlHSeapG5KHVN2rJywVMYQ14UxRyONOcfBCE19UMIj+mlEASdDmdOb7G7s02WQiXhxr0HXNxaY2dUI4KO9oqwK0007xMYj6PA+eHb8QxQQtcn+PhzV/n0r/w7dJe32Ln1Dr/x//xPeePt29z40F3SLOfRRx4nHqyQzVKuvfoSpYLt3X1kWUEYMJpMGQyGjI8nhIEg6Xap6poszVheXWWWFUxnU2pZEwVNpLXtid1EPk/Y2A3csjcnlYu7aLg2/Zuy3KBx1SyrkqLIyfKMLJ1TFDllZbhU59IqvXVgSlOqZs25OVBKl8a0bK0w12J3gWxzd2bN6ecEDhjM0qYxaDaqWSmVqzEtlY4VKKuC5cEy9x7sUkUR+1XO1dNPcf/+a2RCEQYdgrRg97XXEFGXrUeu6rGom5oRCrRRVwikVATGhVWKxtNGCrsh9T5JkoDltXX2tncJBAxXljg8PKKoKrpLS5RVhSKkUoKk09PccS2ppY5NGI+PmU+nxgMppapKBv0hR0dHVHWlY0SU8ry2fBGZE5TR3/ZxCN1Bl3SW6vEXlmc2hnVrm/SpuLC2g7bjjFtr/uMsM+IRQGs7alZoawrN2vEMzEr/T3rP8S9uJIzFNC6NRqUtxCzCo8+QWwZEtd5nAX3+yON9p7lwSG4f7jE/TWfwaLG3rT2o1ADWtpf7AWl+Soo28Xa03yPmjox7rdnvTee81rEcg34n/zLPlqCahykRsrezz8rKsq47q5TJsqmJzGw+5ejwkIODAw4ODpiMRkynE2azqY5kriqTZrsyhkzp+qoMN6akIit0gJw/XsL2XSiSJObRR55g0Bty5fIVEJKVtXXiOOHgYMq5c+vE2ZjLm0OG3Y5JgBc4Ly5rU3DZML2KbLZOwUYgUd/+BqOXv44QijOXH+OZn/pp5nXIu3cOyIqAqNvn7PnTbJ05RTJYJ4gS5umcw+MxYRAxz3O6gz6TyRwUJJ0uUuqcQUtLA8qqYjobU5aV8+/3p6cF1GaSpNRpqG2wlY4jkEaiN7lxzGZRdq3KhvOsqooi1xxrlqZaUigKiqKkLHW9g7rWOYuktQFYkd+Aqg1y9JkSYTgXZ69Bu/fa6HDc+DZrzLwkdtP6//xto3MmmWh00688y1leXmJ75xDCkBo499QFRr0ex0ohIsXlJ54mFgF79+4gpU6nEgTCGeYbBwTdjcDmxQqb9Om67Gqo7UxCMOx1SboJh/uHRGFEtzfg6GhMrQRJt09a6hKhURQTJYmLBcmyjNF4xNHREbP5jCLXkecA/f6A4+NjU6jKzKFHfC2o+2PivnjMXhLpwj7zyRTpcXNCNXOj3XXNOLt72xxjI7jaeaZ1vpk/88nTJgh3iWoxuE5702rfI+fmHvu9WQeKpvX260trM/PfQviY1dzRorrvExDgg7qk+qgkLFfkdW9B9PGBwROwnaukB76tSbAD2RyeCsrq+loT5ec38sDAqqR89LIfzaZFcQIaWyonEbC7u8dwMCAMA1RpiEcttX50njKZTDg6PCQMBN2kS5qlWn+aZ5RlqYHB2BNs7h1pXR+FIA5j9g726PcHTGcTs+7bUYqrq2t0O13eun4dEAz6Pc5vbFFLuLezzy//3Cf5E6sRH//05/jC736Pr/5wR3OmZp5cjhthwc+6pDYFW2Z3bvBXvvUdfnl3mz/3yKMMLn+UM48+xmB5lVFWQtijKDLiSBMMgogojnW20SChViVVKen2B6Q7x9RSkXR6OqvoaMIjV86hlGI8HpOmc+IoRMQxwr1tA4aWwO/u7nHjxrsEImR5ZZXlpSV6/T6dJNZuwGHgCJ0ltlYFVNc1dVVRViV5lpFlmbPxlFVpwKY26iNffeGzpcotIavda4LU/FkSiMBKFvoIsXvRm0uh+6a9R82eENBCR6UdEYqiRBvXtXRZlgW9Xo/D0Zgo1jUdbt2/z0zEzJUiCAXPf/ojFDt3uT46pMhThksr1BUga+fubdWHjW1L7zGdsFHYLoDSqsXVtVXme/cYH04JukuoIGEynRMFuqCPVJigx5gk7lBXNUVZMptNOT464vjoiNxEM89nM+IkoSwLZrMZdSuBoJk7+58PDM2EaAnROKB04oDOYMh4NMVGbDSSZiMNeLNEI8ZZavowg7OxCSlf6vZooGc4bkkerr0FVZW3VtxrOZJpaY0yuNKCJMfkN1SzoZ3Ke8fF0XJv1TLC/ejjA9kUWq0qTEm6Bs19XXAT02CJtvKA39QX8N9OeA17eOeIRaP/wa1aT4pwsGP+1x5We6IBCeVxEx6k+x3RH8OAvb0Dep2IOI5Qc6VLOZrSgjp0P2c+nzEeRWRJSlGUxhW10L7wJqVC7ZLnKVd4xXJYO9sPWF/ZZHdvx72PfXtds0EHl81nU27dvUs36dCPu5zaPEc6P2T9wmW+85UvESjJ8c7MGRRtzIiBhrZdwXCJBAEdWfPWm2/wRlrSf/kGv/jmK9w5mHF375jh2iaTLGe4foo0nWOjMaUICKIYhGAwXCHL59RlSa/Xpyi1vr7b7UMQMRqNdFS4EIxHx8znM513vz8gCGKdkM1Og1niB3tH/Hv/5r/Om699jyCIGK6ssrF1jnPnLnHu/AXOnj/H1qktlpfXGA6X6A8MWMQ6f5OS2vMlTefMZlPtDWYkhcqAhawrlEud3Y5etZ+txOaYIdFs8MB441koCdyq1StSCm1nEgZs9F+p41KkzoJr2ddmv+i2qro2KSh0jqcsL1jurzCajen1V6hrxeH+Np1Oh1EtqeqauB/xmZ/4NMsvvUJX1CRRRCmV7gc6z1EQhtRSulQXdqwc8qG9BJMwIAoDlgLFd37zt5lMSs5v9ZjnFUVREXRiva6VQtU1/V6fTlcT/DzNOD46Yn9/n+l0QpqmlFXFfDZjbW2dvYMD8jwz8QlNwKBHfxvi2YgOzUnzp5cEhEmXo9EUiTE0Oy8wX3Vi59OqVUxwGhh1q5mBE8Sz0fs32hLz118rdn14xuQTGhtP8HGqTu9FhfVy8i53a8IyDr5u1V1nEaP9QAcfHki+n+MD2RRO/qCaSROeAVm0F7h+H2M6FeJkMz69B/cSPjLqDbdAsE98boBBWfGuwY82vbfgIUTrOc1JCyABe/sjQgHdpINiAkBtvFmyLGU2nTLr9wiFjlJWSlGYJHiVqfJlx6nJf2TIiNJeIEfHh5w7fcE8V3pjq8dyNhsTxgmIgDTLiMKEO/s7/OJPf4b05kvE3T4/ePeI7WKP/aMR1cppRBTqcTMqEPtKTdU1XZBFiQCm+9zZOySVkpvHGXfvHvHV3/sqqjtgbe0s+3u32LrYJ51PdP+VoihL6lr3vz9IGB3H5HlGFMWUVUlZ5nQ6fQgSxqMR3SQhCiMmkwlFnnJY6vrSUawzffpTqiR84+t/wEvf+QYdlSNCGKXHTHZuc+u17yERBGFEb9hnZW2T1fUtVra2WN84xerqBkv9Id1ORyeHq3WsSZrOtcEzz8jTlCIvyLOcutJGaCx4GjWLNKoXVQtX4UxJYQwI2sFUBRIpm73qm6QttytQxEISmmjiopLEYcTacInt4zFNuJydbZzHFGhDaSlrsjJjOVhlnqUsr24ha8VsNGJzZY2agKquOdjbozvocf70Jj/zief4w+0pt4+mekl51NS5hgfaXVKE9gW0S+xyP+If/5WfZUlmHNy7w2pQMC1rlobLFJm+rtvtk+U5sg4QoaTXGxBHEUVeMJ1OODo6ZDwaGTDOyLKc6XTG+Qtn2dnZ0ZULzSK3sSGWC1eG31SOCHoSnNUWAN1OhEIxnmVIEba4f3fRoiTgqLXd+crQU5+b97lVjzBj+6XbbdImiYcQ7bbdol0OuiHkDanWINHYsVT7/CLtXAAd4ejww4i/EzV+5PHB0lycOPyB4yEP9VHLDLZafLeWlvZEu7Z10fpZQ4T/mIboiVabvqC/2ElhEENZoul32zQvAsHReI6sCgb9vjFcCpSUVFVtVBIZs/mc0HBgKMiyjLqq9D9T1KWuamdU8/2wRRCQZRlVXRGGAmmDsTwuP03nFGVGEnfJs5SlwRJH+/tUZclUDXnpe6+SB11+7w9fZX1lwLC7RBIvu/cUAleNy6/LbFMcjI/2mVS6vsBESXZGY27f3WN0cMgnXniOvJQkcYfpdApKkpcl48mENEuJw5C8mBHFIdPZHERAUdbkhQ7qk0HEZDQhCgM6ccxkNKIqckaTI6IwJkli+kGXMGomQcqad958k7VBzN7+hJCaJArpJQEr/Zjz68vEUY+0hOx4m9neXXZfqyhqqIIIFSYEUUyUdEniWBeJF5Ej1hLlvJJqKXXabk+dpP9WzoUYJXVktEkvKrC1nW0kdKP+CFFEqmYpqOgjqaOA40oyLiFOOlRS0e8kPHPlEgc/fJOiKhc2j94rZV3hiGQgSfOSyqRkj4KAWkpGo2OWOj2UAikFe9v7DFbOcOtwwsfu3uH5q89w9+htLdUJdNCaU3Xo3aWTt5m1EGjf/+ce3eS5p58gImW2fYeKDqVULK2tMJtOAUg6CdN5DkFCGEYsra4iAsjSJn4nnc+Yz+dun8xnU7a2TnP3zh0TH6Ick6EB0B8FZVn0Fl2w3wJgOOxQpRMmWYUiboiisPvbkGSBlxdO/3/RG0kYyq23nKH8zt8Yx8nbNeRoiKBNiA2dWlQBOz7vIdKI+9QCFO+s6wOta5umzAUnVGFNT9/v8WOBQmMg8R7kgWTgdUvTaeEDoy8/tIm+8xSw0cyekdQ93Ptu7QoL7+tgwJ33gtWcKAEmU1xbUrACgnknBEznOvndysqy2/y1ybZZ1xoYrI7cJhqrDPdZG+OyDZKSqhGXLWdopZXpbEIcJ5prXTiqquboaJ/hcIm9vQm11OqPr//+t7iyOeA3/t4XmZc1x6Mj1od9VFWeHBfDASMCY1vWKqSAgKPDQ+f3pJRgUlV0lzZ4sL1DZ9CHpEecJMzGU5Ssmc0z9vf2mYzGCBFQZDqp2yxLyfKceVaSpXM6iV5i4/EYIRRJkjAajSnL3CRXS+j1ujo9dCjc2rK24rXlPrt7R4wKicglhzMYjgp+4Sef4Vf+d3+R/Z17HG3f4nh/m9nhAZnx/JrNCqZZwTSfMs0q5vOKvNSpKWoJldTAYLl0vygOGIOeUgRKEtGerwAIhSKMFHEAnUAxiBQrnYDVQcLp05tcffpxts5u8Q9+/Yv81is7HBQSKQTr/R55VbO6NOTpq4/wrTeuU1T+fFvmSZFmucleKkAFpFlJXlZUdW2Ipc7BNBkMsWkBj8cTkqVTPBinXL+zzS8+9ySBKgmCCKmES2HhIv6tDt/qzoUgCCTzo0O++Hd+jY3VJeaZIqLiypULXH30Mq/88IaRXqfkpSCII5Juh5X1Fc2kzKaMRmPGkwmz+Zx5OmeepqRpSpbNOXX6DN/55ndczimn87eqF4X7rc3ztsmdELC20iedjpiVzb0tRxIzpo4Y+61YmuWd9Elom6VteiMsVhhQcZDl1FCyadgDE7vPG+8ha5/15BO1+GyPZJlxQYgWOHhXuYtPpPb4AMePAQpWMeRx3N5z29p8c2JBXLLteBKZBhOn7/Z+FOaJtjK3R+kWPzXqp3YfVOtKH1AcHC385kuCgqxUHOzvsrm+iq2JoKRWC+lgnJQ8G5DFuTbgKUzVNZNbp/KCc6TJkopyeWlAu6aOxsd0Oh3m8xnWWNUMo2DvcJfTm1rFVBYFnTjhcHLEH/vJ5/jKl79NNiuYVSXjvGRQp24hImzVrbAlIVhvK5RiNE1d4I9SgjIQPPGhR6lVykc++VEeHOyCQruT1hXHRyMOdnc5OjxGiYDZbErSHTCdzRhPp0znKbPZhCRZQqiS2USDSRLFjEcjyrLi+PgIIQL6/R69fpcoHhBEpsB8KFhdW3PxE1IJArS4XkjFg3HJk5/+PM91llCypq5yqiIlm42ZHu0xO9xlcrTP9HCPyfEe88kBs8mIdDolm6cUqY4yl5VEKIVwOaPa20hJZdKKC4QICYOIOIpJOhGdXp/eyhIrGxusn73I+qWrrF98lOUzj5AMVijnM/7mb77MUXmfSkmUEkRRQhxFnNvc5OyZM7qMpr/rvSPLM6NS0e6jWVaRF7WJhtfMSZlXzOcpVS2pFcyLOXEkmJYF25MCeXRMLKAWFhBsfiOcp5Wwa9+sszCAG/ePOBhJ4tv7rK72uXB6nU995nn63Qglc1RdU2QlFQlJAsPhMoPBkPl8yvj4mMn4mNlkwnSig9bKoiCbzxFC6ODG8TEunbyxt1g1i2TxsOPS1H0ADWvrKwPGoylZrVCB8PT89oNq05OWNNKw7k1grSVXbdbVVywtElurILIJ9Kxx2l3lBbvZV3Ej79h9vU99g7FPxewrvZe11F7TFCV6CBC8Tw+kDw4Kwu+WppzOYNLaTs1w2onxZYsWd46djIVIPEcTFweiQZNFqeFkf98HVoqHfBTNPXUQsn3vDmdPb6FMDnud8VSrh8qiZDab60I8JlpYmVrANn+/NjZLbC1abTzGzXYUxUwmI06fOucmvy1HKWbTGWqzJo4TZrMJS6fOMs/nXL/xgMEwoZ5NycuCw9EBm+kKvTDEekw3LqjGTdWVYtQ65TwvnO1BCiiE5OKlLY6PTnPh4iWGS0vUdc1sMiXPMvZ2tjnc22Z0fIySglk6RUQx87RmMp+SpjOmkxHLa8vUdcFkWiBlSRgFHB8fkaZzJpMRUip6vS4rqyv0eh2iMCYwUszGqS1EkNDpxKg0c0nlSiH47a+/yuf+x/8Xv/rn/kWSpEvUiYg6A3rLm6ydeUSvPefqqBPhyaqgrkpklVMXGXWZo6pCg3ZdgXGPBF3JLhRoZiSKCcIOQZgQRjFhFBPECUHcIUgSRJQgRIjj0MyeeOv1V3jpjesUyq1sojCk30nYWF1muLzcrLeW3kSBUOQmBYQGBUlep6TVHFnXVFWB9bCazlNQFbVUFEVGEpUUVcn+vORg75BOGJLTEMwgDBwh1kvQjpVeC6qqqGrBZJqRZxPOnNngwx/7CEcHB8yOD5C1RAjF2toys8MUpQRraxsIIRmPRoyOj5lMxkxnMy0d5DoP2HQ6pdvroGpFlqaoBdWbTe9tJcWHWmm9b2EA62t9jg+OqFXQXCHsGOovizp2n6T7pRQ8TZFHmhfaU3Zv+jTD00R4fRC2CXOrF2rjnuFS0piLWwxJqy9tCWfxaKQV5Q2bpbK+m/2PPj44KPj6OtMb0YZibPcdvTYU1jIj7Xv9xkXrTxtGnNhAE6lnMNxXAfnW6hbo+ChjjdDNtQ/rh3kLCCJ279/j7PlnEIZr08ReUtcVZV26RF9KSeJY5+opikIH5ygt7is8e4IZSyuWBkHAPM1dYJk0C9FJYcYCNZmMGQ6WODjc0SdUwNu373F+rc8k0Lrpoi4IVKGL3Zt02lYKC0z2zMAamc2SlsZaKtCc8TyrCJMuk/mcWZZSVYrpdMJ4MmF0NObGO9fZ233ALJ1TK5ilGSKeo+gwz0pm8zmj4wOGaxfI8wKygrLMEYFWJc3mM2azOUoK9nZ3WF5ZYTDoE0dLhHFAKARnzp4jCDoMe122jyduRdTA4bTg3/u3/2Pu37nDn/sX/w3Wts41tdud2jDUYxyE2sMp6tLerd7hc4/4G8sShoeI7HZBe2vG7o3Z8T5/9f/xf2PnaGbWl5UIQ1aGA4bDJZJelzYhaB6gUM5tFkDKSkfHpwWqVhR5ZpgxDR5hoDd+WZREKGpZMS0rRtOc4WCFyUxLsTbSVmI8m4wHjk7WpyWjYj5jORZImbOzu88rryvW1gbcePtdTq+vcjiZEglFQo2SJUEYsrK2ynQ24fj4mNFoxMwkg9QR/TlFUeo08yurHOwfNJHM0gMBO/pWpdUaEo+rNkciBKdPbbD/YI+KsDUtTWSvGV0vaZy/p3w1i1pYE9bm0BB93Z5NWthWoDduqB75ahF2R6UE7jqbAsMNwAJoKJo2Fo/3BIwWF+x5YL1PVPhgoLCwARpDjW8rtz3ToozLWmntA+68aNPvh3TY+Cs5IBHetb4lwH5qDd6J5kRrYOwkt9JsG91eICzgmNuiiPu37/Hkxz5HILQboU53UZsygwV5khPFkanaJSDQdoWqrLT9QercOlZa0GKzXQtCq52koixywiBEypLFilBBFJEkEY9eeoQf/HDOZDJh0F9he3fEqX7CoNfVuXRqyWP9AWkUMVW6OpagqbYWhsYVVZh3NnUK4jAkqxSdMGB3Z0R07Tbf+vYrdPsD3rl2g3MbG8yyOTdu3uKN117j8GCPLM8pa6VLS2YlQQCT8Zw8L9nZ22Pl9Jx8nlLUKZPpiKoqmE6njEa6QppQMIpCHty/z2AwpNtNiMIOQgScO7sFyZD15QHq/q6eN6E5rho4mOT8F3/5/833v/Ud/vy/+q/z8c//gnaB9XeKEO+xvJo1q9eyv3C8XYm3aVsg0FyGa0d/mx3t8Z//O/8q//BL36Q2rp46kZoijkKGvT4rS0PCMPRUOA2jYKmJDvDTKhNZV2TzjNlkRlVW7B0cYkmGlDVIXVCpzisSQmQtSeuSWZ7SWz2NSEuEVE09DUITH6C/25g9IRSRUJxdXeFgPOXB7j5HoykXtk5x4937KATHRxM2NtaZ5xl1VZJ0OhAGHB0cMjoeMZ/PmU1nxl27IC8Ksjxjns45f/4qe/v7ppaF721kaYamGw2FU96+bmYsENCL4dTZM7z95g+ogxBrUHbTJ8B5bZgfbbPKI8SOvTQ2Ab0lLUX3JQ3Pzd7LjNdoSkxbjnDQrBulx1a6B1iHsAYooEmc116p3iKzJMyRhaZ9rznXL38dP0z19LDjAxfZsYZA+xjvpOut8CZHYVVH7am1h23Oey/3+wLg0Rp5Go7QnhILYKH/Cm+k2ve6K71Rb/LDeIbqIOTu/W1WV5aJo4iqKHCeK4bw53lGnMSEga7cFQahS19cV5UJ0pHG22KRS9XcYBhGTGZjkjimKAvN1SnbxYDBcJWnHn+ac1vrFFnG9Xdv0u11OJgdszc6YgXJ1lKPnemcw/0HbJy9RJp0EbLGsrmusLstxCYCoKbf61LmGUUlWepEvPHqTV67kXL77df5remEKp/B41cpqoIfvvoq9+/dMcWDKupamb81RS45Ho1Qdc2NW9t0hrcps5Qin3Lt3RtkWU42TxmPjplNp8iqJggE+3s7dPs9BsM+nXiTJI5ZX11mffMchTxE99Lqm5vdPSlrvvaNl3jzlf89f+yXPss/8c//H3n6xc/T6w9/5BZQ7/HZrWMByrmhGQm5zfq5e5USKJlz67Xv8pf/k/+Ev/tbX2NWoqNsVcOtRWHASr/L2toylbRumLS5RXPkWW5SoihkXTGbzTmOjqnqmuk0a4iVAIVO+12VJXVZIoRgInPuTDK2LplMuIEw7o6acxb2HZX2phICagkb/YQXPnyRb3znDY6ykifW19g72CPLS47HKQfHE5aXl0nzmkoFxJ0us9mMdD5hNp1qG1tuc37lFLnOjprnGavrG+zc20GqGuuyaw2ofupsP4NCa5Y85n8lCVhZXWN7d4QMTISIegjNeIjuxMkNlmNwEsPJqRDmRz81hv6pYYqdWOCWxoLk4UiXcATby93oxsD2slUa1bvO0USHc4seW+1DKPu2ikVJ6L2OHyNOwcMbDyQs593qnZeQqTUli1wZBvCMpa/Zc42U4N+8iJwPtTnYwbePs9jgwEWZWIbm/gbq2s8LwpCdoxm9bsyw12We587gXFUlZVlQlBFFnpsSmIIwrI1R2UgFtWwMzIYzcgQBvcCiKGI6m7K5tgXzWTPGQBiFDIZLHI2Puf/gNlWeceHcOfKyZDjocf9wSrTU4exan0mtSM9e5Sge6KjlwLoj6gEJnCuqNT4r1jfWiKVODre11OPo6Ijd+xOy+Zide7eIIsFotElWZLzx1jVGo2MdpyArqkon+qvrirxQHB8fUsuSnQeHdJLblFlOnqX88LV3yFKdoXQ80lXrdM0BDVYP7t1lMBjQ6yRsrK3Q7yVcvPIYO+PrdOKQeVm7VWbBIVdQC7g3Sfn//p0v84Xf/gaf/NQL/PE//ad4/rM/x+bZi8RRYsaYhxw+lfd/Wly3PivYfFdIynTGzde/wz/8n/4Wf+fv/SOu74wopIs28VpRRKEgiSI2trZIy9qtAeU/xtCXrCi126bS0tx0OiMmBKEIY53ELowClldPMzk+QMqMoqoZH+2RFwV37m7zerfHz374GT3Xhn0O0GojVSsgcFXWpJLEIVzaHPDhn/gsX/jt30PWipWlHvPjKYKQ8XhOUdZkZcWkBBEPGS6vMZtNmI5HLspfpxApDDCU5EVJWWSsra3x9htvuZoi0hullmq1tQP9AdJ7KBCC9WFEdzBg52CKFF1sius2J23nrQEUp6pqrMotxr55sFZBtQ3fvhjSgLJ9nlqULvylpU4sH+/5wpM8Fk4vfF5Yra1xUv61rS6+110nj/cNCo64ej0+ARQLzxUsXtc0JnwFrd2tRhTS49o8xCXCW5AM8K/zn+eBjg8gTqLwuAP3x0kGymGKazMIOM5K8vkxG2ur7B4ft4rA65TMJXlUIEyZxSAMCQRUJgleLWtnZNavanyzvVUYhhFpNiMwmSeVbBaJriQmuHPnFqpSzOdjVpdnPPb4h9jbzpjOag5mGR893eXzP/lJ7ifnmKSly4Bqxd0wDp2BGQMOURTz05/7Se6+8Rqvv/Ya60s9DscF8+mcssypCeh3Qm04zOfIO3fI5jNqWVHXJVUlqZUpcSkVs8mYKs+ZjmeMjka60llVsfNgnyLTxOLo6JB0PtclQENgoolodOMm3aRDJ47p97o88aEnufvyF9lc6nP7cIJ1n3RLxoyPEoJKKYpRxhe++E2+/tVvceb0Bh9+8Vk+/TO/xHOf/BRnzl9isLRKGJn6DA9bnf6OVQvbUGgdsKxypsd7bN98h5e+8bv83pe+wvdefoPtcUYuFaXShXcUDQdo12qAIgkCtk5t8do7900eJ+/Ryq5bZVyapS6MoyTpbEpYaTtCnESgFFUtybISRehUk5OjfdIiR5U56eyQUgYmTbaRPA13q9WJhoNUgAoYRjWXVgWv/sG3efP2PqiKYZIwn8yQQcB0PieJQ9KyJC8jeqtDkk5COp9RloVOI1Lk5GlGmZucX2VJVRa6BKkS2mHC2hNU4wpsmbLFVCOLfL4AIgGn1jrUUnAwqVHG6++htE+g95Ij1MIxWy3i6SQLjAmvmbdWSvRm1JrVsYARDhgc46rPtEDP4YsJ/MV32nkIOCwsS9/RyGdo3TCcwKWHckUnjh/D+2iBt1IeEW5topOdaGi197vjyBa2qDIspHmGfq51hm1kCD9u2u+XP5hOUmj1prEn+M9sEl21X66sBTt37nD+1Cavv3sTkC7jaVVWFGFBHMdEsS4DGSlFrWye/kZtpNNbKDeRTapg5YzAZVlqfXNdmy5or6F+r89kdEi/N6QcH3NwfMjFYk7c6RKKgMPZnMHKJpdWQyZ1yLyw0czK1ExRRo0QGGkhgEDQ6cT84j/+8+w+eZVs5z4iUTCaUVUZUlYImVHLHlmak2YZVX1MUZjgPJPyQ0ktKYBiPptS5BmzmbZ76BxENZPxWNeVqEqOj44o8py5CCAwdY0RBGKbbidm0O9x6cI5Hr/6CF8I+1zeWufO4cRtfO0pY5kFvVyk0EboAshLyeTeLnfuf4Xf+Ue/y3CQcPbcKS5ePs+jV5/g3COPs3XuNKubWwxXVul0B0RJYqK9la7dXJWU2ZzZ5JjDvW12t7e5e/0d3nnzHW7evM297SNG84KsVhQKSqmz6Er0hpVKl+206zA0KhyCkJXVNfYPXm/N/yJ3KI3Hmgh0nqKySCmlNDW19TV1VTGfHSMw6TqUYjabmGR4ASu9iHmhCMIQap13y6WTNjELUikCoW0Xq8s9bt4Z890v/AYHo5TN5QGDbkJY1cyV9viRUcw8r0iGq1y69AhBGDCfZxR5QVlop4u61uVO7b8sTRkMB8Y9VcdfWKnZVr+zAOGoxUP06/YIgXPnNhgdjhiXAhUZUq302lBe8JlNZ9POBfTwyF+HD3Y+nPrvpCjREHTVTJojJR6gQMtWoJ9hocXsfYSTZixu+1jl983jURaIsQ3otc/2bj4Bre99/FhpLoT/ofXQ9kXK66Ym4d4Nyi5OZTJ5Nho1Nxn2XvP2fllNX1pwXL2wTxEnfsNJGv5NC4N0Qr/gfQ9j3njjNa5cOo/4g++ZBa11wrUXsxDFsclXI926rmqdr98FrjluyACbWQFCQBwmzNOpDmIrdBoAoXSEb683IAgCkiQh7nTI0im3797kuaeeYefBXR3YJAMmxwdceeQx9udz81rao0gJzYU4UDDlOJMopL+8zFOf+hSPf/mLHI/2SPZqAubOKK4TtOW6jKWCoiyopVZvWHuJrBUIyXymC7RnacZsPnPjNE9T7ZpbS8bjKbUJ2lLK1OiVClVLwkAw6A9YHg7Y2lxn7fxVeuUxURhQykUvcV28xkoMUkCtoAJyBJmCSEqOjzO2j2/zwzduE4k/IAmhE4UkcUQniegkIVEU6HQPYIrySLJKkZWSPK8oKkmhFJXSwW+lgkrp50lMPWYsGDQb2NKDIAyJgoA4iugPhmxv7zYSo3kXfxcpqSvD6RhpiaoLLVVp1tfto7pKneTdTQLyokABMZLza31yiY6HUCZDh5RgOOswDBFSK3GEEoxzycfPdHhk8yP8x3/zq7zwzNPkswnDXkQYdLl04TzXbt1jWsP5c+d58kNP8e6tW+RpZgzKOnVIaYGhKE2OsDmntrY4PDgwKjHluHfrbeTGzON89ReP1RN6PXcCuHT5NLdubpMpz8gMJr9UQ5EWaX+biz4JDg0Y+BLMArl7D8mg8UkQjRTky4JOSlEuYFrTAAMwVs3lPcRf674kAJ604L2U38+H1Xn+UccHkBQWkUbr25QAm3RNYNFJta6z91qjs6PoopEQVOsZbcLf/G3nU7Ko0wIIr7sP0yG3cURhi9K4B1q7IlpFYc0iYZzw+rVb/NzPPmlES0vIjA+8Bwygi+dYf3CldN1mOy5KWpHdGyelwSyKItJ0ztraFogZyuRLq6qaokwZDJcpypyVtXWydM7R8Zg79+8RRjG1VOxmOdQZl9e7vHx3gqKphayUIgy1d5QLZgu0ekkWOYNzl3jquQ/x2ve+TVcEJlkcbgMXZUlV1lCbqmW1rQ+h30UTG0k6TzUhyAvms8zEayjyTIOFVJI0TUFKpEkl4a+Bw0PFjXevszwc8Ogjj/Ch5z7KKw/eZGvY5/5oZgit8hYHZlMZYMDYKcznUrMTGhCV+ScVoqwRaU1A3nI88Dk0+88SLKmMwVtpZ04D8bYujbvOcnsO9IEwCojDQNfeSHrc397R93lv7x+y1utKBjrNRhIoNmLFcS6RtU2NoaUaTSwFK92YotAS5tlByGOXNrkt9XyLMECaims2Hbfds6EIUQSkNfxw3OHqVo9/9k/+MlJmXHt1j9FxxTzosba6gggC0qygUDVCSQrjeqptCBmlqYNd5AVlpSWGNJ1z+tRpdrZ39DtZMLBjJM2AqUYxo9r/cyMbAEuR4srjV/j2N65RhTH2doHnjGDQRdNhLTGrBSpp61kIvHXkAMgQWVuC2K05O2kPo7h+mFuzCNu/LoC/QwHhrluANawnpv3dBZra/wm/PdpfLBF7n+DwvuspAA8ZA6PEUe6TQ0nfE8jhnv3dwdxi++ZFfWLuoabw2rFz0sgGlk2w82XFRctd4HEgwqtd2rSD/5v/zihEGHLz7jar3ZgktDnudQF2bWSVTn+qayjofzq9hQaE2gBIw8HYYB39DIXmJsuyxNpQFJhAuJqD/V1WlpfJspTV5RUIAsqy5Nade9RSGxAP9sfQ6TJUM4ZJQBgERGGkbQuhlgyCMGhqM4sQpQLyPEXEMU9++kXW+x1WRAF16XS/SimnCijyjKoqTQCfkSSU0h4lSlKaKnNlWTCbjpFSg0ea6QylspZkWUZZ5lSVroaWF7lJWqcTDB4cHvD2tbd58OABV68+QtFZ4cnzpxbmUTni6wi2gtpy8wpKBSVapVQqKBTkClIlmCvBHMFMCaYKpgpmUjGViplSzKRirhRzqUiVIpWKDCiVogIqFJUyEoIBBCcpGOLi3AKBThwRABunNjkaTXmws+ckR7cdREMS6loDqI5vgUGouLykbSF5XrQ2kE6TrthaCkiLgkjA559YY/3ieSTC1NfQdgRXeS8INFMQhs7WFkUBk84yn/un/yx/9l/5Fznc2yUOFLPJjMk8Yz5PmaYpeVESxzG1lExnEzOHWn1UWANzpfdCWZaURc7S8iqHh4fG9qEcs9HUwfA4c199s0AoQmCrF3Lm7GneencHFcY++WhrEE7saUNQW1oDewYHri0CIBauFN4/90P7Aj2LyiPYvnrQUi2/f8LrhGIxD0P7qsWWHH61pBo3Fo5DeX+o8MFAwTzNLV7PWNzMw0n23L2MpzNc5OLFQ4ZAtL41/1f+9xOD4bmSepNmtTW2Bc0hvYfnrnefvY4g4HCaU6UTBt3EeU/Ywuh1VXsboHSgUBl/bOkyozZPbBQhzSQHQhPuvEgJw8hdV0vF0fERWaENebfv3NQcogqoq5q8KFgdJjxy5Rx/8NI1VHrAqZU+YWRzHYUEhiAgrAopMAVVYp0Sm4BTz32Si889zdm4Qkqj3jEqm6rSBuPcZYDV6ZptqgIbnKfBQtex1umR9cbPs5yiKlAoyqKgLCtXqtTWO0jnKWmWMjo65t69u7z99pskEWxdeoJTa+v0oqhhAh133vi6a+IsPIAw6iQDEP7fCvMdAx5Kg0eBBo/S+1u66xvAseqiGqg9acHn8nzQ6iYJURBw4coVrl2/yfF45GwOzcXNapBOxaJPrnVhvR/QjSKyLF9YO0IH/C1HpGXNchLwmefPkHeXNYEN0AWdMG7JQZP5FUSzFsKQQb9Hd7DC0b23GO3ugoRRWRPEEUEYMcsK4ighihL2Dw6ZTGYu4V1Z6FrkOgFkSVGW5EWua5FIXb/cMlRmxbQqrvkMoQUHFmhDLODy+oAo6nJ/f46yqUJ8NFgkthYExCKr2tznn1mkIZbRbNE5RUMfvL/NI83vaoG6CcMw8JBDnGxnkZi3wGGhkeb39rn3KSQAHwQUFr18Fp4iPQ5nEUiVd6OfLdVvyHmOtcbjBOSfgI624GJF9UYcsz1og7pub9GPuLXFvAVgr5JBh9v3H7CxsuwIvTL6cqlqlySvqnW1NT9LqlI654yjZg/jUswRRTFpOiOK4masUBRFyYPtbQSCbD5zd5VlRlUViCDmW996ldff3efmjXe4cnqN0EgIuqiOBoIojEyaC5wH0q133kbVJUF/jWd/+Z9iKhWyqjQHbkaqqkudz6m0UoKRFFTVUGibUqLW/2wpUql0/6tKq6S0R4r2RCrLkjzLTTZNXcZ0Np+xv3/A9Xff5eatd3ns6iPk8RKPnlprrwFvSC131oCDIdoeJ1+hqGkAwf/ng4b+JzwAEFTmuwaBRiJoVEeq+U8182aPQZIw6Ha5/PiT/ODV18nyvDnvXWs5VmnWspUmt3oQhopeElNVNr7B3qHoRIozw4BZVnF2OeKRK6c4LBPC0IJ/oD2AbPU9YeMXAgTmPAErw4Rur8O7r32PNMvJCklaKE73e4RBQFaWhElCEifcv/+AIjMSX5aTFyVFocGgKLSkXGQ5a2urHB8fm8yoXl0RN1BuAt2QLOQYRUfmK7qB4snHL3L/3hGjMqAmcATEL77l9rMvbVhJpEVnlE8qvC54K81X17T27mI6Gv9cy5yMSwxqwQThPtO6SxlaZpsUbqm/v0OZWjfNaz9Mlf5ex/sHBc+I4UDZvZBwTLBVufmHVf3apE9+J61R2A6S8mdrcYwfMiyLoCos99Oi9wuNLd7jrtET4oxPLe4Dok6Ht66/y4VTG54BtqmRYO0KVVnpLKkGEKQ5B42kZIuJK/fMZtzCUMc8hEGAXXRWjTObTiiNcVffUJvqVzXTVHunHKaS775xg8unuiRBqDd7GBKYz7bkYmjcZpWQ/OCH13njW19lcv8mv/m3/we+d3ObStV6RpTW0Vc2h1NdURuVkPVe8Te5s7OYmhPKBO2VZYE0qjSdLLA0QW+VBhwT4FQUukJamqbs7+/z1rV3kHVJsn6aK2fPktiocRqGSHPkmkOya0i1CDYugtcn5jVt0HDfsXYD+5stA+rdjy+tGKHfUJyGvum+BIFgEAacPXeG3nCZl1/5IZWqPDBbWNf4G0lHpJ9fiZhkio6qUbJuVrXQnk2bXUG/E5CVike2+iTDNSZ54taydbt26iOjTkIIwyTovFhnTi1BXfLGy69RA+O8IAwjalWxO5pQ1ZB0etRSsbe3S5plui5FWSHrirKyxaWM51E249TWGXZ2dp2qsRXFbEHUvK1Vu7TpiInXAYYRPPWRJ3n9lXcoo75RB/kA0B5Pf383mRUMLTohXZwk0j49afH8ThKw9NAH+GYdWHW3ngdlaLxwipY2jCwAmgeUD6XrnlDg07PWyy8OyI84PmDlNe8wvbCoGyi7kNuo5AkD7/FW3rXeeQU6e6VoRLlGzPPb8obCe45w3JAZ3sU+oZeZ8BsT3kSbiXQTjiCMIt6+tc2nPvoRbWRXOsVAIAMXsxAEIVVdISpBhPYlF0KYdAbWT9kazNvkQGCNpMKoYaqFMVGoGrIs1aUQVc3K6hrpPKWWJVWliAP9rDfvTumJfVb6MYe5JR762YGz+TSujXK4yd/4r/8rZnsPeOWte+wXleenrftk7SO6TrIX0mMNhKbwvTXCS6Wlptp4XVm1kn03lAY9P9WIlUoSCbKqqcsCWWsCeOrsOa5t3+byxhpv7x16C6W1agy315xQAoTEBSv6h/NchFYYqUePXcv6+pNiv/UkU80P7fNAHIWsJgHPPf88b9+4w807d5w9YXHfNgTBVAZTkkAoLm72+e67OaeSkNtKQgCh0Ju4F8AzW12KSoAKeebcgHvzLYo6JgiMa6vdS9IyEsqsAUMmRUAYhVy+uMXscJv7t7dRtaKuas5tDChlwGRSEiV9BoMlpvMZ09mUqqgALTGXlfY2shJybcqILi+v8OD+242qUVlpqg0IjviZOfFMMhoUBKz3BJefvMpvffHvIeNOQ4QEpsSoWQOG+Ch/YFXrg/ld4FTbwvahkQB8TyHf4Ozbi1z7NIS9cYZQzhsJD+ytXdN6GLpm3HiYh3qLw1JA39XZEt1FZnyxX+8XGD64TQE84mwNzaZTfgd8RPX+2fv8i12fHRGyRhh9V3sbLgqVyunJH/bs5qto/vo/+2Pu0+gFzgMUIgjZHWd0wpooFJ4eW7piLNojxxRqMTUUamt3MK6pFhz8PjhOwoxlGEZk+ZzIBRjhWAJZSy2FKKW9eISgkop5UbI8HFBLxYPDnIN7tzi/1dOeNza9hdB6Y/tdB8pBkPQ585FfpFh+klJF1Ep7eQQK+oHmROuqURvZvgpCAjHQI2Q3vKzNmMjGQ0lKZ5i2AKHTgGjbS13VzlBfejaG+TxlNBrzYHuHsiwQS1tcPLVF1wRjLSwFn7HyJIiGm/LdRRUNt29jCnwpwv1m21i8XjVr1j7HX59+75aTiIunN7n09HN86ctfYz6fmVn1fW2and8kY1NozyM4s9pnMs8521WcFjXnI8WFSHEpUTzalXzk0jq39wt6ApLNK7w+2QDDBISujjXgbAqBoQDGCSEMGHQE58+d595brzCdzslKyXNXNrm0uUoYCOZlQdzpkHR7HB8fu5iEoiic+2llPMrquqIqC4SQBEFoUoGrhomgkRYw69/q2htX0GY8BYoOikdO9QmjmJvbY5TZH26POgPyAidquPP3pAP4TGlb49/s1Ibu+WCu97M5o6zUv9h7X4BYoE+Ly9jVBVeeE0/7hsD0xv79o/htS2NOqOPe4/hAoLDIkL23CKCwdXzdUhd2+SvXQAMJllNZ8FhS7Y1i/7a8Czx4bg+eWvh40ppv2Ge3Thwn9RCOwrYtow4HR8csd3taLWJdU43UoKzRubYeSDWyqhsC1iibNRGzzIbHlWvXVF3aUhubfeWWISFKezuNJjqxXF2WlHXF4WRGVUtGacU7b17jsXNWpxy6uAT7nhYcAqNXDrodnvncz/Pki58jICBEsN5P+JmPXiAKBHVVOYJv311SoVTR9M4aEc11GhRMoSHjuqsN59rm4MDAqpOq2hnry7J09a4Pj47Z3d9jdW2DLFniiTOnjcTjrSFhV5eWxRQ4W5WjRQ/77H4TjjloVE/ioffZZaXdUhuG6AQgCK06Orc84NkPP88oLfjOd79LrWpv3bb13HYdIHU+IiElyzGsLXVI5yVBlbIVSs6ENWeimjOR5FxX8fgjm1y7NeLKqTXkuRepTIZc49eGCAP3EOdwYFRHKA0cp1Y6rK5vceuVlxiNS0oJszogFxHd1U3i/oBOb0BV1YzHY4rcpCOXWipUFuiNWjDPM4aDIbPZ3NjWFo3LzbppXtzfes2+DQUMQ8FHn77A7oP7zGpdOKgZO4/o+zZQx1z6Y2yI2AnLtiYwwt2H23tNg15DC91uxtec9sOO27fYFdrua+uMpUWNl9FCTxwY2bucqr4ZDa8/fxR0NMf7BgUfe09Amznp8dTuu0fyG6TGGwfR8kp2m7KN+u32m0FoJq455fmbewus1Za9T/kttXg1r0fefUKQdLq8e3eXM+srWF9vCwg2nYU0Ub612SS1cV21tRge/pz2ERjxHlQTSuEBn/PxVoq8zE0AmeJgXpApQVnDG9f3Ob0S00uCpp6CUxU0nxE6w6YIFGEU8tQLn+TU6pBnzy/xH/wbf4qV9XVw9SA054rd1HVFXWet/lkbipISWVfO0Ox+V7hKdHa8dFGiyqkfyrIwXGdJURRkacre/h7z+ZT++hmWl9c4NRw2jJ+dK6cDwK3LxfF2m84n9qL5LL3r/b+tf+ohvz+UEROs9hKunj7FEy/+BF/88ld1llCrU/eBgIYpCISONg5RBEpxth8iREggBQdpzUxpryiBJparqwnJ6jJrZx7lxV/9J5G9NWw6E+2GLBDooEWd9kRny9VB7YIgABEGXDw7RIiKV19+i/vzipkIePnWEW/t54yqkMgETo6nE3LjmlxW2g21rkoTv2KSQFY1WZ6ysrbOaHysU8hj9oEBBofAbgwfxmjq1B4hsBFLXnj+KV793utUce9EQR7RYlY9jPGYSWdVcFvb7oM2LWm64q0naAGJI/6tHx5C5zyOwV+vioYpaH63IPBwzr7Vy1Y+dxsSYJf+e3g4/Yjjx5MUFsDVklThnW6BdQsJ2wPvG4BcmwtIbxtVD7nPfffvOQGIHlz558RiX2ixgv56sR/DJObOwZjNpT5YbtnpSb1gNuNlUTvCWDfXqEVvqEZKcIspCIjCmKosiEw+JQKzfFwfF8md0JyJUgQo3rqxRzXaY7NnfNNNfEJgXA8xxMdp3xSgKlbW1vn4T36a/+yv/iXOnb/AN196h7IuXYyFfrx1KDT8svcesm4M8FVl3HHNu0snVTVpQmwyPZtRtio1cSlLo5Koai0xzFL2D/YIA0E9WOaxs2d1ISGPqLSOh+j2LWd6YkEpsXANTtqQJ37Hq6blNe4e2QBvEMCj68s888yzFFHI7371a5RludhTrSrApMIQilBog303gEApLm90eTDRac33cjiSIdt1wP0qZL8O2Ti1RnD6Izz/J/4Mvc0Lhgj6rpVBiyGwdTuEKQoVhCFRCBfPn2by4Dpv3tinkoK8UozKmnFeczSd0V9aIq8K5tmM3NQhr6yXnbQq08oBflXkrCytcXx8bGxRyuFA658lYW5jtAEzAGKhuLAScu7KeX74wzuoThcTGWbe0bMDeBtMtJbCw7llu/ceRh4sc+jzG/5awQC528uiTYwXaVz7nKGhreXo0UufEXRnfJWaaOiWPb8ArD7YvJ/jx6rR7D/ITkQgTupSfat8Y9Rti0u2LX+8HX1pIfvCbR4B1faMBZjwWAQ34e5vAxJOsvABZfFBCu3nLUCIkEwFiLrWxMnaFZwhr/lb1ZKIGhGGgMQE7joUt+vIvkpju9UEIo5iijJj0FuiqioHBMosPJQulpOEIWv9LlurfbaWuqz0BlTjEZdXBK/+wfcRw8dAnEabzBqDo19EJHCqhRopA9YuPsdf+kt/md39MQczRWW9nZQXym/6rZOvNnKgTt2gc+nUVYmk1vDhvLB0qgUXXihqneqUWrO9joOXBIEkNIZRpQT1XBOhTq9PWS3zzLlzvHT3nvbGQuBSXbsF5He2ORRNmhW9If2NpBbaMJ9bREGYqNIT7J+3jhSb/R5PnznFR3/ic/z6b/4Wd+49MAFp7d4EQFdIEqGNmqGAAskggEkAj5wZcPcwp9sJuDUqKYSgVoJUQEdIhucf4V51jgpBKHSwZV3ViEjnPFK6O16N5mZYRKCliCSE9VOr3H7l6+yOC6QUzLOcioA6nVEpXdBHJBFKmWy7KmikYJM1uDY2hbIstRu0CMnSrLHB0UgENiGg8ofcIWwzloGAbgBPP7LKdJ5xf1QhByHK1qu2hl+7uxRufjXRtWvdzr27zQNyU2hKYaLj2xRNXyvQ+ZRcSzg1tyc+CjiRYuJhK6wBrSadRfPXPONEYwvXeqiyuK70eUdx3tfxY4OC2x/Kei/gRlkIGqnGdtg7mopID0FtS2lahNz85m1KReM5A4st+UNm71vY4A3GNr/5ffLkTV/1JAR0+kvsHo9Z7nQ4THXJRBEEBI4bFghRa48dYZuynBpuc7jFZMYrELgkb0rpmgy5BSQEipowDOjEMYNun36vSxJFxEFANwpJQsm4KNgdj+iWGT/1scd4/ud+ieNJSXFtzF7ZNfPi6yiFfoAFSwWImpXNUyxf+ATv3PoSwriRBgucXCAgsoTRbKTKvB8Kp06zYOIH8WkiEiCFREgBovY4s9DQckUYKqQMjMpDz1hdadfYKOmxsnWap+uS1+/vUNtN3loLHnq1tqXl8ha9SB7Gx9lxWtzhJ8HGrRkUSRjy0VPrvPipz/LuaMIXvvy7uk6Gv3vNskyEZCAU/UAQC8iETo3dj0LmSvH4hVW++sNjcimZ1TqKOggEnUBwerVP8PhPUYoEIUojxShEaDPtCufJpzsXaHtFKJy3ToigE0OvV/DNr7zEpI4QiSAOQlAhEqEDDcsSEYWIICSKQ1M+NSRAIKUNjNO5iIo8p9/rMZqMmnxHVlpu/We6ZVNft2ZJD2mIYiWCj73wJK987zrzsKfn265mLzLcrQEPr52rud3nvhTpvreJ5wni7K2HxgyO98k/mjl2EpByHV4ABtXiXZqlYX9vaIRqloxbPv71jVt/k0lOWKbtfaLCBwAF4f3f/2u64i265uEGVb2Ot4i+J4+1W6cFmSJonuYHpzT6s8Z91CKFx7dic6s2DQcPwSOBHcDFd/ROA5B0u+zuHbLU7XIwT40x0oKBMJtQaIJo7gkCf1OaP1acN/8pi6ZCv4xSkk4cEwJXL16iN1gijBNTvWzCdDrhcDyirHTRH6FgLUm4Mow4OxCko112X/t9rr74OT7fWeU3Xt6hNmMv8HzWTV/sPCIUURTwic/9JMtLQ179ztc4PtilK3VQF2a8I5NoL6z1FpkrRe1ht07PUTmOS2ODdFyYRLq8MPg2DgfAhrgJiTTBV3YD1XVN0umhwpgPP/YEkaj5wd0DpOMFArfxW2RmYd2ZBy0uhoesjQVAcEBjP3rkQWhG6ZmNZT75/HNc+ORn+A//7/85x6Pj9j5wREsRCkEcKIYhbCSC26WiY9ZMP4Jzp9fZ//p9RnoCiENBJxQMOyGP/sTPES2dpcnJatacCFCB0jmmlNJFdqSOmq+NtBBY1aQQnO4rZm/+kKeeeIJ/PlrhpXfvMw8HiOVNzl1+lIuXL7G6tg5CcDw65MH9HW7dus3d23c5PNwjy1Mkeh0KKZFVzvL6JuP/H23/HW1Zdt/3gZ+9T7jh5Vg5p66qzjkhZ4AACBIkJYoiKcq2ZGmsNbNmxp6xLTrMsmet8VrWWGOPJIuSJQaACSARCKDRABpodAPoWF0dq7q7cno53njSnj/OTue+AtCN5Tm9ut695+6zzw6//f3F/dsb6x5D8HZ+GwHbCBUORSuLUKKIBewfERy7/RD/8l/8gDQe1mHRjun7R2tW4f0mc4jDjQozqfAMHzNggJIqefocr/GQXVdkk+N5VVQYAl43BlropH33Pr+c03hNr91Tlf6/Q4YAv0iWVP+D8N4mPOndHxCvYwaoTftMvLzyHrEynAegA2vQfdA3K3ZE5T1jwdfviA8Gph+DpifXDhOlYR3lolxIeVRDqjLxmM3hIsrwVFGUAF8IoaVgw6Wle61eIBZQTNtVQZGlBDLg4N59HDlyhObQMPPLa1y6coWVhXk6nc0ydXWeYdNk6ZW2lvU52xdcWhO8vrjCT87O8482exx5z68TeRFhQpZSpNRHcxp1W0hp+x3Gktvvf4CjJ27nyoU3uXT2ZVbmrpJ2O2WoYZ5CoZBxyEK3INXgZvY3lH6DzFsopZnBnVilmYMqEEpQFB7npUz3nRVFad7Q2oJZ7Lkok6oVUY0LquC9d95NXbzE81eXyM1Q6uPlpBlvSzeDsuDAZSUMvz1i4NagkGHAqPSvHBxt8uE7TvDQZz/Pv//SX/Hm2TddSLJXjwAkgoiCRgATseLQZJ1r8ylDgSAvFFNDkrgW0e2lJEXBaCwIpaRWCzl538McuPNRm14bhPUXGRCumAo1/Uvji1Elk5iqdXnvfYcZ33EATn+N7z7zCq8sbqDCOs2RRd68cJnR0VGmZmeZmd3Ojl27OXz8Vh583wdoNoegSFhdXuHC+cu89tobvPrKi6yvrxPXIpbX122mXJciW2vVejwqAGYWsihXt0QxFMAdByfotwveut4lG5ss6c+fNp/n+zOkb7rzdkxkmpPm8RiBUyK20kaFYrbwHEcTg+xEUxCWbXmmW/d+VXmHxxIw2t5giyr+hoGXGouDNd38768puBcKS9BV0AdPBdIEaJaKx/hNF/whogLLwvvuI72/kvwGYVQkrNWnIpH5CxtThSflmUG3JfRvNuxHmKVv/STNkTE6y3NEQUBqJDFVoIrSbl9YZlISgMncacfEMCIpbUy3KGDXjl08+OC9HDt6lBtLa7z40suce+llVldX6HVb1iYvpQBV+i1iYDyAsUjRjEAVkjaCLJNcWkr4yU/eYurefrlZyQyOcuc3+H20TEoZrUfRHB3i2J33cOyue+m0W3Q214g2r3Pm+ed44/U3udbP6ej0yw0p6BVK25vNLmBV4XtSSKwq70uQxcAZV8YcqUofjSqkpzXiRSzFvDAPjz5wL7X4BZ65uERf2YPm0AOGNEKZR1MmdTEovUFJLyCfgevSeH1wUqVEWepQCCGZrkV88Phh3vO5X+Pxp5/hG9/+LkmWVqRSi0Ja26oLRSOAXcOCw/smefL6HKM1WMvgxGyDVtJjeGiEYDggFBn1oREO3P0Qe4/fVzLyIgd9zGqhCr+Beq4FRVGesleoHGloWkoCIbnz1r1MHbqPx/7lP+cv/+pJXplfIykiEH06nQUKmRMEAcFbEVEQE8URUa1Oc3iEsfEppma2M71tO9u2zfDQo/fyvvc9xML1VV555SVeeOklrl67RJ73ddSVJkEk3MS/4l+CckPmZE1x73238MyP36BbGyXfgo7+ZPsMxjGBSqyPwUnjQ3C/eNYkPdtWSq+Cqw/sZo9F+UpPA3FVaNrT37cI8Z4grByeWiIctC1Rpc0KQ/CaeTPn9s+73v3JaxVhS9gFX0FqA4aDDbd/S25cCG3YEX5/He8TQnrqh+eoVgZw/bc4RqK88TWLXFTeXm2UQNjPPjAqFNKAg+OEoBT1uM6mCKhFIUmvD0qnIhYFhRIIzSAKCoTQsqsspUIhpBUqkn6fUEoeefBBPvWpT7Jj926eeeEUf/6N7/DWG6/T3lxHqdLebuLJi6IgT3LqUnGoLvnw/gb333OQ0ZkRktYK7U3FxUsrXF3qUKiCmckmb19epNB+DWGI1fJdxyANaPtUq7T0K4RgaGSIoZEhphrbOH70MM/9/n9PEQiOzw7z9twaE1HAjV6GFCEondoDCLzZCqQkCmPSrG8lpKIokFIfIF+4+TfmuFKyK6Aw4ZqawclyI9xynvHDczkP3fcos6On+PYrl2gp1zcnOBjtTDrsV+V3ty4rS9LiN5r+rPjgMxftfJyJJZ84eZiP/vpv8vRrb/OHX/gS7U4Xcyy37xQ0V4iiJmA4gNsPjhA0y+NDG6FgIVWcODTD2fMLPPCJX2Jo5zGKPCdqDCGjGKVDf5ESVahyU2KuELLU2CT6nGgEQhaoQvsARXkKHAqCQDA6Ns3TX/xjvvxXP+Di3ApDFKhel77eaNhHWNOgEhJM2hQZEAUBMggJgpig1iBuNKg1GjTqTeIwZnhklF0797Gxuc7G5grtTkufulYdY5/myhYrAgF1AYemJAcP7+BL3/w+SW0n7pBMFzDg07DBcIPCJdDrXy2jUN4uZbRgqKwpxvcuCEvJ+jfbXlc/SqCECzXWmWyqQoTHlJxgUD5bVmnZh+uN8hiQr2UbghLCDp9zrluCZat+8bOvd24+si55qovDM8fY5ec1zplmRLWMsAYZ2/CqKiRspS4duHknXjnXxkHvgVfK42hevQOMzGdmXqHq4tfvFBIaw6MkK0vWBALat2Kk36K0nxvXghKizOioFFnSRyh4z0MP81u/9RtMzU7y+Pee5l/+2z/h4oU3SfpdnVjP7BB1h7FIKYmFIpCSlULy8rpiZ5JySyhI68MsrSxzo1bn+KPHiHs9iIe4sJyBDBG4M4ENKFqmYPNGOZOD9T0ox/yFkKx3Ax46cZhPfeRBfvzcaX73Y/fxlSdeYKWdcb2zTiBD0G2WZt68cNwgkCSlVxpFGYUilIJC2eSKQpRpHoQVCsr5KLyM+eQgpCxDI5OE773yJg+evIPf2raTrzz9IvOdZGDaPe3IDgB2XiuU40k0Qpo3emYoHA0FwJ6hmF968G4e+vSn+doTP+avv/k4m922jjbyK1cVeooE1IVgsq64484dPPbsKnGA3omsOLRziB/+5Aa3PnAEUR+t+ruFtEAUBOWxnUIzTac+lxK5EBJEgaB8Rqhy7BAB519/kx9/+wckmx0emY1Z7PR4tpWxXpQHChUUmulAIAOKNCdVBYXQSKChQOqU3EEYEYY1wrBGEMSlhlIo4riGlGXCx37Sw5wWp2ccn1NIykCGsVDx4K3bWVxY42o7IhsPUDqDrwVlTw8za02jJgPVamAu/Mft7FjKsofdiK3hx5UvymJ7xfnsD7/3ImXoSrfNNNFEwVXb6ukvek1uOcHNx1+NkY7p4Y3qwCD8jOudm4986Vv/6wN5BZKtZOWB/EAF7hddl/lpC8hLO7DmvdYxeRNGU7nhl/fuW0AUXoqMasM0SBhbu6pUakh4aHiE1dVlhMCGpCohtF8BfcwVOsyyKMP3sow8Szl27Bi/87t/hx27dvPE93/EY9/8FteuXSdN+/STHv1+n9zoyELgzBOuV728QCCYqkVM9BP+6jtv8cKlda61M0Rc53/48Kc5est9PPHMK4igjiDTAGfAX/exUFoLwWoEwiadUxVBQMcpoUTM65eu8E/+q/+a/X/873nz1Hd45L5b+OJ3T6NQNKQgyQoCbw5MKGSOIs2SUpRSEiWxjNQs8FL61QZKG0HjQak3Dkrb6rNMkCR9nnjxNU4c2sevfe5TPHfqNKffvkw/yyvPaW5vSdAznpVzbIQRMEqE/kc4OtO00JRwctsUn/n4Rxk5dIj/8d/8GS++/CpJnmgG5hOeVw+lEhxLQS1U7BoX7D6yi0tfvcJwKOjnkpkhkFlG0pwlbI6S526NmDQYSmjtE7SpDeu7QQpEoZmSNRkqG1BQ7myXLG3mtFo5M1PDvDy3xNm1lNVckRWqZOZ6oGpBQByGBIViLXE0oVQpAxT6XIckyYCOFtwCfS52gLsUYVAe8lRu8iwqy1agCIUiBg4MK9770FH++m/epD80bnM2KbNQbfIqj1aN5iC0xL4FFM04uboMbW1lAuYRoV+hbP12Xn1B2H+dby/yaKqcDuMH9bCxylowa94HeP+1N4V6z8zl6wsDwPhTr3flUxisVhj0F0LDt7ClrOka3Pmj3nMKL5QVAxsOmPDe5TolNZZVZbWt7fNaacs7tu3AYQurcVVq7UDoYwttce8NMggYGh6l3e3oXD/CSthlHL7QzudyYfX7PaYmxvg7v/X3uOOe+3ji+z/kf/gf/xcW5uZJ8pRup0OaJAwmWBMDyecKoJAR05GgWyh+dLXFk5c32CytKxQI9kzG1IKcPYcOMnLmMl0hEIQIyoNwBDr3pmYS0jBHT0NQKLfJyf5fApEUioW1kBe//3U+93v/CZdevpt/+wd/xPx6BwHM1CKu9juMSGhn5TkEVu0tyrEAgQxAqtL0UaBNSOUviKJkyFYttvM8IB15qyJXijTb5IVX3+DtK+Pcestt7Dtykldee5ULV66SZllJkUYsM2dXUxVmjGZkhZWtZEUA7Bsb5YP3381d732U58+c56//X/8LC8tLpMocxzpAkZq7GO0zElCTMFIT3Hp0nLQIWNlIGIoEN/qCO/fWeeP8MrtPfJSsEDq4rnQOKyH0WcxCA58DQoFESEWRF66voOPrvQ1fsuz3yPad/MP/7r8jbNR4+okf8y/+4A9ZvnKJ8jghpw0oJUiznFTTjTDrXgZ2jMpQZFVqEaqc7yLpl/6LMEYIQZqmpbQvtElVBz4YSJSiHJuxQPHI0WFEIDl1oY2anEbkuTUrlktC+ahuAdpG/HhE4iwYdrgsIbnoJVxZjInJYJ03m0Yb8Mw6wm9GhVE5hmJ8EHjNsCu+0rSSDv13DzIA5f01s2yiuVxL/bf8/OtdZEl1oOokf9c0URllF9PrS/qDjTeOzy1mnAo7MGzF1TCoI2h2YQe/qsHgzCODjPImC96YS/wC/s7QCgEIxdjYOEsri2VeIOVtYpNl6giFgiInywpuP3mc3/i1z7Hc6vP7v//fcvXKVQpR0G5v0td+CYWwYz1o3/ZT7SZ5xlrQZMf4MDtnRzh/fZF8bRMhBbEIGG7ErG+0GJ2e5uCOSS4t9iCMyQpBlumsmd7YGLp1Gp3JpmoG2JgIBEKnco7jJpcurfNHv/N3WN1ocfbiDXKlaMQhO0frXNxos0NCV1NECWBaqlSFPvUNO05lBKrSUo7ejKaE1mJUVaDSwGqzzwLGaWkSEy4uLPDU+hqz07McO347t9xyJxcvnefKtcu02m294Y3SNGTAW7r+Vkcfu7u0EdfYvW0b9995B7ffcStzq+v8iz/6C14/+yadpI+x55poFlCa2ShPNnIO5uFAsG1YcdcD+zn31jwREIYBnU7BgR0NLq9G3H/4dgrMLmQs45La0a2kttZR9sUwUyOgGbGnPETUCUIAUSiorV3gjW8/waOf/01+8/c+w7ha4r/+n7/IxfkVcnPoqO5/HIUoIYnDiGazSbMxyvDIKGnaZ3F5lZX1NfIkKe2mniM5z3OyrIMMJHHUAFkjTbr6sKiStiQmvYcow1CH4IOP7OUHP3iLzdqY07sMQNsbhumVU1nuz9Bj4WHVoCDvqV03kbhxtGUQzUr/3sssMzZzrirPO4TW82++aoZiSlnPhQ+lwpisTYCKbo3pl22qWccDHawwxMEO3vx6F+YjL85ev1ThCMve9piGkTb95VWpwoKtA3Ezvy43kXBcRL/Umj+Eeb/57hH7ILPhJiNSYXKumkEtxha17XB3ozhibGScpdUlbG4jJQ07KJ2CQcjtd97Bjt0H+OKXHuPs2TMgoNvv0mltlgSMoJRgPYrxBlQAIhBaBS9XQl9l9GRETsjszA4W11oIyrOXQxFy7uoKV996mcO7Gxw7Mks8MsXZ577LpdYMax1vnAUYp76R/oQUdt2ZHDp+3xUFYSiJpg+ze+YMz750lhxFKCUPHz/A+soKMYoRE6OscMSJcs4wVaC0jduYOKx0ZEZeOTZfGIlYgDmgvbzjopgAm04ha6dcbl9kbu46kxMT7Nq1k8OHD1HkioWlJRYXF1jbWKfb7blUHqbflOkgwjBkqDnM9PQUB/ft4+CB/QwPN7l45Qr/+ot/yYWLF2h122RWo5MWSPzLbEFBQC0UxHnBiCw3ZR3bIdl/4iDf/vb3mR0Jud6X1OsKCpg+eDdBYxTyHOEHTdj1bvqt041IUaqMlowceAmPrgQQhjHpylW+8MR3OLZnG9M/+jG79nyH0egqJ/bOsLLRZ63bLiOWhCAUkjCMGRmfZHp2B3v37WV4dJjTr7zK1StztNvdUuAIIgIV6qNYS+ZgtFCVF/TyTYIwot4YJs9zkl5Hd6ZgNJQkhaIWwnuOjzK+bZynvnANRvfjInM0CBrbv+5W4Y2xJQ/HAQbGrTpFFrtskj1Xt2XwogRmX3nHaB+DLxS2iuq7vCVRebfCa6t/uVByA1ZikLYMY/L6bqd+sLqfc70781FFUhPOLo+Tzk0ZzfNwjkrDYA1ROo5fTVanJ9tjQhVo9zQWdxMq3Bo3OIPt9tuPBcQBxkZ1AVlNVUszhumUehBMTU6zur6qT5Wi3DAEqCKn0WiyZ/9BVtsZZ77/JJ32JiIMaa2tkCZ9qxk4xl62ySQyEyLAqpsowjDWZzakDA+NkxQFNzZzto2NsnNmO9eXF0BAUQiuLLT57mPf4gOP3MsPn36B2+95kL/8k29z9M4HkLOHyw1MVhtQXrhnOYJlWCnuGEcjtaCleQqikREeev8HCcl45cx5br/nNnaNjfLP/+SrNAT0lSJVilCCKAQzU2NsdhLSNAEKUG73cmnWktah6W9mEnhCmVlUmlO7tA168eixKrQ5QhWKtJPR6XS4Nn+DZr3O+Pg4s9MzHDt2hOGREcIwtOdsq7wonZxhQL3eoDk8TL1WI89S5ufmePLpH3LxyiXW1jfop5k9WtLsxhkgzAoYCGBktMFMs8bG/CoNIZiswy3HJsmosTTXZv/2Bmff6nBgJma+E3P7h+4vpWdNj1Iz7NJvUEqNUkBeOOnRvlKCKoQOSS00UJVrMgoDTtyykyE1w3SRcObiEi++vY6cuoOXL81Rq4eMNCN6iaSbaZE8kExOz3LL8Vt58OEHuD53g29+63GWFpdQUrBv716aQ8N0+xntfp9+r0u/2yVLU5KkR5b1yrYV5el77WyVuN6g1mhqxlBG790/WWOuk3Js3yiPf/8Ky8EERRCWexOM8FZoYQZlBTIfwA0G3fyyAOQkfx+9df3uq6jQoyvpwNinT6elKZTHkF1KcINRZj8JlbqrvEF4926G8tXSSrfFg8WbicQ/9XpXTKFi6/fUnvKvJ5noxWq5mZ6tqpA9CMgVjoPVAHweYF8mvBsDzASxZQAcz/EYkvCHGqe1uA4M9AfdFs98pftVr9cZGxtnZWUJw5qVUtSbTWZ27GZlvcXK4jyZ3mzTWVvRG3m8MZVl8GscRYyPjTMyOoEiIEk6JEmffj8hTRLyIicKQ4aGR+i0N5iYmGD7zh30u5scO3aU9LWMze4mrW4fkfT44dOnidM+X/3uSzz7zOs8fuo8y5sp7/38PnIRWgiRJo2EEFZrKNslrLnCDZfWHKRAiJANOcLf+r2/z388M8vS1Qv8p//Ff0+/n1EPBCt5eQTmKKJ0O4YxH3j/hzj10nMsLd2wDmajeis9zoUqj/LM8wyEII5iQhmV5h2zWEW5cpUlM8cUlN7da3P06wigIslY6yesrW9w+coVAikIo4h6rUazXqdRb1CvxYQyQBXlEaKdbpdWp0W706WbJOVZFnpvCnYEHS06MBIDi1IRhQKZpZy/0WZ7pBgOJTtG4cQ9t3L+pQvcett+5jt9Oq9tsmc0YuzIA9THZsmLHHPWrxI+YlXp3KxKP4berMMyOarerEjB7tk6x3ZOE4xsZ2muRWPhNNH4TjIxDrVbEPI8cRwQhxFpUe6inpncxrGjt/L5X/1lLl+6wvce/z7LCwts3z7Dg/feRbvT48bCMqFKCPKMTZmSi4xC5NRqMWEUkiQ9nSSyTKne73aQQUAtrpOnCX2lkLHk//a5o5x+/hpPXxeo6f0olM2zZZRrgRECfIbgDwpgne/KlqnKF54z186XcOAusA+5+H9Pe/gpjMc85jt9Td1bfBfWrqV/9dpo/hc+Y6kwoMH3K7sPBe/f/z+kuRi4hB1OjM1OKWHDUXWhATQ32Coq50oLW1+lqMcDhPesvgygioHnvQcd6OqXySrTUAP1mV9tqgqzyKWz64Ezibl9FIrZ6Vk2NtYp8gwBNOs1JqdmWF5Zo7W+hlIZWe4OLhfg7R6WRGHEkSMHue/BRzh64nZGxsZZml/h1VdOcfHcm6yurLCxsUmv3yHNEyJVY9fOA2xsLNOshfytz/0GX/nGYxw/sJ83L51ndbNDr9/nxsI6f/w3P2ZERnznxTfoK3jr8nXuXrhCMLNf5zPSEiiuf4EMbNvMYJZJ6RQycIwUCoLGMH/29e9y9expzl28zuXFNUIBm0BPS+uxDNnIMm7Mz/Pk049x+4kHmJzcxbnzpxFl2ArIoFw8haLdbaOKnLHRCaIopt3eJEMRitjNs3FcYyQt5TGI8h9/U5GyeZdK6S3Py13Yqpewudm2dKB0BQqdkkHX66JOfPnQp8qqlO5UHFA682lUFLTaKQJIhGSspti3fZjZA/t55anv8vBnPsl//t/+KftGJPXZ/Ry48z2gBIE2sWlOZ+fMgqJAO2sdMpqNdTIw5o3SLayAUAbMv/IyX3/jEmq4QbbUZk0Ms2tyGz2p2LnvEG+8NEwsyhMH47zgwJ6d7N53lI9+9JPkSvD4977P2vIqxw8d5QMfeohL15Y4eMthbr93mLX1da5cusT5t99mfnGRzXaXXq+LyjNqcY0sl0BM0uuUGl1e0O93GQpjIgourGXEM9PUdqakGwoRBOX8aanAhb07bckHfCvAqZIBVn3LPpAbdu1AGW9MK0BRAVUz/saZDX7UjwV+oT97Tmjl00WVYLCagMfgjABa2Yim/Ap86jOtqra1HJN3xhV+caZgCNF+F1s4tZOybxK8ajeg4f3iyVrCgG81u7dViyomH8dQKnd9hlQxRTlQs+WNNOz4h2N5GhDLYlsjkgRQr9eYnpxmYXGe4XrMbccO8/qFeVqbG2RZFwWkSR/Qiczq9dK5jGB4eJT3f/gjfPZXfo3DR48zNjaMlJLNjQ7bd+7m8W9+nbT/Kt1enyRLKZSi02kx1Giwd89ebswvkCQdfukTH+ILX/gLbj20jxfPnOPG8ibtbp+5tXW2DTfZ7PRoBjHr3R5L586yY2Z/ddBEdcx8s5rZ/SxkuevAeMwEZWjhoVvv57U3LnN15c2SqAR0CkWOoi4loZT6OMyCzc1Nfvzc99i79zAPPvhR3n7rdVYWr2gTgChPaMtzDu0/BAha7U327tvHwtwCaZYSyFBLa8aBq6nKcgSq68VguZEaLRUaBuFAwWXt9GQ5/7Nd/Pw0AXHrJUq6iVFkecFwLOll0FeCoYbg6PHtXDj1Frd+5BEWV5ZpL3U4eecBbnn/5wlrwwiUDsrQGokqx/1mTZFCkAvDADxnvGWgJZ3XZMZTr54F1UTUaiRzK0weOcj09ChhVKM5Au0kI1OKIAgYHWpy8NAxTt52J/uPHOCP/uSPmbt2jW3btvOpz3yK1VabX/k7v83Mju0EoSTpJ1y/Ns+PnnyKH//weyRXr5ImfbJMkaV9wqiGKgpGRsbptDbIdNLFVBU0Fcg05Y///FVObBtF1kfRUcl6E6Dp9FZp25iPzRnoLvOpsgDs8FuHn8JNk/E5RmIk2JKIjNbhXz6tVTUB4VeEi4qyNVcYhNNQBtiXKI/gNOXLwBqBqr7Ja4vWVQfG6Z1cvzhTqFzC2dy9xjkh1Je0zV/DDj2gH6x1iznJuwxyY543CpZ9W6UOx2x84NNsx5Yxz2D/+pFHgGMOzslQNkXA7Ow2ut02773rMJcX19lcXyNJOggpSJOkjAyKIhqNpg4vTBkaGuKTn/0sf/u3/z6HDx2m2agRhuX7hhoNOgcP8fzULEqW9snyvRKlcpZXlpiZmGJ4aIzHvvsDfv8/+7/w1NPPsHLtMicO7uPC9evUpCBLMpY2WjSjmG5eqvWri0vsBnLdD2O+kWUuDtt3O4lKYbKplv03YToKVeQ0R5r8ym/+JkdPnuDGtQu89uqrdObmy01dcciNLNcblTUkF4rLl99mZekGt9/6KLecvI3XXnqednuNQima9QaRDLl87QppkdDJesyMT3N97hoyknbcy/dTWRqFMrZzM5ne2KkSmJWyOwoxK9K484zWgfIlrqpUVmUIP2/RKeqi3KRVCAhDiSwKkkwx1IiZaNa4cnWVT37m4/xP//kfcM/D93H0o7+CrI1rACm81PQ+qlEBHEv/epMaAh2d5UuZZURXnPdYXm8zPlZjfXmVRtZhbW0dSU671+PStbfY6Lbo5+VZ0Dt272J6204eeO/7ePXs21y7fIk0Tfnkp3+ZsDnMZz/1WSZnZonCgEBrJtPT24miIW7MzbG0skqn10VkKXmakyY9orgOCI4e2M+Va9dodbtkKqcjJd0sp31hhbW2hJmpkjHqiLnKpkIr2XupPXDgCl4Iqs9MtlrfqMC5KV/hJPq1FckXK2iogXIVPPaYiv3NZxiacfnUVI3orDIbNVDWpzWh51j439+xBPMLntE8ECtkbnrAP6i82CLeBw95MZKcsD+5+oU3lh4434yLVF7q80v/xdUHHTMbrHBr2bKdmuiE0OccG+YhiaOIk0cOsnvXNG+cv0K/3wYpyNIMtET9sY98hAMHjxDVGoRRzD333cev/OpvcOzoMcZGmzTqIXEUEEbl4Sfdfot2a4U06WlHdmEl1yzPuXzjCiNDTeYXVnjl9df58KMPs9LusWN6vDycPcvIVEEvzdg9HDGqct53aIa777qNzJ7Gpnf1amqw8+Wrr0JUxry0ouhdCwpUXhDXQu598AE+9bnPc+8DHyCUITlwMc1oGcHNSHJ6iNudDs+++B3efPNFHnnPB7jj7keo1erlGRRxyImTt/Pow+/n4x/4CLPT08RBRF5kTsq3c4WV8H1/kUAQBgE7duzmvrsf4JEHHuX40RMMjYyC3vBl9sMq3S9zD6/un33ZHm15RFDG3McoFJIaEKpS25yKJNNjdV58s8sjn/8kbz3zMsvFBMc/9WuIeFQ73hW+1cg3a4Lzx5iUIJXwa83khTSHgZSMPBCKsbjDaNhkplGjobrEjYBOf5Hl1RUuXrzCGy+dZrPToZ9kKAr27tnN5LZZJmdmOf3yaTZWVzh+yzF279vJPQ+9hx279zI03KDRiKnXIuq1iKGhGrOzk4yNjRNFZYptoQ8mKQ+h0qfuScnf+qWPMRTHyEKQFKUAkiDojc54kWgeAVp6HCBKj0jNXG5dxcLuz6jU63hKhfM4y7YvLP10UiibpaprRghLZ77Qab9o5qBccc9HhKVQ4RfyWr9VRnH1vRuGAO/yOE73WXfY/CAcQ7DOF1EprRtrUMapRnYJunnxrnIvgHUeYCam/F4BLfOb97naOA/4K9zbVeDCZ7e2xN311UfjyBMWqIugxjeefJl+UqazRqHtnpKZ6Sk++8ufZvuufURByOTkOPc/8AAHDh5kuBETh5IgKOvP84LltTXOnnmduWtX6XW72sGZ641ypaNzY3OT9fU1orDBc88+x8H9+xlrjrK6sc7JAzvo9vtEQpAXBcd2Nnn08HbuefAB8r3HPIZmRkt4wCI84q2CjfBHRwnnd6Dci4AQPPzeRzhw+ASBDMiRA4RZSm9FochVeTrb9WtX+Ma3/pS5+UsMjU2hgLheY8fu7ezdv4eRsTH2HThAEITuKMsKY9giNyClpF5rMDI8zv69hzl85Dg7d+/mvrvv5r4772NkeMza3S1DMItaDSymn7muBhhIhXQUEYpQKeKgTO/RKySTkeCuXU2WWhEf/rVHGR0b4XvfPsPR936OTA6htxZSTVexRaRhkOorAyHN/g2zvpQeF7h2aY6ljTnOXXyD3uY8V5YXqOUJi3PzXD57hmuXL7DZ6tBPcpCC2ekpdu7exubmKovzN2i1NnjgkQeoDQ2xa89earWAOJSEQSnMCFGmjp9bvM7K6hx5VgZZGN+8AtI0JQwillbX2b1vG/fdcSv7mjHDmt6mt+0gaJbmM5QfJu7Q28xdNYLR0LUnZVcsBjefPYfRVeZTmU0zxZ427a8TY+YxiOyc0d66UX6dTsj031s605X3nJlnZyLzW2r3aVntthyjnyc73+x615qCaaBV0xRWTbfqkx4QnxC5CYdVFmiEfWaQ/VROXjecTykrEbo33EQeqEgCZkUpV9Rvj273zSQLmwfIiqDiJkRYfk6SnOX1rlVZreoqBDt27WbP7n2MTY4ThQGT01Ps2L2bRr2G1LNaFIp+krG0uMarp1/h1HPPsDh/g16/Vx5TmRdk+kxjcxb0/NIicSx58+Jl4lqN4UaDpdUWB/Zsp5NkFjj7QvHp/+DvEt3yMLmslyGmQui/0k3BzQfRjnQFiA1n0QkwDGk0mjU+9cu/zMTkNgIpbIZYM9iafktNviiTriX9lGuX3mJx4QpSBqRFxqFDhxkbHaFRr3P+4gW6/Y5OoV3SxhYmrozAIgijkKO33Mqxo7dQa0SsrK/y6pk3uHjtGvVancmxiVJ6ZYAOtKT10xfUgGZgHxTVIvpOKCCS5RgpJDtrsH+yRprD7/7W/Ry+9TBP/dV3yKZupz6122VudSil149P68KCvfJeKoRj7iYbrZCy2lwZsXN7g4eO72S9I1lup1xfXmE0Epw/+zoX33yNpZUV1jod+qogCiJEHDIzO8Glq9dpb7SoxSFTszPU6nVkUB4hauCopOGUa1dv8NILz3P9yhV6vb7e4FlYv01eZIRBQJHD+avX+dhH38fth7fzW8d3cuzQYcZnd2PhUDqwc9rtoBBTDQjRpTEC5OCadQOLR/vuu4OvwXXu2lIx1/sMQ1cg/LpuJvlW1G+/Xb7GW/5kko1scVp7XbnZO94tY/iFzEeD3NSAvzEriYqXu4LcbFk8lXod6FY755xElbLeX/uzmRDlHC3Vt/2U9yu30KuMQfg2Ba8NHmgY8FflLuDRsXG9x0DbsjXBTk1MMjI2QlyrladWRTXyQtFLevR6fTrdHmvrm1y5fI0XnnuOHz7xXd5843XWN9bp9/r6UPS0PNO4yCyYrrdbpFnKeqtNP83LHaMCnnz2FbpZXsawK8V6N2VkaKicJ72ApDfUUoOtWUB209qgumrAxkgs/oLTh+YIBYcO7uOXPv2rDA+NEUg/T6oRLNy8FQryQlEvCmalok5O0kl5+ZVXaPf7vPLGGc6/9TZRGOg5dZNRkZWtBlse8NNqrbFz9x5GRkZIum36nQ5Xrlzi7QvnShu3lz7c+alLCtii4W6hoS1E4b6LMieQZYYyYqYecMu2GnkUk+SCf/ArB7n7I+/l0itnePp0i+13PEquCqTQvh2E268hqNCe2QlXprNw4OjAzyvn2dmFEOQq566Pfoj33b+XzsY8i+vrjEQxKMnS9essLS+z0e7S7ScUecZIo4EQMY2hOvNz6/TaXZqjI3T7PVbW1lhdW6fbTej1EkvD589d4Onvf59TzzzL0sIivV6XNEu988yNti0QSnBtYZXDh/cjRrexMrmXaHQGIQNnJFBUmMOgU3jL9Az8UpH/BvDLTu+g0GqLDWzc3SLoiup9r33K/2VQUMRRmS8HGAtEVVFVOq+DE0634DBgMxrffEDe0fWu0lzYrt9Eqy7lIHfTcFl/UstyDnJl5Y5Zivo9XgiW8JiE4bimbHUR+A2wMFFtrDfJlacG1EuFXtDm7uDcexKDMH81M9w2M0Oz2aTVbtNqtel0NimKjCCqociJA4mUIe1ujxvX53jzzTeZHJ8CoVhbXeXSxQu8+vLLnH3jDEtLi3S6XZI00Yfbl4fdW+gSgixL6SQJuSpQMiNTKSO1gFPnFslUwWQU0k5T+t2UGhmCBkKUicusJFkZCn8zokPuCtjAlrEXCD2pmmhR3Hf/XXQ2W3zjG1+m3WuTZTnWXAPOGaxK31+nUExmGTMKNucv8drSPK+/8hJBGDM6Ocm22e2Mj47T7XS5euMq66tL2mfjswndBKW4dvUCYSg5cetdTDcaKKXY2FhnbW2VLCs30BmNxV+HN9uotPX6KcKN+V+UYyKVYs+III0Drm/kHNlZ5++9fw8f+Nu/xdrCHF/502eZfvg3UHGNwOT1AZv62Qldbm7QSd7cZy1B6hxCmGfLgfDmsjy458yZ88wOZ/yjz9/HYz94i7A5zKW5ZfJC0Or1aHc6FHkZ6RbFNXrdgrTfZ2O9Q570EUMRV28sQrDB+NQOeu0dhKGg3+uxtLjA66+e5vnnnuHC+fNsbG7ST/pkee7Oc9bAWFBQKNhs9ag1asyttxid3EGmehh/CgLtVy/7IIVwUUi45WjDOa3Ebsp4m8PMXJuVq1+gFHon/eCcC/2Mc2T7+wqqRW3lFvJKbPAOltJrRvkNGiAyhyeunNt3gNMQB2jTvM+VqZrYfyYpe9cvnhDPcDqPK3m7FqpAXUk56YC9UpUQVGDa54L2XQPP2L+qwrQclAtrTrC/DKzjylPaFCLsfY8ZmM576qp9RqlSqtHlpYTJ8TGmpibp9wsuXjzH+voSS8tLtFstoiAgimusr69x4cIFVjfWmRibJM9S1tfWmL9+jRvXr7OyskKr06Kf9EizdMDRbGEVqaOb6rEkjATdTpvxoIxPL1LFrqGI6Tjg/oPbubqus7ii7BnXqjDZMz1HWkWy8mV802dcfiCrnYHxL5jpkwLe98H30E17fO/xv6HT65BpYLAKpTIAqOgXcF1Br0hpZil10aPbCwiiGDnUZPlKhyUZMDW7m9tuvZ/aUJNOe4PlG9eYW7jB+sYqWZZamirygssXz9Fpb3Li5J3sO3iAPE1Zmp8nzTLana5Okucox1GxkdK9FVhZBFSeM/QkKJ25sRTEUiAVXOsoNlopdx2c4N49Ife97zi9zRv81f/6dbq7HmDHzoMolbuTC/FAwZpXCysxl6Rt7MsGbHym6O+erTIGqSRn3kz5+uOn+KWP3se+mQV+cG4BgohASHq9Hv0kIddmmkxFLC4vsLq6wsZmi1wV9Fp9rl1boN3vU2uMsLY0T1EUbKyvcf3aZd4+e4bLVy+xur5e+sPS1PrDdDBw5RAmlSlUrljd7FIbSkDlHo1Xx6LcrzAAc0pZBmhveUkCB+fJJJm7GWg6DMOCsjAM+Cbz7t91pGLYgcv0UEXy6pP2m2UERlT2S7rG3rzd5VUYTcQ5QBjMlfSzrnfBFKo7DYzTw4Y+eSgtTPsr2OFL1gwUHgT0KjPw22BDZMwd4bXrpjY788c1yJd4fe7q2ia2vLuiJgosiRgtxkgq0uwYFaCKnKXF66yvL6OU4uKF88zNz1Gvh0RhQLfV5tLFS5y/cIlaFAMFSa9HZ3OTdrtFt9eln/RLB3NeUOTaHquznOpXEwYhvW6Xvbt2kGeKxZVVds8OMRyFdPs9siznU7ftZmL3PhazesknJSgl3P4Dj5EKoQnLMAk9tkayN24eiRtLhZ8WRFgMExKCUPKJT3wUVM73vvNNOr0umUmz7EltqDKtdltBn5I4Q1EgC0Uny+ilfaaH6jSbQ3QWL/Pa9fP0lSJqDrFtx27uuv8+wqhBt5uzsbnG0tIcm2vLtDfWuHHtGktLy2zbsYtdu3YyPjLKxMQEcwsLJP0+5Y4KBhahISkvBMEsNu+roDz3QApBoHeAG3NihGIslszWJZe6ioXlLsfeu5f+2iLf/JNnuMRxTj74gXIujCgivbz5PpOQgiIfhACn1ZT7Z1zqknJtmC3gQud1KqX0LIzZjIf5V194jBvdnE4macqCrMjo9HrkQFpAmmckaUK71WL+xgL9fgcZhGysLrO0uMzi6gpBEHPjyiXSJKG9scHy8gJLSwusrW/Q6/boZwlpUZQ0rBmbFs3L9BuqII4E/TRlabOFipcZHh7BsmdvLHzNEjzQtmDqSXDCbF5z0GDL6E1vDNRv6LEC2RXtQ3ipu4X7UX90gTZKk4mrqZwTs5/CB3aP4QzUbQUwD6nMK4xvwVzCK+WGwpO83uH1LhLibQVK20jhwbrSDfPB2lWiB2CQCSj84w8VN3tW/2okp4p5SFR/M7cHnzXFzM/Ce9Z/ZJAh2DZ5DMXTbAyNS21vKqsV9JOETs9sWJO0Wi1eOv0Kw80h0n6XOIy4cfUqMorIsxwpJarIyZKEJE1Is4QsLTWEQuWlo0lpTUF3J45roBRZmnLn7bdx/sIlWpubjB0c4T237+e1C/MMBYIbje2MHnxAN91JlqaHJd1p84MyfhBsX+1Im+5LJ7mJgR+Nim9zKQlFGEo+8alPUK/FfPuxv6HVaZOkOrTUW8cl/ShSUabHEApkrgikgCwnTfscGKpzy5HdrHUU5xc3WM8lmwvz3Lh0lW6aIMKQ4bFRZmdm2Lf3IMONBjIIdeK1NktLS8zfOMfm5iZSCKIoQErNdItCj7Py12JJz0JqAdUtdCn0sRmaWRc51APBWCiYigXTkWIkFjRUwZGxmH3HJpmp5Xzhj19hbexO7vr0ryCDsIxRN4kUvfEuGbhvenBkrvCAQYiKsFBo344yuXdUeda1VFJn8lUcv+8DvPX8T1i9cp5CZISBoNvNSPKMJFekecH2kRip+rQ7Xa5duYFSDWQg6fd6rK6ssba8yGUpmY9Csiyl3+3S7rTptNt0+z16SUKWlyZPQ7uGqYpAgiyZYWOozqWrC6xvtml1exw9fIQoDDHA6AJLfNNLOTYUyljTHGJqRqh0mnCnNejfKhL5TfQJuzNZj60GNstUBHonnfJwwAN75cZ/0CYlqR6W4+lzA20RetOdz1r0OvUgz2eFFb7oMYaboelPu96FT8E20zbcAasbHAsQ9gHhsFoMcG08gsYRuvAAd0vEgGeq2Gpy8gHe8Fv/DAZhlQ1Xv9dcj5+YNliWZcxGRtDQAAouVM63sTcaTfYePMCtt9/Ll//sCyRpF4nkyR/+hI99+AN0u13qtZj11WWaw6MkSWKfzYuMPMvJ85Qszyly7ZzTiddMUwMpqdWa5FnGxLYJHrzvfv7iz79MJAp27xzmn/6n/0d+8sxVzl5rU9SGINAmropaqeypYkKaMXOSiznFS9o5cuMtpc4GKsxzuh6fgi3hKsJA8uGPfJixiXG+/tUvs7KyQj9NyQulJStvaRr7LmXUBQqyApKsII4DHrzrEM3aOF96/MesJgFxvYYoUpJCsJnkzG+0Wbh4lku902R5VqZ6rjUYHh6m0RxnaKRJY6hGY7jG6uoqvW6n9NnkuT77uYzsMmNe/rVJl3TOJmMKgUYgmIgF07FiKioYjQWjMUzWBTsmA3bvGGZ6R5PrC33+8JvrDN3yKA9/+lcJwsieUGfG15g2rN/LDouwi9wxA/2zTg5XqNyuiAoDE6WvwcyRDCRidIwP/sZv8unuEl/83/6AhW5GK8vJC6ihGI4laTcjlS06wylXr15j256jZCojrtVZWZpDIFldXiSKIoo8I00S+v0e/aRPkiSkWU6emUypjiEAxHGdLE2ZHBtmbHKS5156nTRNSFNFv58QhaHDGczjVZOZGRcTTOEuDex6rnwmYLSPErStSHRTX2l5vyrpC2N2EtzELOPG2+ansh0w4mWVwf1UH0WlPq991pSm8Ut5yoyDXXzzmG8S/XnXu0qdbThm1V/gdVA33Bp4DEVrsLZPWenLmYKqnMyZZnyTauUynBKzead8TsO0V8jYGoX9u6USgc0c6fZAKNtGywg9RuA0hjIELwhcrD4IVJGzOLdCq3uF8bEJFhbLlBZvvXWOHdt2oRT0kz5SCDqtDWQQkmWZVU9zs7FH29/L4z6VPvylbGetMUzS6zIzu52HH3yYbrvLsy+cph4oRL/Dc1/9Gvd96tOsiRbzq52SKKy6XbbXZNw042ulf4E3T67PPt7bsb/ZDPrPeeQoA8mDDz7I9PQMX/qLP+Xqlcv00oRMn54GhpBdfYbgcxT9QrGZlKmZh0ebJGnKGxdvEIUhzZqkNtSgk4dkYog9B/dwY26O1vo645PjjI7P0tpsceP6dVqdTZKkTJVdtlcQxzHNxjC1Wo00Sen2O/S6HTIdYx+UA8aORkQcBFzfaJPnObGAESGYkoLpQDFTg+lh2DYRsnMiojEcsdxO+N7327y8VOO2936U+z/yaaSMUMpk/ZQYnLNOTUvBympQVojybN14ZYyPSwrjZNT0aM41UGhHbcmkFzc3Ga4JHpiMePpSl4WsYCiQ5YZHBWMSGkWCUIqlpTVmZnvkRcFQc4jVtSWmp3aytrlCGEalWSpLSdOUJC3/qqzQaTYcuELZvrjWIOl12L37GI2hcb7/xFPlCWxBSScD8rFjBgibJkcVJpVH4UobQc/yDYOovlnNSfTVsVR+CiP3Xvu9IsebkffKuT5WfQjmGYdSVRnfVmKfKfuivH5US1dMa/7vqnzOHc4jrNDxTq53cUazJ4F7UoyTZBzBUrmPBWyraBkAslKvA3HLPiwQ+b+Y5xxkWHneLIgKmpUl/PL+0xVe40v70gCgA36rYpj3eTU6RuFe0ev1aLU2uHjlHCovpYM0TZBhyJM//AG1uE6v1wOlyIqcUKAXVQKUym9eFKWEqpR3jF/JEOJ6gyJNGB4d4fjx49x/z5382z/+Imvr69y+fYwfvHCDL3z3PL+/eIMHPvVbPN4OSfICisJGdOhh0+GPGlSkx1ClN1q6c4VSOv69OicVVmsYqx06I0i4RXD48CH+o//oH/G1r36Z06dP0en2SIxEeZPEXYUqU0RkClq9Pv2kj5AQRwGtbpe+EiAkYavg1nvu4xMPvYeZmVGeee4lNtaWOXLiFkaaQ/zkR8+RpH09th3SLLH5/qUUTEyMsm/3ATbWNjh/5Ry99iYSRRhFiCCELIVen9U0tyaADEEnFyynoJQkU4pOAcvdgpeu9Fns9lhKoD61jQ/9xq9x5I57EUKfYY3Z7GSGxhO6fFOFPl6zPHsDt9D1/4ZGRaGjsFSOFW7MnOhy5RyWL8yTjLObPTZrM2x2F9kzO0o97XNhtcN4WEMlfbIAmnkbsmHmrl+mXq+T9HvEUUyrvUY9rrHR2kSKgFxlJUPIygSQxqzmZ3UVCOLGEHmaMjM9yfZdO7h2Y55r166hREE9bhDrFBhmHEphSZt9Cm+8NFm5cNxBEDX7p3zNwlxacxDGKT8InAb0lZsGD51982nJNAp/airvr5iSdJiwgi1vrDIdjaqGLtyImAZ4tG28AXcAAMhHSURBVIDpqS7v8A/lP/fzr18g95FykooAZ8JxnLgCCGJQonSXLwv5EFOF7Zs8MXDbALlmkPYxn3EM1nHTfiG3KBLCr8UyN5NR1DHisl1a25BST2JBt90uTxwz/RIlw0j6CaoQFEVKGAZkaUoYxSDC8qhKo2oq3xkLQgZEYYzKMprDI9x5+53ce8cJvvLVr/PcCy8xEcGIzHh9rkUjluRpj+TCM9y292FefHsTowWYXECVufM0An8uq+Mu7HnOvunQHzibeqEyWcJbrOW/k1Pj/OZv/TZHjx3ne999nIX5OfpJQppn5VkPvnSs6ygU5Qa+PGV0dprdO3fQeOUq690+yIh6DVZWN3n++ecYHx8hDCR79u1C5CmnT53m+rWrtFtt0qSv93rkdowFMDM5zskju3nx1Bt0WqUmEESSIKqBEuRFQqYKGihyoK8FmBxoF4Ikg5VcEHTLfhZIao0mt99/L49+4lOMz+xE5QWovArYFfpUOqOrsGNlzHglgBWavoRloMYygwAK5ZXXu8m9swEkwh5YFgiBihuM3/VeHh0bphFlXHrrMnLXYfbd+kECFfDiU1+hs7bAzPAYCwuLyKhGXuSMDI+wur5GHEXEYUi720FRJjQsI+WUd/ayhjghiGtNwiCEPOWhh+4jLSSnXjhFkacgFBOT08RRDCq3NFOGdUrL2JTutGEWvmnFXy+WPi3Aez8NlB2U/A1RCOV8Ov5zQtO6Kes/b5iBoV8f+p15VtklZMOiHSsYEGa93hgrhp13ZUnFYqjFpGq97+R6d+cp+P9aaUb/c7Pvwg20rUN4rTXA6gGS4byuMmGJQGg4drc9sDKcUfiLbGBIhXfH+8n3H1R+FI7L20HXG4UU2pfgmaUsfeg48TAKGRoapttrlyYIpRifnGBiYhuvv3ZKR0YIkiQlikJUkRNHEc16k063TZIklmBKMJZ6YeRMjE9y+223sWffHn7ww6c49eJLhKIgDkOevbrOZprz4R2TfOUHl3jt/Ar/+L+8myvzNVY6CU46ckRjAB+wPgQ7tmb0lY4kM2Y0z3ToylYH2goJ5ll0xJoo5z2OIx559BGOHD3G0089yelTL7C2skwvTUiyXDOHyjIlzxQizxkeHebQ3u1MNmLmWl26WZ/eRkb3jVe5eHGYWiMmimIatTpFUZQbBDsduu12GXKpD4w3TuU0zVjb2OTStSustNdIi1LSFXlOmrcRCrZFcNdoQT9VvLkuWMpLgA2AQI9FJgSFDBiu1zlw6BgPfujj7D16i95DUKBEYc0e5RPSnc1g7N4aACvLWOhwTE2zNt7fYYIdI7cu9JjbG5qpmPUjIAoiGjNT/PZv/1d89V/9K/70+68yOttgt9rgl37tt/ncr36IP/mDP+Tc2VcYDiXXV5YQQpLnBZNjU6ysLzPSHAJgfXO9lOSVAh36bNokhaTebBIEAUIVPPjwA+zctYdvfOs7rK4sg1BEUcz22e1a4i+l61LLKTUEZbkfPpI6+KmciIZDxy2AKDARSGbobUWeOUkpj01YGUjdvL6KCOPVYRhA5SmjYfjY6AD+Zv4N+1Zj1bBMq+yn8sbaPewY4ju93lVIqosdgiqq+vKk+a4YVGFMLHp1E5TnuhZyoG7hF3MMQ3/GVY2JDtly2WK6oKzcrLzKAr15oefQcMBf/mYyB0iTHkIpDdqOadRqEbfccoJCCdqdNkIqpqamCWXEzp17uXzpHFIECCFIkoQ4jghknYKc4eFhvfAy0qS00YIiDCOmp6fZu2cX3aTH4489xuL8PGFY7my9ttEjyTOGQ8nlxU3iOGS13eWl7zzOne/5TZ58dQ6lGasSpZ9C6r7ZcfIYATgma81zehykqA6gGS5hRJgBlU6BO29D/1ToKdm2bYZf/tznefjh9/HcMz/i1VdeZHVpkY5OF57rSA+JIJaSWlynsX07Bw7sYOf0KGeXNiAvSJOMLN+g02khg5AojAnDECglyizLyPLMbQQ05hcgSRJuzM+DKOh3U8aGmnRFQVjkbB+W3LMr5uP3HOHW993KT/7qW/zxt+fp9BQpglAopIQoCmgOjbLn4FHufe8H2X/0FsIocmZAAUpJHRJcWFoRYI6lLhe4BR4PTPQ993kr4FXDHYUrr4UXZRlOgZQBhYIgirj/nj008nmWb7zFoZ3bWc0E508/w+l9B/j4Jz/Cf/7/+E/5+l8/xg++/U2WNlosrK4Q1+rU44Kp8SnWN9eIAsHk+BibrRZFv29TPQdhSK3eIIoi0qRPHEre88iDPPTgA3zhL7/CW2ffRAhFrd5kz+59NBrNMlmeQRxjYxfYFNe2Z/aeJzEbSvYA3Y6hN2R+QIVb2959AxNGSbCMw30ehFvfhFOm5sadG62UrcyhjOuPq9FjRFQqd0vTI4Gf9oQwwvk75wfAL5w6exC6PYC2HRYVTLAmCVF5ospJVOkcsWVE9T2+huCnw7XSqN8y4diYbZ7wJVZh6/Powi2agUspDZ7S6xS+DwRXCcZEIwiD8kjNRmMaGZRx7IEoOLhvH0uLc3TaLb3xDfr9PnmRMzo6RqPRKHPj5zlFHFMoiKKI5lCDQErOvnmWjdUyzXQQitKO3S3t42FQInNbBdREwEof/uwbz/H79z/K0X27eevyEggoCn0mtKY0AzlVX8rNZnxryPBg2pFq2gXnHDdvMrnsBWW+f6WZ+rYdM/zS5z7Lez/wft58/Q1Ov/As1y6fp9vZJE1TIikYiQoaQwGJigjDgolmxGgc0cpKICIrncciy1F5QVFEIMqkgHmRW/NGUbgoHoVCFIqN9Q163U4ZbVYUjIuMO2ZjHjw2wp4dY4Qy5NQPTnP61XU6hSQMyrxGYa3B0OQsB47exu333Mveg/tKPwQKpXL7jsIRWglEmq6tsGMWkRSaSSgvnNLFrVcgwAglldkytnDlcpN5fFpoAUzKgD07Jzh5bD8v/dW/5/JKSho3uee+9zI5vZ1Xn3uOa5fO8cjHP8wjH30fiILz/+tFUIJ2a5Ne0KVRrzM+Ok6aJWxsbhDKgEatRhpkpdIsA4o8I1eKA3t28tEPv4dtu3bwb//9n/PmmTeo1+rs2r2HqckpwiBCFeWOfSnN+QlaLNNShYVuD8hBud3c5YLFRfkYJlndA1AFcx/4lfeM/eqAXjnw38InPE3D/VudG8twBsDaKkDWTFidY/8xhZvMrZ4Q3T9vG8G7iT4SatB9/VOu4XrdQiDohW4h0VOFLZ544GBA05NGhS68xWxk7PIG5L0yzpFsgLes1zGcgfvljzj7tqvPtMlELrnUw2B8C8Y/IBA2jNUcW2mSyJVlyjqlNHl5ZBk9YdotA4QUhDJASPT5vyFzC0ucPv1CedC5CCzHF6I0PTWaQ9TjmiWQPM/o93ok/R5hGFGr1eglfZI0K88WVmXe/TgUBEFEI4yYqoc044B6HPK7Hz3KZ/7Jf8N3n7/CeqtM2lf4IpCvLZjxBj0G1bm1Mfv6kpVznCUuKswXBlydZn6qzETp+SrDbVGQ9FNuXL3GmVdf5sKZl1mZv4JKekyP12g0aixtJiy1U7ppQatflLulRQl2QRgTxRFhGJMXiiQ1+z6y0uatXB4ep+5rMNU5iBpSMBEFhEoQBRBQoJBkMiCIG0xOz7Jn31H2HD3JviOHGZsc0ZTrwgE1igNu45P9RTti/WVYeCYtQalRFIXnEDWg49vSUaV5Be/3wvQF60g175Z6jQwN1fn4+++k1r/OH/6zf8Hz51swMsldj36MR973QRABTz7xbU6/+GNGt02TJYLXX3ieK5cu0um0ytGQkiiKGG4O0WjWyIqCpF8eIYsQDDWb7Nw2yx133MrBg/s59fobfOtb32V5cZ7h0VFuOX4rtSiCXOkdz0ChKvNjI/B0XwqlrPYFyjJ4MyZKZxJGQTWrLt4Yqkr9Zszs3Ckzfp52pswYO1+fX7d9Rs+tmXs18NfWY+pFs3EL/Ka8oZMq+PuftmiF3jODZTv9Hj/v+oUczX50iRyMFPEkIKu5ePHCFSagJVSfIWCh0ZU1zEG54g6QnHqAraL8VG2U/UE3qqIM+FqDAOlpC0qBf7atr2lg9mbo9isN7sberpOaSVFmrCyrUygd379j+zY2No5w7tybmGgRjQKkSUKaprSCkhEJVY5fvV5nx/ZtdLp9Nlpt0iy1/goZSKIw0MwpICmglQmiSBJk8M0fn+PuR/+GO49/jh+deoM015FIejFVRu0mIF7+EXY/g2mvZeAYulAVIWBAqfDKmkiYgQKgGaUkqkXsO3SAfQcP0vvwx7h2+TLn33iVi+ff4PryImvtHrFUZIUiKQpNk+XeBlHkpKmgKFwm1jwvyDNFXpQRMUqH+poF5VEJUgjGpOTO2SGysM6NLGZkZJypmR1s37Of3Qf2Mb1jO42hYR1cYBzAjsmqQpuILM8re+7v7PXDoA3dG7BQtqqq5FhhCLYQFgEGwyz1oADKCjRhGHDLgV3MTI/w9J89wcXVlHB0kuk9R9m7fz/jE0M0m0N89ld/hdlt2/mzP/l3rKwskmcFUb1BmKV0Om0KEtI8pZv0CTYEtTimXqvRaDQZGxtlemqCeqPBCy+d5k//8iusra+S5ymTU5McPnqCWlwvI7GkQJgd28KxMBuIqiQ2wsfrb6H8vgvA87vgm9/sP2aZ2fpvKsHrz77E765BUd8X5TU2GCbula48ZbQKT7vwzViDbdkSQKWMEKXse+xPg02qPvkzr18495GFb+/m1qXtygjhlzCcVDOGSh1KA7MzB7n3eCYIU6dVxasv9dtp/7XSqEvtsMX05eWIETaFqLOhO/wyhGQIVFiycbY8rWEIrP3YaBelZaAMzex2Oly/fgURwNT4OGMTU8RRVEp6QtGoxeRpxubmJqkqWFzZKE1NeZlPRojSbhuHoWYIzn7cyTMaeUAYKOY3cr70p1/hH/2X97J/5wznri6hKGz+dzeESjMx34TnDbDlzliNa3D2hR5Qs9nHnzu7CVAKd9qUUnbelDIgCA4aFLWhOoeOH+PQieOk/T5rqyv8zZ99kX/y+WP84Re+w9dfm0dJSRAEBEFIHMfEUUQQRmRZQbvXQ5GU85SjQ1GFldoMOUWBoBEG7KwJfulgk7/7T36HlfotvDqfEzWaxHFcnhlgiVBZhuBBGDZXjxkTXbaStkEI52T2AEwYcBGKwneeemu7pCtP2qwIR967DIlLR/NBIJkaHeb48YOsnH+J555/i1QMMzI2wZ79h9i1dw+NZp0wBEHG2MQoh46eZPXZn7C0fLnMABsEhFFEPynK8GrK/QW9fpf1TRBCcmP+OllWZvY1knAUR+zfc4A9e/YRBBEodxZ22anCCZVK04YSIArLWP3NXiZU15Zn62VEODOIPmgODKv9weGxm1PHVEyIqWtoFeO9PRXWBFh9haUDn4H7pqcqB7BtNnK40kzPk0GqJi+B52cfZGI//fqFj+N0YFgFDDNhQgi7waRCrUaUs095z2Ir1J/Kz3aReG+u+BtuImlWbOPmMdSWjKD+5RQVz6wF5Uhr6d7UaYjRLEyJM6kIbV5CKIQoD6OXgUvjITAhrYowEJw8cZJOp8X6xiobrU3iuMb4ru1MTswQBAHra6tcXb3O4vIqaZKQqwyVlwnDpAyIohL8TB4jo+YaYGqlOfUwIAvg1Nstnnvsj3job/9T5pY3We/0vQHylo1Sev+CNwYImzrW7C2xdKCUk4YrfhfHsauhqtiFbAbfZwgekjoBQBU2p5SMAoYmp/joRx/m4IkxijShGddRgaTeaDIyPMro6CgjI01q9ZjWZoer80ssr6zSU+hMogUmPsa2WIN4mud08oDJ3RNcm7/AQmMPjeHtBEHZlgoz8583i1RQoSFfqhfevYoU6WkIpQmusNKrAwKvMmXoUdu3laPPQqe8sH4dA7hFgQwlURRyy7HdDNf6fO/JJ5lvScLmKKNTO9l78DDjExNEYUhR5KxvbHDj2lU21pYJpCSK6qytLpFmfYxjWwhJUeRkOnWJN5wAxFHEyMgoszPbmZ6ZpV6vo4ryUCYFOq9TocdMUu5wL9NxOMZb0l5huWS5/szGzpsJ2O4SlBqE2lLG4roF7iqDRigoBhgCBc5Kb2jBf191ng1OGlOlmW/7ox01w75Eda4Nc7kJrpt6/N+srFwRVN7Z9S6Ygqj8rS77Khf1i5adLyHaBv6ogQoGanMPlr8NOjUxauFNmIGpwvkffL7kGJZr36DT1E20ZWrC96YoDKR7eLb1/VLgzrcsa7SpMrx2CAGNZswdt9/Bs8/+hCRLmF9aZH5xwRKdAm0zdeYOKSRRWCOu16lFcZlyQttZiyJH5bltYD8vaOcFcRSymcGTT77OHQ98n1sO3Mtzr18mt3silAV0YefASNA+YTnzoMfBt2oVZq6N1ueBHhpI/KVpyVaVUpAbX4uyepGUbQ0CycmHP8Ta2mk6BCgK0ixDdTL6SYfVjRXCKCKKIlQu6Pb7FHlKuatAb6iyG6sc0GZFeXTqTKw4eXIHe48eZXlxwp1nbQHIzac1A+n/zfwaH4IwTNAsUOFBijm3WinQYGO0B59Je6Nt6WKQBn1zk0MjF3AhggApJDNToxw8vJ+F1x7j1bNLqKFJ4toouw8dZdee3TSbdRDQ6/aZvzHP5ctXWF5aptvZJM/K88azvNCbLUvGUNKgM2sJKQiEYKhZ5857HmBkZKI8NTAr04cU5AgRUOQ5uVI6bYpC5RqQf5pZrIK2epzsmJvx9AFc2TEx1gAnies1XjHjOGFPUK0P4bULe8sD+Qol2wLCag4DTJ6BogIP3FWlzOBfH4l/KuRbwvhpBbZe7+KQHW9QXPes9GyAw/5nJRRw8gy2jsrQ3aTdFc1ADA6z2d3n0NiH7YE/lUo9F7a+VTEi2eesE1QZmqnIBOW/nlPJvcKAArZFUnhOZysJuD5IKZmamuCuu+9lfHScRhwjhCQzkTJFmRCvdCRLanGDkZEJJiamGRuboDk0QlxrEEU1ZBCWPohA2kFUStFOMhIFBJJLyxk/+ua32bc9YLQe2Pk0qpIAbVXRqTWE8EDcjJubi2qstdlMpBxQDhA5WmrCxKBrBuxmwhB6KUqb6kvGKFCFlrhyuHDxGl/8d3/Eai8lDAKiKCLSprRGLWKo2WBoqElzuEmtFhGG5XGRgcSa9oTAe2vZh0wprnYLvv3cFS5cSVBxTfN4ZWnCrAQTXWXWhpH0wGiQmo6Eq99f0PblAkyursqlObCy/+G0VNwGKPMOU79x9EtRplcvfVtQi0JOHtuP7N/gmaeeZymNCZpjTO3Yz55DRxibGCGKJFmasbK6xsXzF7lx9Sqt1jr9fo80S0qfjJAoIcmLckNhoQpCKWnGEeONiJmhGlPNOtu37WRsfKaMvIPyJD4v/5gydKfXouvQVoGwuo7cZyvtO7TfIq1VQ1bNwCsDR3iEOlDGr8pv482um7W3MtsVxm7m1VJUpY3uOQEIj4ZcS6uCmn+3ukvbp/Cffb2L3EdYluibbsoBVRi126o+duUIx4X90RCiOq6eyOOkVFe+YtrRDwxK/YNV+ZdwjXcdse/Zqi84acdJqQovMRyOoZjf3eL3QdK83+1jKIFWfzY7TwPJ3r07+ZVPvp9hVfDNv/kbvnXqNXpJQmkDDgmjmHq9SaPRpBbXCcNAP1+QZxmZKHP5qEIfyaFyTesFSQ69DOpxwPxmn82gxrUffJm92x5htZOBKPA1dX/qlG6vTYznEafrpCNqP2LM4l7l64DJBuMQtMg4MHlG4hb4DnEhIA5rTO96kOFzXy93KAO5kgRhSL1eZ3x8nKHhYYpCsSAFSZrpqJRyjgpyCiVs4jtj01EoOoniRy8tc8v7xhkdEwgToVLpj0/U3lEoxjd1k76YvS4mk6c19yknbKHpqyhMqKXO+lkxW5nPOJJWBgzQc+VMdkIKAgQ7Z8bYs2eSc0/8JeeudlFxnbg5zI49+9m2fRv1eg2AVrvLlcvXOHfuAkuLS7RaHXr9HmmW2ZxcRto2IJQW5ZkQs0MRHz85y3s/8h6eudbkwmqXLOkiKJkCSqCkoMiFFoyE9R8IDGTo9vt4opzg4ZaxcAvWYwhCKW31MaYXX29w82ElOKs5GB9AVTu+qeRu6rfigLJzh+eruplJ32G/8JpdbWEVMt38V6sz96rmrErfbvL+n3b9YtFHJhmVbsgWpulPlmncTVF7cEGZb16I60+BeF+C/VltrTCjSmHD8X/KW7T4UNp2PZ6tsA7oCgBWUU63rQRTa5vXDEhIfYSizr1vnLpZoXjxtbd59sknePv6HIgytDSOa8RxnTiOqMU14lqNOK4hRIBCUOQZqNI+K6UgN5EmHhGhCja6Cf1+wq17mty4ssq3Lv2YX/+P7uStWkQvTXX6ZlPejZ2CMgundNPqGLLzshjGYYUdOx6qQg+Dvzmnsv7uZfYsNRHTJJO3qSR/QWlyOHxwigPyEda/8SMWC2gODzEyPsHOXbs4cPAAU9Pj9Npdzr55jvPnL7O6tkqr3abb65AkKVme2eSDpT1fEQs4OhzwyyeH2NlYpy3A5qnTbTc7tMv5dmcZVAUa83vZ6coGJo/BKkopvigGouhFlRFSAYYqaJkolHLahKVDI8BIIanHEceO7SW99DxPffd5lrsNgpFhxqd2sH3XTkZGh4iigCzNWFtZ49LFi8zduEZrc51er1OGP+sorqIQpU9GaTrQIFgoxUonQ2QJ589e4XqxD5XnVovJM8NM0CHagqKoAp4BNItjQuhNYB6N6n4Zs1yBcuNvnjV4b34ayNNexUphaVWYcTdLV1VL+Z+2Ri0ZJiWsgEHlGfd+85tyr67W7s23x7O2sI2qOAFGOPetBe/0eufmI9/MYrF+oMFoQjXC9RZeZkr4IKkJ+CYddc8J/8uAXdFv483bPCAaVDm997kS2TRQ1jJbDzhdyKyxZXq2aY0eCncSko0+smPkzDGmEbmS7Dh4gigICbUTOQwiAimRmsEYidpshhPSP8RcOvZqwaFcuP0sQZIzNhTzxAuXeOqV61x75WkOzY4gRaAfMP/r/Rk6e+xgkjoXSeQ1X8cGOnPTIBM2o1USsCFaM/bC1usxJu8drh3mCHOQgeLh3/wd3vd/+qfMzIwitYOyn/To9Lt0kz6bnU1WN9fodPvkgLZdeP9vlSwagWTbWMz7f/3DHNgdUvRbKKST/M26r1CTEzRcmhCxpf7q5kgHGc5/7AtFjtZKrHMLZXDPg2G8DpvcHAlRRhztnB1mx4TkzR8/Rb8+S1/VmVtYYGR0jImpKWpxWJob212uX7/O5UuX2Fhfo9vtkCY98qzc45FT7gb37fpKCzhSCrYNCX7573yStckjJBkIzFkK+nCbmwh9YqDdlZH16UyZkXY+NxelNjgeN8OV6prbcs9I66LysBNS4CZvEx5IVJ9xsoO4SRNE5V9fzDJ9raw874snn2DMhIZOKgZK5Wp+J9c7z5Jq22RASZm32f5iJRfhZtInTMw4O8cXCp1mebDn0htDv5u6LsNsvXEuqcU4d3963Q6sdAEvaMc02Tbfa5Hh3BWepiddqXIDlwOBQUd4VaOyhOLSnwJlfP707CwTkzOsrC6CKsot/4VEFQF5XhCEijzPS00DgRCFh+Vmc50s88vrFxVFQSMKqTfqnDrfIkSw3s35y68/zT++9QHmmmOstttuWDDgJLdI/lYCE1R/E9Uxq/5oJQD9m8BXCCxN3ITJK21CKcvqnEDCAJFi7q1nOfX0M8yvtEmSnDRdp7W2zvrSMtcuXaPWHCbPcjY7bXrdDmmSkCQJWWq0Az+7ZZlBNJKw0c1Z2wzZfnSCYKNLIUeqzEsoZzBSbn4FpcTvA4Qz44gK+PtdNTRXRrcauPNRxg97FLZePcOGyioCjgEKKSVDtZgTx/aSzr/JS69c59JKzsyBk+wdn+GVZ59mZKTJ2NhDREXI8vIqly9dYmFhjlZrg06/S5KVWlVuT1HLK4yxfE95BOmjxydozm7n6g/fQqmAQuVWehYSVFbOabkvwZlYjNYkygMSyjJ6PAyzNGk6jLlP6IfL2h0mCXARReLm0rITOr1PFROWY0LG7Gc0Mve8q8xqbxbMPSFReZqJcrNV4UuqShcuzbey+FMM9MNik/IFVPebqpT8+de7yn1kOldxbg1KQfYf7CQ5cDQS8iCae89SrcDk5a8YeMx9W9bnszetyWvngE3cLOSBG6ZWT/4rWZVnPxBuhVY4v50g+5PfUU3YUgAFSklrUi6JShGFAQcOHmbtxaWSIQhJkQcUMi8jNbKUQEqKHC8jq7bNoqNAggCBIs9SiixnaKhOIATz612atTpjsUQJxYuXNnnhB49x4pP/kBfOpmRFqiV+szPUd6L6I2sWiDd/FWYLSLfr2TcHOiHCMQJTzkh81rYqqvWW5OPktDwV/ODxJzn19I+hVmdydIw4HqHeaDA2Mc7O3bsYGmmysrDAhUuXWF5eobW5SZqnFEmZ9qLIy9TZdncs0APaueIH33mWtWKKfNcBRCCQypO5zH4XjwxM131ysgBlHe+6X+4HFDoEE0czJvTSPIvQvgUP4EqziQ6PFB54WFuyRMjSx3JwzxTT0zXe+Mpp5loKURtGBTXi+jAn7riHl154kbfefo077nqAxcVVzr39Fmury7Q7bX1uszG16bHy0m9AaWgNJGxrFHziY/fw6oVNkgwgx0Kkciauwuy41lgg9PGweZ47ANXjWmhGaMxrNkJUMwh/THxWaujIAvsAMDq/hZ4ry5lhcLeYmTrLPuw+BTQNe+ZaH5m99thZqxwqZQjH+25zJFUFJRu55pnWhPnFaja+Vr6lKT/3esfmI1vnQO3m5QbQHJwKS9wVycjOVnXA/drs8InqHYf53jtu8vjN+1+VtgYhzlTrQK4K5IY5bJE2hKjUtMUSYWnEEaRb0NJK9qAXid5mv2vXLsbGJym39BcolWkAK4+NzDN9TGduQgC1ryIICIIAUKRJH6FgeHiYNM1p93MUkiTLyIoyLUc3U3zjiVcIVy+wc9t0aUYSkjLVhwN9pSdAeX3yBsGCnZFmzH4QZ11wC6iyx8SXpMw9YSQe4TQggU0xgpD2uM8wlOw49AjDI7tYWJlnZeEaG8uX2Fyfo9vdIAgl22e3Mzu1g2bUJApiojAijmpEUUQYBF69rq+9VNHqFkyHCfuPHSUMAkKpd4tLiZDlc2U/TQCBsFk9K5K8NR96JGHWhPLiQzzTj9nsaIoq3TBrYBDlujL7EZy06QbMMJhASibHhrjlxCE6N97kJy9cYC0PqQ1PsPfIbTz0gY+w++BBRsbGmBjbwU+eeorvPP4VLlx4k/X1VbrdLmma6ig4nVKiQNv3HeBLCQ0Jjx6os+fEPTz/2hJKBpQmU4miPPFNGYHAjJO35goPVK0p0ZOwK45Yf7FZUKY6HkbwqFxq4LNyHwXV7/goI7zvyt3x8c2/XKOdgHMTkLKUP2BZsC0cNN2aN90E/Fy0XzXEe8sQ/IzrXYSkOmL0B8J+9BmaAb0tY2QaXn6rcroBwoaByaz2bKu5abAsbGko7r0O8Dym5UsBDHLisi4H/jePBCilH68Ptg3KEq6oeGxNzdpEosvHccihg8cQMkCpglxv9MmKjCw3DCErk4fpRWNyMCX9Hv1uh+bQCI2hYZIsQ8lQ9zEnyzO6RQ5SkCq4vtTlmce/zK27M+654zCNKNDjot25yjiDnSTrj4zwgN6JJd6i0Z+q4alGCnQMpQQKF9fvj7XU/4eBLP0rMiCQkjiMaIxN8cA97+XExBhTzWFmpqbYsWMbO3ZsY3w4phElTIzHDOlkgkUBeV5QRqOUQC+lRIrycxiE1MOQESnJejn91TmCQBHJgCgICWRQhniarLhSz6kozXaDIbplZzXT0OmkKxpW5a9jIv5l/VE6aMEIDwNPgpbErZYhYKgRc+eJfTSjjLeeeYnFNiQIxrbtZmbXDoaGI+6463Y++cufYWV9idbmOuNjk7Q2NlheXKDbaZNnWbnZTEuoBYVmCFizUU0I9jcVn/vYPbx0fpONxKV2Mc30/XVGEvYFKuGNmTVfer1UyoG8FYa875YMqyKHB+QeVhgJxGCRMIKmaQiuDoH1Zfrr269HKA+YvXmrAqTvjXDtuKlPpNID1w+LX/64OCljyzMOoN4ZZ3jHTMERrPvunBmDEruwRSudrVC/tzGnetvnLl6VHgDdtIVe2cHZHGAYJXF5ROXhmX9Iz5YmV15XNYsZp+nNFnulLRoIDXg6n4QqD0cxn1XBrp07GR+b1As9Jy/0wfK5Pqozz60mAZAmfVob64RhjfGJGUpiF0idSgBKE0WhCnpJn0KGqCiiXQheP3uD3vJ5ju4KOH54Fpuax8uxUJGQhPtcGQ+lPF+Hfs47ma4SzuyZhZzyp23gokwvXcbYQxBIglASBQH1WszYUI39MyPceXQnD91ziJN7RhhqjjIxu53p7buZ3bGX0bFZAjkMssn0zC5uu+02Dh86wrZt25mYmGBkeJhms04cx4RhRBCW2kAkJXEgIQhYbids2zHF/Xcf5547DnHiyDamx5uEYbmDXOoAAOH5k8xJdg7kDAFYPcAJToN0pomwSm/Kmz9VfQA/nBdP0i7/b9YD7rnzCDu3jzP/0rOcevki7aKgPj7J5K69TExNUq+F1GsB22en+NjHP0GiGjz/wsv0e33GRseQApKkR65zbBnpSXnwEUlFMxQ8fGCYvXc+yAtnlm07TGisaZ/BhZvtb/EvoxVUQpy956yPxkrhbvE6w9QAnQ4M61atwf8oKuBvhMitGCQqf4wZ0qbuFv6caee4D4rKBSYgPDQVGllUFV+lYTDKpyrh8zj/jtf2d3a9+0N2hBs6UUFQB3h+uKIWBwC8+wrjaHRtdZty7OCpgc5YVcw9V+GaCs/PfLNRUEBpw3fhhF4LBt5XNsMQhv5/YHQNwdp4ZESF0/oL1kaQGIZoJGThAMWMDUAUhxw8eJQXX1y2h7MUeUYhJXmRI1WgmUNKt9uhFjeYmtlOt9sGIQnjOlnax3rbzPgpSLKMTpIyNdJEkfHaYsIffuExPvrAGabv+BwuDFLoudAnX3k9q3w3w+NLWqAZBB7d+OPhz7fJsGqGWdhFH8hSQ4gDyfRIzLYdM6Rz56G9TP/6NZZfn2f+/GtMHT7A2NAYQb2OQpKkXRZXuiys3yBAkfQTeskmqBSpzz+QskwMB0VpmlaKSBVMRYKpZkCnk/Di177O+O5XqA83GG1G3PGBX+facofLNzZJsnJjYQkALtDCOBsR2DThhulbTuGFsFoTkq6nJCbvEBh8WUnZdWYuEwlUZdaKE4enOHB4D8X8Od5+4zyXlzdopYKx6QaNoZFyv0sQEoaSLE+ZW1pEBBFjEzu5fPEcG+sLqCJHyBBFro8vLbUd834pIJawraH48Afu5PSVlM2epKA8Oa3QSQFRHsnjGIGgNINJIctMXF4eI9tPg6tCm+iUQHlRaI4I/a1ghkmaMXHM2htKS4vK7GcwlK+UxQRjPjVIfHM2I7y67GRWnqu0VGAHwyW0c8JCoRypGPeNnV3T3oH+WoWhUhjLXN/J9e72KQjfyeaA0LbGs52V+DPoSDRSMY7bVn6rcgDfOalfaedWaQbg8cIB9r2FdTjmURmcKjc1c2mZwU0kM/PX1e4cvR6LdBKOZSp28FzfpB5HlzjItkNK2LtnDxcvvMXKyqI+sauU9IuioN/v0Won1OtNxidmSZM+WZZSawyV6n7SLw9pt+3AAZASdPp9JkeHCeIaaXOU51+9wfG9U/R3LFMeJCkw58k6zaYMo7UpGYTrt0BQSZNhKNqq0J75zTALj0lIb2yMSUIKQRxIhushe3dPsH3fXqRU/Pjbf85L3/kxfZWTBwU3WrCR1dlc7pEUgjRNyLIcZICMIxSKLC+zerZabbqdDmna18nacijK1AsmqkUUilEE44Hg0jOneP2pU7SVoDE8xP/hvo9wy/ETTIzPce7SEustnYqbcrNgodyeDX+RDwpBWy4hNeApCn0mhDGXFJTzYACh0OcG+JvZhAYXoZP1FQW0F1ZJ33yaldWUqUPHuDWJePGV11ldWODG1Yts27WP4eGYIIi5OrfIa6++yeryCr1OpzxmM27Qbm3Q73coVKbbX46TpNzMGAlFTQju3lVnz6138yc/WiP3fCVSCzFm3UkhyClB3SwK52Auo/jyHNcfO4BmnfpahbfGzRLCbeIyZf1orqpfUAOrErpfA1MyyBCqT1UxwpPb/bnBzE1l2qv1+Xf8vzdvy81ZkhMW9PrzHO/gt/NnX+8uS6qRavG1AcsfB/rpJF6Htj4EmOYKB8ReNKm9P1CdhRyvTleTf/ns4iaFBJ5UpeFpQFOocC8L7tW2m8++rc8nESp1Ots8BNb+LIQJvxWV6pWCuBZy7NgJfvKTH5IXOSotcxulSY84rlFvNBBS0O93qdWHSglD+wuKIEAUmQ3rK8fMDUCmFJmEbfsP0l5ZRPU2kc0hLlzf0JPhc8myUWaRumEpGYfQ5h7DdH1zn36yajrSI2bSixsmIfX3QJtmmhFsnxxmz/7dNKa3gwxRvU32PPIx2HEHm10opOSokIxMT9AYHtKAmCBl2d40K09aS5KElaUlzp49x/m3LzM/v8j6+jrtTptOa1PbzlMkBVksSUabyIN7md61i1mZkHU6dBfXePXJx3hodjc79+5nYnKcq1eucW2+Q6ubUeQ5QuozETzNEOVO9TPZgY0wpCijagymlMBeJpgzg+gDjAEGwwCUESn1fAhbR8DF+ZTJ7kVefP0C86rObbffyq/d8z6efepHvHzqOfr9lO699zM+NsxLL7/MuXNvs7B4g05nnV6vTaZP/BNConLIiwyrwVDqRqEQzATwyfffxRvLMWsdvV+nIrUKe2JOqdQUlt5NtlEhBEidFVYIu+8FgUtB7pmODCPUlaBjuLxlWTIeQ5Plo2YntC/SlTRugd4Tsiswb2QkvBu4cNrq0Z+eNjeg7ZQPeACtXH/MsFkssWZGf0+YmWzlXmf6iKYrq3m4V75TG9K73NFsZDsNDKbxXuesJGxuCQ3vFbXWkxGtLc29owrOhv27clVoFjo9g+U6ukD1Gf9vtb3C3qmOmanIAOmg5uIX9ticbzpTOFuzWVhKb/MHclUQiDL3kNTnNdjdzxo0lID9Bw/yyIN389QPn+K1M2fIMRFHApQkjBqEUYwQ2P3XJoV0kQcoqShEoVVjbeuWAbu27eG973mQK5cv0Ftf4+TOiKMnDvPs1RDnYMYSsNDjWg6byQirP+OOJhVC6mSqZR3+aXp+PWYYSx+C3vikGUpNFuyYrrP30H6GpnYhwjpQoNpLXH31ZZ7+wVOce/0Ma2ub9JQgieoQNxFBTKEE/bw831kVpUM+TTM63Q4bG5tsrG/QabXpJz1SE8VV+E57xVwGK50up68uMylPMRZKGnFAXAs5M7cCUvDoZ3+bxswujpwYZ++uFa5dvsbluQ02ejrLp0CnvR4QoOwOdwMYIAL08aB63ArKzLyFNqfokbdmBrOefAnEjDnGV6XI4yZzecqzb8zz2tXrnL9yhc//5u/wK7/3u9zxxlm+8Y3H+OF3vsWufQd57cybXLt6nc2NDbrtMuIo1fsSCnPusn4VRVFmTBVQE7B3OGD7rXfzl88ukes+SClL3akQqNyH15LpuUNy8P6i5wCrKaBM+bwC3FZ0VhbaHXgOMA+3VIXdee2veWWPQPWA3UCPeafpgVkTW6bAcnVTyDEvr/flM16twvEIJ+m7Pg4GtAiwOhbK+8GnqYG2vZvr3fkU7MJWjiuVyGcbXRWPDfh7dZgPFW7iX76teoDtWKnTx3n3rpv6EYQBamlKV9ox+MQWhUC4Njme5/XfSvoG8MSWc56NtFAos9lJeJKjSXNRSkOFkMjAUUlZJOe1M2d56dVX6PZ7ZRROFCOigDzPCLMUZICSwu4NKIFZIoMAkeelViIKCCRShJw8eSsffO+DnDp1misXLzAbdPnwfXuYVAvMjO3k2nIfJTWTsX4B3xxmBkezSB2JE0hBFATEsvycF4qkUGRKVQBSmLHSTmmpy4cSRkLFwQM7mTl4CzIe0uOVU7QWuf76S7zw5A85/+LzLM0v02r36QYhGSGpEiRCkhaKLM/LhS4lBZDkBf20IE1Tkn5iT1/LsrTsSuEkREnpJMwKwUZWsCEEcaJo9nJGw4KN/hp/9e//iomRJrd/7LNEozuoTU5zcHyKHXuWePvtK8wtdeinGSkFRS4RFG79GJObFARCEkkIhCJX0Ely+ipHidxJypYZCAdIilIStuc8l94sXyOTMmBqaoi7bj/C89/5HmeLjFOnXuP69f+RD37m03zogx/lP/wH/wFPP/UsT//keTbbXdJeQtLv00s6JGlS+rB0QsbCyyorpNCb/AQf2Bvzj3/nvXzzx9fZLEZKTSl3q7TcyOfAvyrvVpFrEDztTas1KBziuTUykP3CVWBQ10jV1kJkxtV9ru4zwD3rMQi/pdaeL7C5ktyzyvINX1g2N7e0V6sghp9YvwtVzUEoZTJmDfbUrlHl37hZ03/O9e40BYUbXPNRm3GsNUc4RiA0P7RjJZwdGeFyHYkBFPZ3f/pC+RbQt4zJdLrqTNmC7b724EsEA6WNv8LdHXhvhaF5PgHhSybCZbHQIG3s+o4xepShFCJw8e5SBpoayuii4dFJxsYm6cxdLVM4ZymSMs9REQTkQaBjwMsXSFECYhiEFGFhc843aiN8+IMf5PbbTvLNb32Ti+cv0CzWOHGswb/7wlm68wnHf/V2FtZDoExuZsIoDXP12b2klO4DKYkCyVgtYrpZY2SkSViTZGnB+maP+VafbprpRGYmwqiUJoMgoBZAMxaMjzbZuWs7ozsPIXQYrQDr7Byb2c340HBpypA1onpALVQQhnRlRBIOkcvy0AOVC9IiJy0yeklG1E/o9/s6IVu5IzfJ+tYUKRCEUlILIpr1iNGRJjsnpxmrb0MkPfrdFVS/w56ZUR785Ptp7rmVfiqQWYYMAwQFcS1kpt5j6kCTPJ5mZXmNpaV1uv2M3JwPQJktdKwBe7ZPMD4xRRCHFFnO5so6564vcn2tQ45EqXyrpCi0VOqZT5wpsiwQiFKrueO2A7SvPMdaJ2Fiahthp82VG4v80b/+15x67nk+8vFPc8e9JxmfGuWvv/Y43U6bLE1QBRRFpplnhlI57iAhCCidy9Ox4NMPzjJ14jZWL65Q5IVtV7nJTfsUcn1Ajpb4bS49JIjcglcl/sgIluXONev4dcBqTEZVxaGypo29R4mB5wo7dg6IvXHWDME5cp0GZs7MdhpC9VXmB9ueiiRs2ZFjFOZcacAcMyB8RmaGQoe7S/8Rj4E4ZqrsO28iJv/c612aj/weep3CdNIxiLIjHgBXsNcxDpON2KrRGljLR4zd0Tk3q5tdXF1bzROWJXktF14XnIaxhSGIsqzxD+gMC8bKbt/qvdKBvVZ1fUamClCy9CNUbKFCVAjLJWQVFEVOEARlIjEgDAKOHj3GwuJ1fZSk0uGppVQcFqUTWklJIAOrFSgkQRGAitm9/yC//uu/RpYl/MkX/5Qb164TFh1ObIdvv7RKpkK+/tQVDj94mh3TDzC3vKmJ04yrk0wNqAvNgGIJ2xuSwwd3MrH/ELI5WnrKiwLV2uDK62/w+rVFUlWGbwYyoB4FTAzVmJ4cZWxqnMb4JGFjpGQGqqDotSiSFnk/IW1vIoo+YbLOyTsOc+jIQUTcgCyj39vgwpmzfOVbT3Ph/HlaeUaS56S52d+hyFV5fnNemHulWSbPM8IoKumlKMgKhcwVtVyxXUru3NXm/kfHmZjZw9DsXuYX1/nhd5/gz//1nzL6lW+x/8AujhzZxwPve4ihZszV137Ms997muZ4k8P3PMKBez/EoUO3sbHWZWFxgc3NDchTdkyPsufIMWpjk4iwZlYCY/sV03sX+PETj3M1VeSYk/qK8owMjOYJFZs6uASLUhIEEQf3TrN9aognvnyKjorYvn2KbeEQJ4YnWFi4zqsvP8Prr77KrXfdw7Hjd7B71x6WFlbptFrkWUKeJhRFiioyyN0mNQEEKJpCcGJCcf8H7uX7Z3okuTYTKrMbW2vIRYGPwOUa05lvhXPy+lZwCxeK0vxYuCgbK5l7SOhAG6uJI5QDasscfNxwq09oxlHZGGfMTJZLDJiiTFHNFZTxV9jfPDbnax3+NaAZGNHX7E6vvr78zaW58Prscx/DoAY5wjtUF96do9movR5zMPDuQs7cb9Y3oByD8P0FVaF9IGTKPuOA3IW5usuYj0y9drj8xSKEX6n96JDdqAaC6iu05c/XhHTlLmWBe5kLOfVoQzsDpSayolDWp+DGqUAGgWuwyfWj22sW+57de9m+bTfXb1wuJSTlIpGyPCfQYaoKpY+6lAQqoDk6zMc+9kE+8bEP8O1vf48//bMv0drcoEgzEB1+eAGGhkaZqoVc7WQ88c1v8Zl/eDcb7Rq9JC1bqVNLm+yuZmykEAQCxmPB0duOMrnvWOkMNn2RIWJ0nJ3793B1YYWNrKBZk+zeNsn23bPUJ7Yh4yaIUtIm6dBdOcfSm6eZO3OaTmuJ/SfvZHz/bTSm9xKMHaF+JET1Wqy+8Syvfu/7/OipF3nh3FWub/RpZQVJXpCVw0iOMb2U5hlLBgi7+xgEYRiT5ymogkwpFvKc9kaHlVNtLpy5wt7xkPGJUYZndnBwdBoxNsTc/DrNndMcOHGE8UPHieqj7I4n6XdHePKr3+L0M3/M+I6vcuT2I9z2vl/i6J0fJIyPk/U6hKFC9VbpvP0GEkXzyKMQNFBCUJ+Z5Y7b7+TMv/6fCfffjRgaQ+UJIpBu34jHEGxwg2HYUjAyOsTJk7ewce55Tr0+hxiZoD4yxJ4jJzlw5CTXbyywfc8Bzpx+lqeffJLnn32G8ekddLspSqUMNRqoIiPL+pTZQpVdXIEshYCpED5y+yT5zCHe+Mmi1WyVKpBSkmW5A3HlrU1LPZT5uQZ+KcFPafOZmTJV+evwVpf136FcVQ6D/Gihwq5NrwbbR6XH161/j3nodw9K51vZma9LUP1VseUXYWvTms+gf8PcMzKa/2JhW+bGUYD/lpuwo596vft9CqZqX9CuvN/zgFcuB8jG+WwIwzEKUWUM5q1OyEBIvRPA4qowFeqiHhPxXm12pdk++GYm4c2yp12gQAl9NjMu8NK+V5jwSdfvSnZMza1tNL+eKNNzpVTlCE2lpW8Tv2y1FQ1qYSi44467WV5eIE31WcOaKSjtDCwZRelPCMOQW247zt/5jV9BCPif/t//imeffZ5+2iFJEnr9DnlREIQ1ojwgqkVIGfGj15e49+XvcfzuX+Pl84tlxIkAIfSOZjMS2q5cC+DQ/jEi2vTXF6mNTiO0CcdcQaPOcJSxbc9Otu+coTk2jqhPWEaQrC2ycvEMV944xaXXXmX+yhVaqy3e+xu/xp4P/F1E2CBvr9A+8xLrl86Sd/tcOj/Pj37yFi9fXmWxC/0iKM1nYVC6fZRC70AombPC5uFXqkAUpbSqipyo3kSfnI2gnLMcwSoFb/YUc/OK0cV1hi/3mJ6YY6gRMzszwuS2CWS7y8ZbbzKyYzeje45wz+/cy5H3fI7/7b/8L/jmT57nxy8tMPu15zl+xx/wwEc+wMmHPsfEvjvJasPEY9MsPPll1ufm2X7/p6AxhhKK8f0HGA0b/PDL/4YTH/88jandUGQaEPSpetqUZ/YolNk6FHEYcuLYXsZqOd9/4klWshHq4xOMT89w+OQtbNs2y8y2CerNiLml60xvrnD1ykXmF16hVh9CAUWWkacJcRgS0KCf9MiyFCFK0BgOBCfGCt7zkTt57o0e3VQLixqZc+13KNOwVDeqlRK33g2t1422N7m14AG7WeLKBxbP1GM2dwtXvQNeDw3NOi8DXJzkf1PoNOK6rtiYkypAb4rbx4xUajDS/a0AsqB6EhsDdVC1cThorfbdjJsLR9bF1FaG9E4ZAvwC5ylYjibKxeZSK7vXb7X9638q3MLxRmOuATwTkcdtNLIK9GAKi/E3f2dFrPffZqR+94Mf4uZq03Uap4AwNshAE4iv1Rh1WFkXgbhJu2xYojROVn1Ks8opLcyu/ybpXqEgFMKOVFEUzM7McPDAMc68+UpJbDqCoyjK5G4yCwgCwb49u/nMZz7ByVuP8u3HvsNffOlrLC4skaV9Ot02eZ4htO1ZosjSPpmoE9VqtPrw4x/8hN+96wPsmpniyuIyiMwSvEDpPQRl+yYaknzhTf7qX3+Foant3P3+j7PvgY8g602E6qOCBqpIyZN1tm2/jebIEKunnmD81vfSuvgMV19/hTOvvsKlsxdZXd0g76dkhSIQAaI2Tv/62wRpj4vPPsmbr5xno91n2849XL6xytWNHpsqIItqIEKkUkQIpHISV2H3dpT+mUKfElZIhVSKPE+oxTVQiaaSggBBLMpsqTLQfptGiBhpsg7caPdRqsulH57muWdeY/v4CNt3TrNj5yxTu3cyMjHFA/ft45W3zvL69TU22jlXb7zFj54+z8ljX+XTv/Hr3PWJ32H1/HM0t+3lO3/wB7xfhEydfAjZHKLo97j1/of52p//Bd//o3/JbR/+FDtP3EdQ2ocwu94NvRimFwQBO6bGOHxgLwsvfIPTb65Q1MdoNCMmZrcxNT1FrRFRqIyRkTo7ts9y4a2IMGqQdTpsLs0ThAFShDq+v0Co8njSQECep8QCpkN4360TxLtu4fXvboIISloWUstohTUhlbKQh9Ji8BR77Hq15iK0WUlQcbhvxWx/D4ADdR+b3Tr1pHgf20XFrG8RoyppOz/EFof2TQ/v8YDfe8gIwa6R1X6BGwP/PAfD9FT14S1gbyHWgGSVF7+j612lztaw6gBxELiFa4PwG2fKCAORYkA6Nw2uSvBO/Hcgr/hp5fxrC0fQd/zIJtMFLe175Y007Ndsn1O4/DOedC9sXaYJyubt9x3RFvy1nbVMiufMUUovBhkYJqbVcX28pgwl9919D8s3LrHcapW/F+VO51DWOX7LIT758Q9w+8lbePGFV/i//19/n7cuXKCX9Ol12iRpHxMuWOb6KfPfZ0VGL1eIWkgs61y4scnl009yy4d/jxvLq+SF1JpQaQeWQhBKQSRhNO7w/Le/ydzcBuFKl7XVP+ODcYP9dz5I78bbRMPj9DsJi5cvMsQKBw9s48bzL9FLUp744r/l4sUlVlotVFqUJh6VI6QklIrTL59BdVuMD48wf2mVCzcWKOQQq9fWubayxnqqKMIaUSMAnZunoJSezf8mPUiW5eRFRp7l9lCdQhWkmSKOIooiRqAI0OmzUcRhQD0KGanFhPWAuV7CWruDzMu9IIiAsOiyoRqkE3XOvbxA/MIF8qzH2sYmkyPDzIzkLGxulgC2rnju1DzXb/w7/kEGa4vXuOOee9no5zz+1W/woTRlfOdeOr0UFRfsPHCY106/wKlvfpXR7fsYm9mJUBmYPQwlMdnUIvW4xi3H9hO0r/DSM6fZYIggiqjVm8zsnKXZrBMIyLKUVmuDfq9DHAjiKCAKY3qyR6/XxYYcY8wn5Y7jOAgZouBgU/Hoh07wwqsrtJIGBUprLKU2ptAM2PMh2JAbLTkZ/5TJ02S5gkFoozHYNYhl9D40elCv66A0wWq8LfzntyA61izjaxvKljdr1iCI40qV/XMDz1Y1CA8TuMl9oGK6MoIng2mylTcGztZiQ3RN1TfRFLyW/dzrnWsKvr1cA5g5vrEKoGJgZKn8asFfj/qghlD1WFgItaBsTDXlv8K752OuMA0b7IRrlOMUA5K/k/Ytg1Mu9My8d5CRKIzT3NtVqMq7lXIes3DMpSAIqlPhnyEgAxfCiFA8eGIHn7z7P+O/+Wf/nLmNDjMz09x2+0keefh+JsbHePutS/zTL/41Z94+Tzft0+t16fc61lxV5u0JsKGhWivp9BOiOKZRC6CQXL58hQOttxmJA1baJfOIAsFIPWB0qMboyAjNRp1GtkBjYje1uTZFUdBq9Tn94x+y/fAtLJw/j9D7JVYWlmh11jhwYJb25ir5uTc489YS7c2EQkFWlEw2CmOiZp1aPebK1YuEcZPOylsc2jkNjQmKxhS92iit9R5prUkkazRVuS+h0L6PItdO5TwnM/9naZntU+ZkWUZeZISaFqM4QuWRPgms3JAVBzASx4zHNYos5fL8Cq1ORlRr0hgZpZEKJrNNJkbGeei++xjaNUN9fJo3Xn2dy6++zNxmn6SfcmLXJOGc5PraGkoomoXg+nyLx/7mCWZmZmi3n2J62xTffvoMu/ZsZ/zGHEMT21i8Nkdzxwy75rdzdXGJ5Uvnmdl9mDzro/KEPFeo8tggHQEWMlyXTNdTLvzkR5y+3CEP68TNIYZHRpmdmaFRi0jTjH63y8bqOmvLS/R0xJEAwjAmy3PStGf3mhh0LESGUpL9YxEf+8ghxm5/mPNfukCuhimKtMRzk8ZblWZeoXd5K/2Ps5VrkLXHapboYjfiKSOIlfWZSCbDNyxmVIC6rM+sZ5ucsrL+NZ6YVzoEwu5eMMJ7BdgVFce1/5tpj/tov1dff/NNbD6DE7p1ErRmUnVum/B20Ie/qrIv1agt0xhBlT28M1XhXZ/RbCVi7371bIPKDfeoJ0EP5tCp6CEDSoBvf7cMw8f2wRcM3K/urC3bVtkGofvjPBw3YybeLevUUxbUbR3KtFjvT7LakLDtsxE8SPsdTfRS6tPOBDayp+yOce6Wzy501vnE3/ot/ps45gen3iCjYH19hS99+atcvHydtfVNsiInzVOSXo+8yMuMonGdOIr0GQyaNguzoU3Q62dstvsUsWSz22cTWHn9OQ5vu5vXNjJ2793F/v3bGJ8cozY0rB3E5UldO+74APe+/Rqnv/klzr76IvOXr3D1jVdYWVyFomCj1WFtZZW3X57n9ukGPzl9gdto0FchKlJIQhq1mFq9TnN0lLHt25jYvoNzF68wv95nba3PZrHM9IFjTE3tQoV1FtOMuNcl1JEoJRPItFZQhr+maUKa5qSaIYT9hCRNkEFAmup0zrJcgrVaHSkKAgFRGDBcixivx6i0z9mFFQpiinqN8R0z/N2/95/wwl9/leG5lxgdb9IYizh49ACnX32TmX0z9JODrPV6bPbXWFpd4dET+3jubMGllXWEzIkFnL9wnbHRKb7/1Bk+eO8J1jodfvz8a2yfnmLfkT4b7T55GHDHncdpnnqZ7tULjEYRshHT6rTpJ+V+AGH2pwQRB3Y36V1+la99+2Va9Sk6vR7jYcTQ8CjDQ8NEYUSSZKyvb3DlylXmb8yx0W7TT/MyFYXOcSVlRJGnQG4FoEiWYahr/YLvP3eDA0eusmdynMvXe6ggsFKt0dBKrdcsSre9zN9c5kDSadtuZ68GPCtoKW+5l2tKFTp1uGY4ZkUWRnT3jnKugKtZ1BXgr97YKtAP3HdSo8c43P2tz1fF+UptBvdss30g81ogTFSlHxl1s5YKLfD6Y/q/u6aAN14ecg/Y591XJ/EbPBYaKCvdFYJK5z1NwPxR3m2v+sp9/3m/RlvGVxC85tu5tO1wQ26kaJN2YKDh7jllOLjeiGbVBu8ydRg54KZMTDNMRWXrf6EUgVIIVaCKgJdeu87jn/s83X7KjbV1NlqtcqORnvcSHFOrGTQbQzQbTX2us7QHy+RZRiH0sYoUpHnKpYUVRJ5z14FRTr12nbjb5bP/8IPMjrZIum9z6bGvcqa9RnNkmH233cfsnR9BDm8jqA8xe+u9fODAURp/9M949odP8ewPfkDcHGF2dpbF1RZzK+ucuXiFpdX9nFtoMbu4TG1oiD0HdiHDBs2xMaZ2zDIyNcH47BRDw2OsbvwNl+eWkc0aCSEqDBmdnaKXwNDIGONT05ZhZnlGlmUkaUKeZqRZRpomJP2UJEmIooQkCJH9kDRNysOIhEAGIbnKGRseRqicWhgwNtRg59Qow3mPZGmZVr3OoqwxPBTw259+hCM7Z7kUprRqQyxmMHfmGl9/+QIjIzW2zYxx8t67ePv6GlNJRmdzlbXlBf72Jx7lBy+c5vS566SFYnl9k17a5/yNNXZdvM5ws8aLb1zmxIGUtoiY2bGDWqOGEIL3f+z9vPL6KT5w9yjx9DHmz7zE669cZzUrSIMmhCNMDEcc3DfF1afO0i0C+p0WzdEJuknGuQtvs2PfbhpDQ6ysbnDx8mUuX7nE6voK/X6XLE/LEF4jzWtJ3TqJBTSk4ECjNDmeX2jzp3/yN2w7cgtq+mRJvxKKvCiFrsztSs61Wc9ItM4sYzT08n25yTtlhDThgHxQK/DTrdgzoqlqBgYvrQnopuC91RfgR5FWpWzHlBDGsS48xjd4uWcsbGoEsPjiuu9pHKryNlvGCNtGq7LPqAG/iHJaia0cfKz+Wde70BR8RlD54zpXuXuzywCpe8B1fJDbGdR3Zqpq9dX3DCoPW8pW+M7ADgbhNApXxpmHzBGQSIf0DtOVK28cflJrJKaM1irM5i8TfSVwmlCpDUg7ztbXId2GtkIVSCUYm5hkaWyWt196kVZ7szwWUcjSkVrkQLkPIK7XqNcbNJtD1Op1hAzKfQ1pSpL2S6LPMqQqUEgKpVjb2GTXRBMZhbx+rUOkCt534xpxI+Lbf/zvCUb3E0/spHXhHKd++P/l/o+8zh2f+h2CmUMIVRA2Yu757K/z5BM/4vLlRWZ3BYzPCFY7fa6t9VnuZvSKgs005+3rSzRGRrjrve8jHJ5hYnaG5mgTGShEAGsrq3QKxcLSErt27SEXAZ1Oxo3r8yR5gRAZY+Nj2jEJeZ6TJAn9JCE1/4chYZhQq8coVTLYfq9Ha3ODbreNkoIojlHA7NQ0Q4Hg8M4Zjh/dz8xEwJWXXuZit8UtM0PMZgUTu/ey1hrnu9/4Gm2V0YlHmCsU185eZ2npGqMjNW47fpRmbYJA1rnQTtk9uo351RtcuXSO3/rdv83Or36Nx168QLub0um26aeKNy7MMTU9yZlrawwtbNKWi9TGphkaHmH+xgU+9Ilf5ey5M4h0lfpwxO7j+/jLf/PPePzFt2g2hrj79pN85D/8Peqh4LW3r3F9s0V9eLJMiBiEhGHMqedfZm5+gX5e8Norr3L96hXa7VaZG6rIKc/tcMnjlCV0QRRQJlasCf6L//j9fPNHqxSjs8wPTZFDaSrV4KuKosy9lbs0FlbcEsoGGfnL3frUBrUI/aRJmOdrC9Uw1a2grAbqd2VF9cdqC61AZtb1FlZTqi9lXylcdRqrqqGvZpXrsfEAX3mNtMIlbhxNacNQS9+xx1w9RudSaThpWdh3vrvrFwhJNZdzc4Bw9r6B8ltYhO+c9qDZfjI7g733VL75DMK8m63vVmAjlJym4Gk3lrEJ75jkQbZi+mYm2XB3cw/NsNxhIlJKZ4v0GZnVKhTmMNqyvGE8Xr0YAqFiP5XmeEuhOHz0KLv27efq1as89YMnyPOkHBsZEIUR9bhOrV6n1mhSr9UJ4xiAIigrzPMMJQMIFeVplBlZmjA+XKcWx1xcgRpwZq7Nj773HT7zT/7PPPTZ32LbHe9jfM8huitrPP7/+X/yF198jICA2z7zewQjU5CsUKuHTO/czbOvXWZi1y42+ymL622urmzQSzIu35hncbNNuBiza3uDbQf2EY3OopBsdDZot9ZZWV5kfmGZzY0erW6PMIpKkNEmA6UKhkZHqDXq5VBrR6txdgohCQJJGAVEcY0wKs9MyLKcxYVFXnvtFa5cOo8SEIYhKMXs5Dh1lRHJnKX5Kyxc6rGx3OFGq0+nD43GEFLGnHrpFLlKiVRKL4roZBGpysmKnNZmm8tX5kg7Ca3lDTrdNm8lbY43Y37yxjXW8sc4PDVEPYq42uqxuLoBEi4vbjAyMQFCcnF+GRXFzK53CBt1FjZ6XJ6/QbDtMF/5oz/n4x+dY2h8lIcfvY9vPHsVmSvuPDHDzK4Zls48y7kbXVq9AhqKPdO72H/0GFcvXWBu7jLLSw1ee+MlLl+6zOrqKr1ev3TA5/rcZXOQjkBn7i1XZoRiNBR8+M5Rth89yOiyYj0BlSR645eDngJsmnDf1q1Q1fM5hAmkKNeSdS9YIC5r8J3Rg47VmwG8/5NFX2HWkhdFVPjPD0DnoIzqgXn1p+o3B/8/Q3fwTOHVZ02ZKiOS3nuxn6sbX81z5pPLkTVQ6B1cv0BIqvdZmDsGNC3e2aZbMK72qOyCV5mz6Zfl3SAIV415p/5f6Je5arxPHv47ady7/NnVZWwOIv/dHrfZ0gX7IqMZiGo9hbLtVJZDiYHxEVZNtsCvq5bSRGiUJ32hPKYooF6vsXfPXiYmplheniv3DUhZhg+GZfqIIAjKIzplGfYqKciFIAgkRSEpEORJilCKmckxOt2EG62CmVAShIqNfsETz77Bna88xcFP/C50eqSdNWqTw9z6oY/z1W98j7/68hNM7DzE3gc/Sro+T5GnjI2Pst7uIsIaaS5Y3egwt9qinxdcurZOK1Ws9QsanR43FuZZevMyaS+l09mk3yvNYf0kR+UZ/X6fMK4jgVDC5NQkk9t3IIMAlXshpoUiz3Mvr1FCmvbpdrtsrK+xsbHO2uoaqysrtDdXqdUj0rQ8ljPLS79L2utzab7Dm1dT8iQjAoqgwXy/y2yjRndT8uql1ylQDMUNhodGqY+N0br8NlmeEgJF0mJ1PqHXblEUOd1ccUlJpgPJM6+9zRkhmWunbKSKa8sdRCBYaPeYXW9Rq8XMrW0wvNlhpZ2yfXSChJgvf+1x7t61mz/+yo8Zl3WGh2HHngP8/V/+MLfe9SCHbtuHlHDmxdc5v7BMksP45CQ79+1mz94dHDq8n7fffosv/fmfkKY5Q41hlvJFsjQhz8rxMtqCtfNrQgwl1APB7mH41Kcf5bWrMX0kgi6BlOSZk+DNOikwWDsIthaNPdOQv1a97LAWPAuvEFgHqpaQfcneAWSVOZROcLfuBiOOHMC6iirJ7GzkiWuHGnine2+VfSgPJ9TPqtdAiRkLr/6bMRnhtaUYiPK8WUa8LQL6T7nedUhq+bn8VHbQ44waP234pe6YGKzIXB7h2br98dxidzfffSqqqA4OuJ1wbzeUlczBJcYzVSrc6VDGbOOIy2duWAnfhp+W4rkWSHT93sRWQl7thhmsdOvEGGGlGuvALhumGQYuH5Mod7YKKajXI06evJunnn6cMk5c2EftQGhJSEpJriAIJTIPyHopSbfD+NgYQsDaRgslIiIBnX6foWiITPU4P9/ma3/xTf7DPXewdGOeQoyw65YjdNqLLCUZnfOLnHryGWaP3kZvdYVet11mKy0K4uYwqQpp9zKSJCctBFfmO3SzgrSQbLT6nH/7Aksr7TLdhIAs65OnKYUAFZTMLB6eoBYGhHGNjZVlLXxIxxBUoY+LNH9zsjQjSfr0uh3a+gyFpNtBoqjXajqUV1GL6/T6PaK4Tqe1SqfXZ72b0dO5mupSkAR1Xp+7wXrvAq1ul36a0IybHNoXEf3/2vvTaM2u874P/O1zzjve+dateUABhaEAEABBEABJcB5ESqLVlOxlty0rTjpZ6tiJ4+5opf2hnazl1YnjpFd7OW0lVmzZGqKRWrGlaCJNgqRIkAAIkBiIsYAqVKHmuvfWHd/pDHv3hz0959wLCKWs/tJdG6tw3/e8Z8/P/j/T3s9W27RbCQNt6Hbb9NKMyWCMqrQN8qdho6qYyzKKwnCp1GyUmqHWnL8+YGGqz7CsuLYxoN/pUWjDcDJhVFRk3Tmm+nM89cPXUde3Wdkc89tffYaPn9zLqVPn2XPoMNeWr7F3dAfF1iu8/NZV1rbG9Of3sbR3PwcOHmRhcYZ2q8V999/DpPw/8j//0i9x4ewbTPen6PWmGU8mlKWNEmtcjCxPgEpBW0E/VXz47jmmj9zNqT/btofTHI3b+w/kSVxHgf4FcSitCW3Bh+BonOCXVGGvvrAiCdNWBESlVQwLEchegDvR3GLEQ+8LqDEP7dexHIV3SW5ZixFzZTtcDO0mypdxccYxQDAuJes00cLgCzRejxIWi1BaZA5S43ivDAFugCnsVFFEBxvYHN6t47Uo6c9rYoM3CpOTCbb63crwpxVrLYx4voNLqbpEEJ0Arlpn4kHhsN4RrWSKXjtwZSF3MlEfgCARCMKpcTH7URsTboZTLvaNXTRO2vDbVbUBVXH8+CFefXUv169fw/Mp73DWunIByPwihbyYsLVxnalen4P79nN97TrDwRiVtsEYdFUxnkwYd7skJmFSaV48tcqL3/o6B07czttvX2dmYYZXf/QSm8Mx/V7CmTOXGF6/wmhzyGBrC1OBSRL6swuMS81wklNqTVFWXFkbkVcFudZsjyZcW15mNIF+t4/xjK/dodPpkPTmaHVOs/+WE0zPzNDKUpQy7qpOf0eyjQabpGl4ZrBaQ1HkDLe32dzYYH19zZqRtrZI0owkS6k09PtTDMdDphbmWb52idXtCdt5SVHZq083jR3Hy5vbDEfbGG3o9nosLC3R6c+Rb5XMtHr05hfZNz9FJzGkXUNVKao8J8tLe/DLGDIDW7qkMDYExPZ4wtzMHIXWrA9HdPtTpFnCsCjQScrUngPM7z8Mlea7b7zNvqzF119+g+1ixGfvv43XXj7LodUNtq+vsrCQcuriOoN8wly3zdziEnNz87TbLbI0QY81eVFx5OjtbF7f5trVs4xG2w5nbB9xwQ99agH9xHCgn/Djn3+QF06PGZYJRtuQINak7teNitiFuwin5h/wazIeJPN3P/iV4881eOYUsL1RbjS1CtQXXwOCKELoce2ZiZLvCegM4C5PG8tdQo3rQj0o15JdfE3J3h5ujUxAvh5OWnu5sdHf4K7xP4j3pMbiyw67KOutes/pvWsKUoR3HMAqBLFyyRjEUxqGG1mq+Cs64k1CXtyWW1wdQwhwX7sSsmZVq7c77GiQ+1Ej+SfNNgr7k4EQIrsWhVVyQSfh17SIBrf0H23NPty46JiKWkLN8S3G1AtfsvhuN+Oek/fy5NPrGG13HRmtMZV25pSKsrLO5cH2Jp0s5Y7bTrCxtcHy6hqojLTVoSoLjKnQBooCBuMRC/0OlSkZjDVPPfM6D5kZlq9PWLl8nq9/83ukKmGkUnRi0FXOaDTCJCkFLZJOl/l9h1hZW7O3oBnLx66PSyaFRquUcaUZjSeQ9dHKkGZt2r0e0/PzTC8skbQ6vPDyq+w7eIh9Bw46H4y9JyGxqhg2OF+MQutNcVpbU9JkPGZmbo7+9Aytjj21naQZKBvnbWp6huXry0zPTjNWLQalCeG3ta6oyoqyKmm1uySTEcdvO8EH338/K1c32VhfJx9tkFEwPzdFSxmMSti7NM/m9oCV0YSUlJluB4W9/W1gINeGXq9HZ3qaKu2gUIyKiipp02q1yIsSWm32HT7EYDBiqjfN5esbTGmr1X7r9fPQSvjS5z/JtStjNk6f4eLSYRaP3c2FyRtkrYx2t0vWapGQUBQl19c2uXzlKlvra+hyYg+rKcVwuI2uSrd+TADERCk6Kcykio/eucjBez/IN785wvIO4yRWtwXbOYKVsttkfeiNHRKv9w0kCl06+V06pb3vTkXAbW4l9T6GCNYOvINQ5datv7hIvCnL8Z926i/UfQ6Y8N5uJeyUzuu/S/u/bDGoGrOQHFBuca8H9otF18vwrVDivQZzeo+c4YZ2HzVPMltriAnD3XQA20++qd4QI8Hfdyrma2oCATKVyBdSBF3PRAK3TVTjPermGt86D9iC7+D7Zbw0SmAqGEK8Ir+ryBbv9vvbJRL5WXgvlmOriGcVjIkbm3RVWb+Ca6bWmkS56Kquhf5MA0oFH8SJ22/h1Jtvsrp82co0WlPpkrJMqaoBerDBVLfL4QP7GI3HXF5eJW316HRnKPJxYE5+94XWFdvjMTNTfTqpoT09Dwfv5q3zV1nav48XfvBDXjt9jumkzdgo9ixNg0qZ5Dntbp+1wTadqRmWjhxjqFtWqDSWSa2PC/KywiQppYZJUTE7N0e/P8XM/CKLBw8wO79If2aWNE1Z2LNEkiimZ2fs+IqjpImfl7DwoxnDXl1a0XaMoNXu2MCDBoqipKhKykrRn5pGoUhbGWnWwV+JitM2/OnndqvDwvwSJ++5j0LD9mCD9Y1ltrbW0VXJZqLotVrsXZzl5L0n+PJXn+DS+jb333s3j3zgEV76zhMUxZitsiLJMmb37OH6xhZ7FnuoJKWoNEk2RbuTk483AMXC0h4S1aI/t5/s8hWuFSXdJGFYVXz71bdRU0/xH/6f/wGvv3yaq8vnmN2zwE/89F/hhR8+x6WL57j99hP0exnbwxGn3zrHmTffZHX5KuPxkLLMSbCHBXPni3GjCiohU4ZeArf0DF/6y4/x4tkWg8kYqwZKDDPin5NWlQr3Cvu5ildoOuk9mIekfV2H3wMoBu0i1mfplKgWE2QzR8umJpNpHX/3H5qwXsPMUG1kBlGnUNi7K4TGomKZ0trT0FuIoG3C+0FsFjJmvTGydbIVHncQGoNhl97YnO8kmzfSDZ1TCF1qHE7zzfYdlszDM46aTuGz1xWP2HCDjWApmYcrx/srfNeVHEnlvu+YB6cpNOuRzKxmtPflCEYQRlR5xcNW6zWD0Ah5gjm20ofE2IVvBqlABcYViTuR22CJ73sm6c0n3W7Gww88yNM/mLC+sYquSkqjAc3U9BSz03sodcXK9Q36U3PMzM3ag11MSLKERCckJqVyarsyykrZRc7BpVlOfOB9LB07wNrLz3Fk6hC/9XvfoCgNeiqj1UrYd2gfk0nJaFKQdhSn336bzvQ0M4t7mN0qIbH+Am00k0rbuFlpAkaTlwVHT9zN7OwCc0tLTM/P0G5biRkUc4t7yPMJWZZaXl9T2eVom/DJzo1G65Q0tbeEJSh0WTIejxjnE2vCKjXtbtf5aSq63XagFQs4Ghu8TWO3HyqefeYp5mdnGQ0HbG9tMRhuW0A1hn63zWc+9yFeOXeNS8sbZFnGQx/9GIlps1XlDArN2CTM7Fni+sYmeZGTdmfIWh0MJUmrx/Rcl2uDdcqyoNvpMHvsIIsHD5K++RLzUwukG5uMi5LcGL79zBuUU/+Kn//P/iuWr1zl1R88QXX2DJ/7/Gd49ZXXefb7T3Hy3vtY3djg1ddOcfXKVcajIUVhA9xVVenuqkjtyX1doaloJSm9BOYT+Mx9+zjw/o/wlT86788nW6pOEqdB4w6RibnYGUwowFl9DajaNWIx3IufZyvlGfGO3LW0m3YRt6oSwTLyid0FZhPXWNR/mq8YAeZNfUD2wb9LBP4azca83tcotQXLIH3/3xHiw9O6GSvioRR/3yM/AG7wRLNq1NDkDTvk+ICJqv6CI4bQaJHRUK8n8hTHkixW76jLP6+xH8koDPb8gOfUBmSkRH+qNTA22SzRVmkx8oHrQh4XrM83NzAhVc9bHzQP8ELOkT4UfMAzjfUwRBOWN5eoRKHSlEc/+gCf/uiD/N6X/4ALK1cZ5SMqUzIcbJNPCqam5+nPLNBqtZ2AlYJpWZ9D6nwPSeIOwVgiK4Cjd9/FXe//AK/+8Hlu3buPr3/re7x27jLT/WlavS6L/YT9R46xdX2DsoTRqOC1c1c4fvI+ut0us/NzGJXhD0N5vFAkGJWQazh24i6mZmbo9Dpk7cwF3EuAhLn5RUbjoYvXVJeUdiEsvC5tQzibaGrCUJQzzA3nGAwGDEcjJqOCbqdLmmaM84Lp6X4wE/oZsWPlGY0hn+RcubYM2pDnRbhwfma6zxc/+RG6U3t57tXnSNKMk3fdy/W1ET946uskwwHLo4Lu9Ax5XlJVNp6QSlK6/TlGo1VMlnDo4C1cvvQ6E3eWZGZ+lgO3HIMnFIt7Fpk+fB+t157l4tY1qkzx1HeeAPOP+du/8F9y9Phf43vf/Bpf+8rX+dQnP87K9TUe/9pXqJIWl69cYWN9hclkQFHmVFVBpSt7NkG7W9UUpChayjCTKn72sX382Jd+jMe/+Sbbky4Kb+u3Dn3jqLRyEr/2oO28ppZuCWPnZ8nn82CuvSiPcv4EItgbI3LFlWHlNhXiiBFMSmJ5Nb7XwNXVpzBOS5FcQ4Ku+MnI7KL0UBbEzfrRFKcc0tc28jfOQ4DZcTg51FFTFpRoS72dtbER7a2vl3dPzXO375wUtUsbIjB71ScuotihnU3xTCBwUt9i37EGgwh1N5pjmu/UfhF7dFX4FifUNOveWZDsi+xBPCUY91d76SX+ZQc1SnAxnvM5Qqx0JeZb1fLUfA5h0di/PhAfWIZ0+fIaX/7DP+aZV57j4pW3ub6+ynAwwpCQZm37rtvjb2MgtWm1O7RaHbJWhyTLnLPW3vyWtTrcecdJPvXZz3Ph9FkW5uf54aun+Mr3fkiVpPTaPdoobj10gJmF/Vxf3cKkbc6evcK5y9fI0pQsTel1OxhvAjNYcxiJvSkuSSiLium5Ofoz09YOnmWkaWZNY2nKzNwso/GINLFbc5M0sZJ/4gP6ue9pSpo6p7O70S1NUtIsI8sy2u0OU1PTzM7NMTM9Q7/Xs2cY2vYMw+bWFjNTUw3LY9Tcwpy7+df+Wso05fbbb+envvjjpPP7+OYPXmU80SztO8KgqPizr3+VrbVlrm0NKJIUk2bWZ+CO207yAfMLSxgDRTXh2G23orIOg+GIsizotNvccvRWy9iqgunFQ8wdeYi9e47SrmCx1+W5HzzF//CP/wGD4RZf/NJPceudd/H7f/hH5OMhRw/t481XX+bKhbfZ3FhjPBpQlTla+6s2NdqUGCeytxT0k4Rj8wkf+9itTPYc4o21VghBbtwtapU2NkyK1iEsS7hmMkjLgnU7zTuEo/CY4X2UguqbQL5rSH0BkpLh1P56UGz4JcJnbx56R0BpCLRh/flWeqypZ6yViUQlEzBJ5BZ5pACqCBtpQ50+b72+2uiE8W+YpXaC5a7pvTMF/CEvrxNZLhFBSXTEdyDYe5tjHjlbtJTHvHE3QsDcuhr0Dp3bobV4Am0qUdLo12QcvgCx+Os/eGy2yrLtt6oTlyRAE1ViWUZQDkTr6lnjieda/5XY4orTErA+iTRLePADj3Ls8FFSlYQdUaas0GVBpUu0LkN5aWoPurXbHdrtFu2sRZpaQG61O9xz3wP83N/8G7zywo9ot1JOn36DP/vuM0zygk7SYqGT0utOcfLe+xmPcobDCYoWT/3gZbZH4wDSaZqgFfYqRgxplrpYPRkkiY1J5IA7TRN3SM9Gik0SRbc3zWg4cL+lIrqr/Z4mKSpJbJ8TyTAyUsdg0iyzh/o6XWamZ5mdnWVqaoput0O326XVarO2ucnMzEwYYz+fgSEIYcBKwPYQVNbusDkY8fyrb/Hdp1/k0qWLqCxhONjk4rnTbG2ssDkYMskndHt9qqKKIKoUo/E2c/OLkCSMxiP27t1DuzfN1vY2o/GIJEvYf3AfrVabwXCDO48fZENf5NZ77+XwkSOUk5wDS3u4fO4t/ul//d/wxLd+wL333suHPvRh/uy73+dHL7zM0aOHGG1uMNraIM/HlEVBWVpfian8VlRFht2COtuCj9wxw4lHP8LTP9qkIrXUGMDX3t9AQ4jxEmqAJLluTJSMI7ELm72n6yZHEIXXdh2ZKGg1lqhYaPaHGi4JkS9q77uAbFj6ovxdxG0vHAdaUTuQqP7dYYaFHqnvqiBs+xbW3/N+y5qYCsR766QgqWIH6n39c9INnVOIBduWy3EMPgDhkDY0hsTE/E1B3QOrXyghd62Anb2SvgHjJx87fHVbvxz8RlnCDraD4/odRUkzv6sD6n4FyxmDczlRCX5bGcJPYtsqNpCJdhtP/IJhNmfUb1FNXJhtD2TdfpdHHvkYq8tXGBU5YDUDXVXosrRXOmrr6LSB1FJQbfxlPXaSOtx1z7383N/8OU6/+hxZt8/pU2/w1FNPMx6PmO11abdTpvcssDA1y60n7+bSlUt0pue5tj7kyRdepjCaJEtQykaE1cag0hQDZFnLhuxw4D/Jc5SCNBU+FKdIKRS9/jQbl1cckHraaIRAD8sGxPq3IO4ZeKZooen3+1Zb2Nhgozeg1WrT7nRZ39xg5uQ9ddJwY28xLEq6AgHAGNbW11lbX3M4Zx3q/q4Lr1HOzEwzNTXLaLhtL7ZPFOiEra1N7jixCCgGoxG9qR4zswtsbw3Z3h6gUCwuLNLp9tgaDXn76jJ3nvgAr515jhP3vI9964d4/tQbzC3MM5ls8eu/8ovcff/DPPahhzl59wM8+/1n2dpepTc1Tbq5TlUWznnuw4dX+EOUWaLop4qjM/C5zzzAhcEClzcnRAHJrX2UcwZbMNLOJuht+hFAhTmIusTuB9ivoV0uNYgsw75UD7ONaTh1m5kbTEhQiyzdWZ5qr0n5XWxa3ZXzhEdBU5KGpSgA75bdiN+lUFgTFH3xKmoptUqpC51eQzN4s9WuvOwd0w1oCrIxSuBskOeF1N0cXGOPjNUcSLGxOxhO+CwmXBrkpXTixLmdg95AecGodhJRbE8wXyIa8E4stlmQUGN9gXLHRWyZ0Cxqjdz5nv9ZhbF1jmDlLuxxgBcChAGHbznOnXfeH1zext0noCsXMrqyYKCU1TSyNKHdbtPt9pidX+QTn/4sf+dv/zwX3jpNuzPH6tVlnn7qGTY2tuj3+rTSFgvzS+jScN/9d1NWhrXhkOmlvTzz/PO8ffUSGEOagUqwzktdhlPZWSsLph1Q5HkOVOFuh/BPKZLEbhkdDUZBYLBRPCMjDFuFlXK7wRLxm/vdmZOyrEWn02VmZpaZ2Vn6vS7dXpdur8f21jYzM9Mhn19wu+BYDTRq5GCMu7xe3jhm6GYt5mbnmZuZE9qrbfN4PKHf76DSjDzPUapgbnGR8WjExvo6iYKF+RmmpmdpZR0uXrkCqsttt97FxeXrHDh6G1/84k9RVBWbG5u0s4QfPPln/Mqv/wZnL15ienYvlU45e/YsZanpdKdRKnXti1dmthT0lGG+DQ/e1uP2Rz/CD15eoTASeJqingljHCRyT49+6Yg1JYWfgA4CzIyRoytc10Y8EUi3G5OJhSr5QHw1tfeNqUvsIXmmJr+CoA2BOkKDEqwMFRZvxEIj8ij3jmQgvmxPJyF3AHdvfvOtU0FA90JMaM87Mcx3Se+ZKUiJycuzETu9lhBlcD9viWtwY09AjbeEOkzzswD7BqMOKpLkBlHgbzQ8FqAaP9RsjYpdCiBKHL4NxlNSnfE0awC7fVUuAJtf19/ymkWN2blc7q5Bnyf2O94pbffpR9Wz3Up48MFHmelPByIyxgJzVRWUlbUnG8cY0jSh3W6x7+ABfvZv/S1+7uf+Oj989jn27p3n6qWzPP71r7GxsUm33WO63yXrdpiemmJ+fh/Hjx/j0oW3WTp4mGurqzz17A/YGo1IMKh2BgZ0qSnyMtjqszRFKWvmMUBeFEC89jQAvrubutvvMpnkrr0RWCKTIDAGr4InznymvHNaJY6ZpGStjF6/z8zMDL1+j1a7RafdZmtri16vZyXfhiS2c0HHGQ80gr/YxwoCvW6bYwcP8ugD93HH8VsARbvVDjt1/OKvqgpTVSRpi0pXbG+vs3/fXoo8Z2X5CkYbpqf6zMwusHRwH7/wC/8hG9vX6HWnOHboFl576zRFWfCXvvhFpvs9Lly4QLuVsrFyhSce/1PePP0ak1yTpm021tcZbG+QJAntVsuOE5Ap6CjFXKY40FN87KMPsrwFl1cnjn5McOgaTLi3wgtZXhvQ7vyC3ZLaWPWmseb8MCqPJU2BzxlFGotf+nVUYxokQNdhWAiy4v3oA4ztDtArMcgg5t4DvxFlCTBTgsXsIoWGKl1/5RgFYbiBGV6AMOKzrV4ynPrrO9J7ZBDvmSnYgQmsKqroNUm6vt0sajSRmUjOGbmrz9Cor6mFiLd3dLphxwv5PRGI36VG0qxNcvzalAjm43f91Kv33NqEd4xBbM1zKqWO010XvHY7rGMcMDrJgQhLkXaj1TFRiixLyDLFsVuP8OC999Jyh7TkYS5dllRlQVnZw2pJmnD3vSf5L/7+L3DvPXfz5Pee5cjRo/zgySf50z/9E4aDbbrdLkuLi5S64vD+g1Sk3H//fehKMyhy5vce4N994xu8duYcGk0KtLttMFAWJZNx7i4FAX/QNUszjMG2A4NKlf0XmJz91+t3meRj69jF3VHkmUMQ3yzB1Z4rwTQTyyDs6eeMdqfD1PQs/f4UaZrS7nUYDLbpdnskSRrmNEpsXhgIU+zWu6ATY2ep027z0D3v56F7H2LPnv2cu7LKGxevMp7kdMLOL09x9jKYSTmi3WljKs3a+gr79+1Da821q1coq5Jev8veffsZT3JOPnAn//Hf+w8YDIdM9+e448RJTr91jitXVvjMJ7/AsaNHuHLlMqW7S+LC+de4eP5NBtvbKJUwyXOGwy2KIqeVZcz2uiy2M+ZTxd4WPHigw12PfoSnn73EpGoH2kPZtirspUzK9d+PcQR2PxYCiMVqirKvF3gakroS61GWWRPaIhjGtWniC3K9S2mx0Z5a/CUPtALnInbV65X92IE8glfsttkmliMZiR9P+YqKr+z4UYigbg5qWcM2yF2b/q7phsJceLu577gS9TanXJo+kN93mfzwXABkrNcE2AvlBMNbsuO9aIcPLJe6JB59F4Hj+lzhnZ2nsEPoCSUP4Yn+a2PvkfbnKIyNgKoxJAb8gTZx7ABj7K1qNmwFoW3erh7DaUQtwi9A20YHTQrSsNsmIUsT7rvzIJ95/9/jP/2//n1OXbmKcj6Dqiooitza95ViZnaWL/zk5/nEpx7juWdfZjLW7NmzyB98+Td589Qp8qJganqBPQvzDIZr3Hbb7QzWJ9x3x0kOH9rPxeWrHD/5Pl565VW+88QzDCYTe1kLCa2shTGafDIhn0zA3SMxznN0VZFmqQtk52ZWaDvR7gDtToeyKKhcvCeIe9n9NNoxCqKnGDvwJ0I9/SSJIkszev0e/akpUhdBdTwe2bMQqY9lJegwrEz/V5gFvfPZtTgvKp5743UamcnzCa20FdqPr8Moyqqg2+2yNRiyev06tx+/E4Ph2pWrFHlOO2sxvzDHmW+d51d/9df4v/zn/zmkLX7tX/4W0+2Uu07cyeunXyNNMh564GGqQnP67GnSrAVJi3E+oCyvO7NjhsEelCxNRZUkZBksTbU4OJ3y2b/xJV59Y4WLq5BOdyirApTVNK2WYPDLUCmr6fgTzIoQVTq856cl7gIUSIjHEf+SqY2nfz8cjGtK3ex0RXgJP74RpXv/TApXNQuFpy3T8CXI8htlSASsva0svdXbvMu7oZj4mzLOFyNgyIhP0uQmS0YRInZL9mVEnj8v3ZCmoMK4xiVT+6fEolHx1TAEJkoH9ZLdJ6k61sWC2qte7YpaQ4Np1JhK/L/9KNlnENnekZdLR1Asape3HQEEAodg57dgbzMHfub76kw4iOdyH0HolRxb0YZ4uM0uwCRJaSnF8duOcs+nfoy/9LnP0Mvarj3Wr1Dpkk4n5dFHP8Df+3t/m7tP3MpXf/9r9LszlOWY3/mVf8HpN0+hjWHf3qMcOLCPpKq49333U5WwML/Ive+7m9WNDfYfu4WyLPnyl/+AqyurlNruSzeJoqXaGFMxHA+ZFBOKykr6VWUv9kmzltVetJUwJEOwJiBLoP1On0pDWZbsxrC9BuulvZpWh58XyXRslNhOu02/P8VUv0+n26cqNaSQZlkYX+NpVoB+BDDq1CzmpSxzdFWgqxLtTHdlWZCl3uynwCT42Fbr6+tMT02jy4rl5WVmpqfRxjKF0WBotZ12l/Gk4F/+i1/m1371V3n4kQf4j37+b5KTcnV1i6OHj3P6rdNc39zg8JHjHDh42F46NBmitTXRlfmE8WiTopi4wbHhKdbzijcHFW9sa77+zZe49toZehsX6RZrpK22O5Hv7ykXZhsjsMCdQwlj76RbjwNh3hIP7lG8jSbZKICGpaXq821CvUSpXuBM0FripNTzC0GzaaZuvhd+2yFxN9eoAGiXoc5sYiHRENBoZYM5CXOAzR0+1sVklNRmRRYj6LeW/93TDYXODuGfEVJsbJolFpUEXqjC4KnwkmxXfbeR/+73stusgQ4RPFZK+uJ5bF6gyDgSSpbjX1T1upOdo1ZXa2P5XkpymcPvkqDr145a8goRW7WB1D7z2kHQgowKz2MdYUDDHQyJu+vZO2VTlZAmik5bMTObsHHxGVrlZRZ7Ha4NNErD/NwcH37swzzy4UdQuuLZJ55gZs8hbj15kqe//Tjf/+53GY8HtHvT7D9wkMn2JpmC+x55jMtXz5OmKQ89/AhZ1mVp/17mFzN++V/+Gi+9fopJpSm1Jk1cX1PQumKwte1Oz/rgxdZWnGX2ysdKpahER6bgh9kx+36vC1hJG2aDNBeB2Z9Ahni5kSFOj18dxq8hlFK0WhndTpdut0+n26OsDKN8bM04Dsz8PQ0BNkw8cdrc++4dpXFXmibcD6IURVnR6mTuUJ7fJGDQJmFjc52lhSXOludZvnbdxhLShtWVVdbW1ul3uxiTUJYVKysr/KP/5h9x5fJlfvbnfo6f/ss/zv/6b/6Ity9dotOd5kevvMrMzBTzcwsMhmPW16+jtTtk54etLKnKkjRL6LYzMmVDq6yNKr7/3CnOv93n/e87yX0HU364BpvUF6LdeWQl2UQlVG6Xm1/juiFwaclStRN+3PvBxKpUTey3+UK2INX7w2byNLMXFoS3E1MvJRSqNHF+FRgX2l6abeXENgHbF1TTcJywYbvtQVhI+ya2IwibsUORzyDyu8+BedXgqd4giY3hIJ7Isnsfdk83eJ/CTiNQjYt7wPSSewAyyU13ytnSLVHPYojBjJQjDPvZnx62+etO2lqZpjn4sSIpWQSQeTduKjigVzH93QlhC6mXYmTdWIBITIq/H8G+q4Jka4xGm3ggzYfy9mXbaqKUrBJbX+qZQZaSpopUGbJEU2yusufuR/mZ/+A/5fDRx3nq+TdZzXO6i3MoVfDNr36NpYPHOHT7Sa5dvsTX/vSPuHLxPIaKhb0HOHBgPxfPvsXRW45z//se5vU3XqOajPngI49yYP9B9k7Ncvudh/k3X/4NvvGdJyl0RV6Wbkm6MUlSKq1ZX9+kcEHllCJs1Wy1MgeymkwlZImXNO3ZbZ+6rRbtTp/RcAx7CGNq15qiKAo215ZJkozZhUUSlUWhwHMLv+jFYkkUZKkiSxStzDrF1zY2aGedSBPK1pcoFcMae3yTdCGk10CA7kcvjWptaLXbZFlmt6Q65pAmhtFwzOyxWcqyYmN9m43tAUopNjc3uHLpMnv37Im0pDXXr1/nF3/xf+S551/gp3/mr/LQww/wve9OOH/2HK12m4uXL9NKU7Iko9+bYjjcwhhNWdox8K2ryopBZei3E04u9nngyAy3njxEt5sxuLbB5rk3mZ+/kw3Vi3vhTey21lqGosJURvTdwZ9bn/ZWN7ccw+1rcpxEwcbPF3F9ee1ADL0S36Uf0C9jf5465HFMe8e1xiaWVcNOpWz4jwawh3lt8JEI9nJQnKlXChLvgtKhHbK/or3ye2AY4bkiWlEbpqt3wzaRbpApOEB2n3c4h2pgmASJKUjmXorznLUmxUd7fqwqsqAY6sJfhCMYRaLC6xFsPUMJJTgeEwFHahu7MRbfjtpJbv9YR80iCKHK1+SlSy9FCDB3KnZwRBtD/e7VxNVibd+SW/qrOb3jNE3S+FkpWklCvwW37e3y3ONfw3zj63Smpllevcyl68ucvbZOcj5j794j7L/tGBdXrvPM93+N0eYG4/GYVqvD7SfvRmM4e/otPvGJj3LLoWO88NKrGF3y0MOPcPzoERb7c9x5z6088+2v85u/+2/YyscU2ljzkBgrk9hYQ2ur16nK0jIFEsqyRGUJrVYbtGF1dYVvfetxur0ZBttbGFOytLjAffd/gAMHDpOlCZ1uh82NdczRw8Fvo7BAvXr1LGurq+w9dBuXL57nyJHjgUpskHq/U8QBotbkRc7y6iqvvXGKV17+EeffPkNR5Lzy6uuuDXGrZZIkVMFE6amfQDfxvzr5Ngmp0oaNwYjt0TZlUZJlqWXmScZoaO+TqHTF5vYm5y5cJk3bjIcbnD13jjvuuN3SrUrtqtKa0WjEN7/xOGfPvMX7H3qUmblpZhdmuXp5xHRvlq1te/9yVRa0Wi3nc7HtsKCjw5ocF4aXV4asbI6489Iq870OVZXSfewQ33zyT1i67yNMzy540gwmHKWUu5vZlp0kCl253UfyMh1P8yFyqR+7uLKUMiHESgQ4E3Yx1cuJV+bUmHFctnH9BsB3/1e7ZAmgX/dN1jecCAGTuiAbfiaiZDQf+3aKil05pkkwDvFDOQqxWUX0QvLPBoML9+tI8zWm9s67pRtjCgJkG+7cOPKiETVh32sRRHtY7dCX1EEMQdsw/pdgG/IcxT8XgOw/qN3Ko9niYL7yQF6zX+zscoMJun4ayczs79qYcMLbcSobHtgRtTchSeuTN2lIR5cxCqW1lSiVH9VIDYkinODN0pR+O+W+2xf44Gc/SznY5tu/92/49d/8Q56/uI1q9VFANZiwvPISL7/8HJWpaCUJWdph76FjHDy8nwtnzjI9v8Bf/qs/Q0dpnn/hFTqdWR778Ec4fmQ/41xz/K7b+NHz3+ef/LP/mYtrm2gF40kZ2hXJQZFPJly7umwdxVUFSlFWFe12m6npGYwxnL9wiX/4f//7JP7yIAVZlnLrbSf4O//Zf8Gjj30ShWJlZZXN9Q1m5+dDPaWuUEZz9dLb9Gf2Mx4NcPYJO1buekmwW0XHkzFvnXmLp7/3PZ75/nc59dprrK6sMJlMyIucP/y3fwDa7lRqtbtkWZskzUiducTG8k+I93jVV9pu35RSfPSRD5PnOefPnGJjYw1jSklIzMzMMBpOXKjvEVevXCNN2uRFzltnz7C19TBVmdudUSqxOxa0vUbz/Pm3WV/fYN+Bo3S7PbJOwniS02q3UUoxHo+YjEdgDO1Wi6pKyEt7fWsrTUkxHG0b7l5KWJiepj87xdtvL5Nlhn/xB4+zNayYvbLGBz/2OWb37g1z60He7kjymzV8bCS7trT2DMKNhQuT7e9EsFhlAs0Eh71AbY8EFrdjrKNwH7IHPTGiEnvBNSvUE13IdeYQ157UpmqY6805coZN451GvhpoC3OX71s0d0n2E8ckYq4DdtNsVWPrvpJnSmBny9493dgdzar5gQBisaG+EU6kqD2q/x64mGfAvngBv7sJ7348dgZrVUEjiPnEqCKf+YIcg/Jl1V6PX1Qze2ByXuOJfYsk7Gpw8+NcALEY305lCdX3IA6VId7qRjRpuHITZZlBK0vptRJO7J/mAx//FJ2Zg2yc/mNmOiU/+zOf5ZX/9++yvDZ0rTIkSUaSKtK0xcK+oyzt28fG8nle/MHzPPjwh7j/gftYvXKOjbUxd97xPj7y2ANM9VKuXdvizntv59SPnuEf/+P/jtcvXEKrhEleUJmqRuAAyhiGoyHXlq9SVXnYelpWFb0sZWHvEnecvJer166gEmi322TtNh00VZEzuHaZ/+4f/n3+T3/3F+h3Oxw7fIDlq1fp9nq0W21ILGNU7WluO/kAw+EW+w8eDEssSmIGXZVcunyJr37tT/nqH/0hp0+9wXAwIE1bZFnb+RQqtre26bQ6gGE8Htrtqu2eYxAtx6wL/O13NenP1evXvG/HVH+Ke++8m9HGddZWr1tgcb43f7ai1+ny9oWz9mKgfMy1q5dRiaIscs6fP8e1a8uMx8PoLyHBkGBMRapS1tfXGAxHzM0u2vMHqdXIyqqk3WrbgH/jEUU+IlGGbrtNpe1hxkIb1iqYW5zm4x+6jSRrc+byCk9emFACbWC0vs7LTz/BQ5/9CbJ2K4S+ln1Wyt8c5kwugc4jwPmTz16SDqBuNMhhFKBncJfvhF+Uu4zHqwFSbBZStBTCa6K3qTENKYnLE+jI/DtAnR0MIuCd72/4UbleyA4qxLasqKm4Z/6rICT3k3tHNM5jhmVqrh+7cardsHSXdGOO5h0SeX1BRHlZ7cRiibjeNuqaT7MEyXTCV+Wkv4YigPw9Mqmok8Q8ht22W5kgOYjCZKN3AHWzj8YYGn44h+cqEioaY7zNXNUbY4zcXWtvwEoSlEmIHbXcI2hX7vxCohTtRHGgn/DQB++nv3QCnW9x5c0zfOdb3+UTn36EO5ZmuLJ+jSS1oS1UouhNz9HtzzAcrHDqxbeY23uQD3/yC+yZa3PmlZfZt3c/n//Cxzh58hauXb7EpSsFd99/Fz/89lf5f/6//gdOX7xKoRWlzinKyjE3ZS9sVwqUvbt3eWWFi5cukrttqDb4WkLWajGzMMvf/Pf/I46fOMnm+gZZmtGf7tHtJFy5vsWrzzxBOVjmd3/1l/hP/m//JVcuX+T7zzzDz//tv4tpYcU/Awt79pFPz7IvSciyDIWu2XuLsuClHz3Pr/3KL/Pdb3+b0XBEu9tjen6RqiwZDbaZTCb42P5aV/b0c5pRlRUTM6Kqctrtfthma7RGO3+QPa8lTBxECDDAYDzmiW//Ga1ui2vXV0mzlH1Le2i321R5Sb/fpzc1zRtvnabSmrIoWF29CiZFa8OVq1d466232N7cdCZL5Q6PWbrQRpNgL8vJ8zHT07NuHKzWmpdWq+l0OrSyjPFkSF5MSBOYamV0MfQSw5NnNnn6zefpaHfwEEXmgEYZGCxf5fKbr3H07vstCVcmmmZq4EowqdbWtQMqI9cNdm34MVOCxrXzPcV1rsI5nzojbkjFKtaq/a1rEsi9UBkLruOYirsFZRXKSF3d4ZE3kTURuK5eBKHOBP9EaG1DCG182sX5YbxELGr1F+3U+GpoiGMTO3/cNf3FNAVfVcMOX6MB8TA6ceu7+6NPQTXe9RO783iIdBTXrTYeqpV8S4A50ecgNATlmEmzH3WJ3tC8w1k2S+5rBqzpS3Ahy6iSQExhj72JLKaWTHOslWiHu1zHnQhupYqZdsLdtx5gzx3vhySlHG1z4e1lrm3kfP/J5/jxj72PsxvPsT6qyE2BKQ2D9RUm22vMzC1x/K73sbi4j8H6RbrlIh957DHuuucu8mrM959+lsOH9nPXvbfx5d/4FX79V36H5fVNSg2lsVK/nDvj5i1JEkaTMRcuXuT69VV3irpCa4NJDO0sYzyZsDUe8PEf+zSzs7P2JrJOlzRLMJXm1Kmf4vd/61d46YdP8K9+8Z/yqR//y3zpS3+NVqdt2bTxGpOi1+0FuvHr2WDIi4InnnyCf/0//TN+9MILZJ0eU7Pz5JMxm+vX0WVFmmb0xaE1rTVFUZBPJu60d4c06VFVBUma2nsePCMwBijd/ER68ahjMBRFwQ/ffN060jE8/IH7afc6vPDiGwzHY9jYdABo+1JUJduDDXqdGQywsbbO6bfOsD3YsifkvcToaKcK69DucNrY3KDb6VgGhvWxVVpTFPY0ea/Xp2q1mUyGDPKCXBk6bcNtvYReOyFpd2klKRc3J3gzjUoU3SylvHKG5M57KJ2/Ky7XuAMsmFS9jIepSfbBZh9MNX6dOjOTUhhd4SXewCSquHvnnZz+0mziGUF9l5JjWDsYg5i/ICCKsv1aNfJ9IUjupl2IVBc1vUYd5zAIixjr9xTlxGI9I1ChvbV6RP1hPmSP/r+hKTRTE3h3hVUlxtFxyaZPQZYRC5cMQ0jXQk3wefx4JkErcA9kAx3SSr9ALMXNqTDNNDtq8d0xk+ALqb8ZGY6o3/h6/f0LBjk+tUeAEbZW5XbjGGNvXxMyilPUDGmSsNhvc/Te+0l6s2CgGk9YX9tkUBi++cNzrAzeYCPHSowG2u0O3d48U9OzdPtdqCaMt9d45JGP8dCjD6LNmOdeepFEZXzokQ+QDzb5b//hP+Tffe3bDMYFABVQNogtSVIq52RM0pTBcMT5sxfY3tqirEp7gY+zObfbXdbX1nj9tVfoT03T7fWYm5tjYc8eZmZnWJif5Z57bmPp7/4Cv/zP23zvO1/j3gfu4/Att4jQ1saNKzXa8FL7pJjw7Se+yy/+k/+et8+eoT+7h3wyZHtjjVaWsrS4SJZmFEVFUdprTLWxd3L3kj7GQFHm5GN7IU2/P0M77ZGlGWnXLh1tNJW2Zhxvh26ecvbPC605eccJWp0uT37/JYqycC9owgYKY6CC8WhEK+miNQwHQ86//TaDwXaNXj0xVFVFgnVAG2xI6+F4QpoUtFv21LjfQppjDzq2Wi26vT66XZGPx1yZ5Cwva1IqMpW7m+4T2gq33Vlx4ugsf+vf/xxfeXYF5vbVNAEZ9M7TscdQzwBUojBVZGBSE/AmIcdVfCFiYfilZ9w6s3Nl89Wj2UWwlBggV49A0yhBEKQMIwqLXdzBSfxal2E3Qi01wN5ZZ41k5StGltuoXogCO8R+yQxqnXuPnECkG4yS6v0H/ki7aA2JMC/FPbzRSRQl5AiITQ2BsLDjZwHzsr7GGYCgdjqTTby5zTeKnc/9tZkI6b+ZjMgvxAQniyC3TsbzCYLpiSPMQZgwBr8TxLg2WfOSclqAXTQmODUJYxgu3DH2NrEsUSzMTzNz8DhehlJZD9WyMX2qVoehSkhSTb8TQ01naYopxiRlxq133suHP/oYvX6Pl158gcH2Fg8+dB/3nLyVJ7/1LX75l36V10+fYVSVlNpKm6WOopW//tQyBR+jyZCPx1wdXWWcj5y5wwWKA9qtDuPhCF1phoMRU9PT5OMJk3zCYHuG8XDIvn172bM0w+e/+NM89eR3uX5t2U+i0+7cDjfjG+F2dOGk8+de4J//03/C22dOMzUzy/bWBrqasLg4T5Ik5JMCkyb0p3qkiWW6la4o8pLxZEQ+mWC0pj81jdaa0WgAClpTc/SdX2Nj08UB0tqakfDmATdPgmrAMDs1xfMvvkZZ5vh4VibMr2MRWpPnOVUnx2DI8wmrqyuMxyMhgUdkqbRxNCRKM4ZSV1STGI3WGvUrysqQlxNLP1mLVqdLolOMi6KbAyo1dIAUQ4piqp3wUz/9ER742Kf52tO/Y8MyevrVfl6dqQll98orD9oITdqOS4x2StQYamAmbfAR+BX+KIM/47EDOaMqoaiZtORYS6m6lgQPqv0umLAXDKWpMFa9+yloS7Amtk+8IumjphXUOUutMX5HZPPu5h0O6vdqMxLpxsJcuEWnPNi7isPuG+819T81JG9TLyzmFw8D+Hvi8t9DitL6bl5oT3yxfSoyHTwXjsMf3pMNDc00AZRr+oWwDUl+4dXUYOZxdK58+G0V/RFBhQ5R+Pysxq2qoVa/x17h7N0tu9i0JkUxOz9L2psO7WvPLHLi5H288KPX6SebpHpoWZe/XQtNu9vmthMnuOue97O4d4nzZ8+xcf0699xzN1/4wqe4dvlt/vv/6r/mW9/6Hqubm+Rocm0P2ZWO+JQjuCRNQ9/TLLUXzySK7c1tJpOKvMjRRrvDjza1O21GozFJmpFVJUU+YZwp9PWKqiidqcD2rddvkbS7bG9vOw1JLL2wiP28aiptuHLlKr/zv/w6Z069yszsPMPBgEzB0pFDbK1vMr+0j8NHb3P3PxtGgwEbG2tsbm4y2N6iNW7Tbk+YTCaMx0OMqeh0euTjCWk6pNvtsbRnD+1WiyvLV9yd2DrcLVzbUeNBzsD19U2G49ztRIvCZwgKhwU9e99BAcae5B5sb1vJWEVa8TRiTSw6kFBzPVTOxJcEPyCYqgpRcyeJIktSpjJFP0touVDaAG0Ms/2UL3zuA3zpP/kHvP7dx6HTDaazqLUqTEW4iMeDpheMjLudLkkUVSUWWtN34EHOxPVvhSO8C8n5ceKakOcZ6rxF+CgQfoVd5Omd/tGISpGJ1JlWsBrt6oOIGCWd7jveFXMmt6gY8XdnUkG4DEU0ilNq95zvJd2Yo9mDqMcqP7S+QUI7sEK9AG4V5fNQRBTgw/eQDyXuaIg4bB30OxmCL6PutYifBMRS/xI/xwXn328am2J/rXZRqziMgVdpfQgKayu2H6IW4bQAFbuitSFNI8FpbcswzrrgSSDu2rB5Wp02JFloZ9Lp8v7P/xRVlvDkt76J/tEZzl7bIEkzZmbnmF/cw+K+vcxNT7Gycpkrl97mxO0n+Ml/76+gjOG3/vW/4o//8E+4cHWZUVlSYUI8m9Ah14Z2u8PS4gHWN9fIy5x+r0+lS4yB9Y0thttjiiIPUrNy20U73S4GC1hlUVKkBSpJ7H53LMFbACnIJ0MSZRiNBnU/VJDUAkxijGE4GvG9732P73/vO8zMzpHnBamCo7fdwvXV63z0cz/Bhz/6WY4fu43p2R5VWbB8dZnXXn2Zl198jgtvn6UsSpSyt8N1uvadyWREtztNPh4xGm6zuDDPydvvoihzrl67RqX8DcZymITkZuwhNRNA0CEdOOHAk6exDufKtqGqcsajEUmSNuWWMOcmfhQNcA8c7cn4RCpN7RxqDe4k+mYFwyShlybcMpXwwOEuH/rYg7z/k5/ijo/+NHq8wXf/9E+ge0cE6mDCMVFCl3jgTg/7cwva3fwnt37Kfsh7bI2/L1xZOjeOsQaMttzB4pAyzgktZ0CMqDE1QA7MWuHiDEnTjJ+FBlA4mgvMSvxeE1IkSpt6e6Lj3A9WnCtffxAoRHHNJCG/Ofe7yAY3lG74RHNohUXvcJCoBtKm8R1/JD0+j27ZXWoJecV2VRPPNOy0/ceBjlV7xiEn1TEt7whupHhuITIEg7X2+klIQrsFy/ESgS0kMLPoENIYsQXRAqpnDp5QtHV0elrSmiRNLWNIVSBUeymKla6KsiIvKzavr2HyMao75QeQ9sJeHv3S3+C+j3yamV/7Xb7yZ09QuDGsyoLVS5cZ9trcftcJPvLRTzM/M8vjf/xV/ujf/m+ceusMW5OcIpg//LybsFS8pJskKdodOqoq67QFqLRmc2OLwfaQsiid+u8ZvLVpG60d+AZId1c7Qt5uM9zeIk0hz3PSNKEsSryJQgiHbsxtCWWlOX/xEl//6lcoixyVdNFlzok7b2d1ZZkvfuln+OxP/DWOHD5Mv9t324QNhw8eYWn/YVAtBttDxuMJk0luBRG3G6nfn2U0HjA9NcdotM3WYIs7b7+dDzzwIN/63ncoNgoMVQCcgPuireEioyjTOToSUqqb36os3VhWTIoJWfIelmsNY1X8XnO0GqisqTXN7KG2xGhS7IaKvIK3tg2Hqh6tzhTX3nyF09/7Bj989gzL/RO0DvodXrZjJtBxbITFQoUMUujXZjjEJubPNzSYpGIn2O1bDVvBXS8tx1JyRr8O/fPIDOR9JyY2ldqJ1bAo60MsJXnbt7jhpCZDAYEB1LqjYt89oHtNLq66emoAv6SkxoEI8ats9Z+fbmz3kYnmlBqtQThA7NsT/QkeiN32Ss8cQoM9QKvwKCoCwnyjhDQk+lobuEa5thwxbPJggyhjBw8T/Wsaj5rvJMRiPWFgCIfVEjfRyg2WNwF4diWlraZmZe9SztwicJJQahdNVVZUKmGUl7x5+m2OP/k4hx/7PGmrE/IrXfH6Cy/yxFPfZ2Nzi0prsjRlZmaaI0dv4cjxw2Aq/uD3fp8Xf/gib52/yHY+YlJVwW7bFDuCjmKsyWKc5ywvL7vAdhXrm9dppW06nTbj8ZjBYOicuF7dsaDebtkLZZIkQSWGNE2oyhKdppRlyXCwDaZCJfEAVFEUUcITtOJRwmCYTHJefellXnvlRdqdHqPhNkePHmU8GvHohz7OZ37yZ7nttqP02h1SV7cC0lbCkcP7uefe+zn31pusriyTpNthPsuqpNVuMzu7yHC4yfz8HrbW19nY2uRDDz3IhUsXeOGlH1FWJbuHQogDWTtYtIO0HIS4g3LedFiWJSq1ZXiNPLwv50qWHf42wEKpwICNqciUDfXRT2AhMxydbXNgOmNvd8Br33qcb61rNose7eP3MHvwNqwvLdrUI1pGidyrDLEppt4kCfQNraHONHYpw6Nizbdtwli9WzK1z3EnlKsYEX9DaCt1YFW1T379xmloMh8vCNXGSwnMDDQiWUyjsaHs+g+17EqOcWSGkom8l3SDAfFUWNS+SZIXAXWTSmib4Bw7S6UW38gW6yYsiUBpohOrdq2lrEpw2h3vhDHahZt4ziwYT1Ir112KohqZXP8ThIRgTPAh+JvGAr8LQBDL8eEyZBwnv+NIqTQAnr8pzboFNDpJKEp7+fuF65o//tf/nLteepETj32B/swso81VXn3u+/zR17/DlZUVa6cHKhKGgzGvvfISzz79BOvra1zf2GRQFBT+9K9kzo3Z8mYOLwkbYyVZvxCMVmAvVKPIcyaTcbjpLQTyU/baR4ymKiuyVoa3fU8mk3Dv9FjZoHUqSUmzhCIvnBnKSVMmjhfYE8vrGxs8/9wzbG5cZ3pmnm63w8z8DO0046M/9n/g+C1HmOp1ydKExAXuwxhSErIsYW5uhtnZOdI0jfPs5m8ysfdOT83Msz3Y4vDhI1xdXqbdyvjEYx/ijdNvuqB9rl1EgPAgEgGoTrvxSyAEZ3ZMMCg7Tk5TkD6pHalpjgmF115yZJig0CRKMZ0ojs+mnDg4R7czzfmVDZ45PWRp7yEWDh1k7+HDZFNzWMauHaO2pXn89qAnr+aUdZpG2+Q2zEBTxCWvtWQEXjA0sTsKFzbDgbLnFTVM9QLhzqGKoBkFHRXa5UdPBaB3LJlAE4GJySGuC1INmK+1w9bpLBIhppsJOPteQDwMhQp8RQyObMF7TzcY5sLNliRe0ajQGCGQC3uM/NMU6huFNLZ2ik9NJogbRHvHipGlU/vm15ovW/Ig8YJsjq8rXHTj6/JvBttnDF0hx0UK/s2+esDwge2Ub1vwOdj3tNEYrUjT1IabhgCw2hiKqmBbZVxZS3j6n/8L+r/xG6T9GYZGsTKYcH2YMxwXlFXpLtkx4STrYDJhUFQUmrBzBqL0EsaXmGpadU2iEVJQYp2aZVmQ5/5+BRNWrQVjazpKkpSqzDCZRqcalST2ek5jtYd8PCFJMyBhMs5tWAVhP678PcjOBn/58iXeeP1VcGayO+68k63NFT79Y3+JO26/i5mpLu0sxR33wODv5zWUZcFwuGXjBfnL7AOTtuEchoNtFvfsY+zmIctSrl1f5oMPPsCffPUAG5ubQLUTBQJwxu2TkexMbX14f/DMVJ/+1DTnL5yjLEuyNPqNwt/afESQ2z01RTg7T10F/RQOzWf8xCeP88hD7+cP/vQF/tnjb3DHIx+h1e5RXxn2s/RtgTfr1c17HsSNGIbdmEXNaSrGy+0xihKxzGuIgpxnwm78wiVAkdXUxyU024Thr4+aYFY1xl7Hleazd+A+Yn2DkYH1vA/FC2Iihx/PwFYk4Ie64sCKUv93pb/Q4bUAdip+8Uw/3MsKdUYQxM5ofvKmHVN7R9WfxdqJ09CUX4llIoC/wVwcL7Zfk535/Gf/IQK6cykl0nQmTD4QD6xh3KSb2oU6Pp/3SUilI+zeMkQ1WkWJJd6ZoDAaKu/kUwaSBKMq2odv48rKKucunEabZcZGMdJQamP/GStJF6Uh15pxaSiMccwgTpiUxJoyhlIiemvNDOjs5K7dvn/jcU5e2JDZxhi0ssM+NTPNzMwUMzPTbG0NqKqUSrdRpWO+Weq2ZRYkyZjUhW0YjUeURQHK3oNcVRVlVbm/JePxmNdef41rV66SJKm9YnTvftBDTtx+F3sW5mllqbsDmuCc1LpiPJmwvLzMubdOs3L1MvlkTFWWkem4Pldas729wezsAleuXubokSMsr6yyd98itx2/hVOnT1O4Exx184pn9gI+lBhCZekgUTDV66IrzdZwm+3RmKLUlK6PPjaUJet4vkGmNIFqV3RoQp8znaFoJzDdy5idnYZOwmtXrrNncQ9ZuxfWZJIojN9lZQzBsGK81mhq/6Q240fAh6uohc02jbapqG2EA2jhV7fCPdPx9UJY67vBsvEEXBNyYn1hHQsOUeetgS2JlipsHO5mZXXhyj6K/aizkhpIiqaYxrA4cJUyhnJ9Fpce1epQtT/sbOju6S/kaE6UChPSPN1bu3OB8FItf2z6O1nsBdt0NF8D0fBWY2tsyCrqk+Pu31GNtss6idJaBL64oEMOyQiFdK/ASaHxBLTvRwAXV7Y8xGfHTmoh1PJ7ydgkfueG2/7n7i9QrYxjDz3G/NHbuXjmFFffOsWgshfYVNpQGE1lsP9we8eR5GnekWb8NGRKkaUJRWVNOImyN5jZexJiZq81FXlOWRRW23F9QEFRVLxx5i32LM5y4vY7mJqeZWttKxJwpSmNvRlMAZm2Jo7BYMBoNEKbijLPKauSIs/t6eOiYGt7mzOn3nD+CFhYWGQymbBnaT8zc3tod1okym4N9lJYWVaMRyOWr17l1Ksv89rLL7J89SqT8YiyzKkc07HMw4LhaDRiz9J+8rxgPB4xHE9QScKtx47t2CFUByDvU4qPLLlagaLTyjh0YA/L19aZFAWF22WqtWUIVdWKMYBqDMfSjIfE1Bi0uyNg9xRhIsFa+zIFC1MZi4tzXFne5MXTKxy952FMklpoNxqtPaiaiFHGO8/jmtq5xTRqXDXgrq0HQY+NK2y1/0FoJl4b8QZfd5ytKcYQHbYqXOcaRi3wBH/uyoRQFjtnMI4zDnd0TSNsjq6pHzNQgAinY9seTx3vFobC4lmUxCV79aZoI1/xecLI1ZnFOwnTzXSDW1I9nnlnqQrPEyEV4AFXtDL6eMXgen4hJExLHXF3UKhzR5fkzqfwJEjr8m0JvvGAWSw/cQ/852gBrjOzZv07G2lq0kgtdIaxe/z9q7Gvkmm6R45AEveWNvbeBL8zQxuF0l4TsSEMFFb6nTtwgM78Em9eucLW6jVKLCOIEBDWl2AKzaVEGAFPXkpBL00oUTYuk9b24FO7SzUaxgWmoqktL3OKqgx7963AaUjbXbRJWV0fs/r0DzhyeD933XMvW+tblAVYB3tqdxyVBUVVgoKtwSabmxuUZU4+mVAW9mrRPLdmqq3tbVZWlq3DWldMT02xubnJ4SP7SVIb2dQ4gCsrQ1FWDLYHrFy7xhunXuel55/n7bfOsrm5zngyoixLKm2vmtTG+k20MZiqoihL0laH5dUVDhzYT1XmHDq4n9SFypCCL4E0pLnFv2YBpttuc9dth3njzEW2B2OSLCGjckBqTVfaeLAVwomxd0IYY69+VcaQGk2uUnaumibAufoTRS9R7JntkrUUv/+1H1ImMywdPB5A3IaZkBRjBM1bRh6XgFgX6NAMvz21Zi5SKmw39QQpWxcK8uNZ64KkXsF+PQwFNIx0bGpvNt7bgf8Oo3bMmsMSErxpqjHd1LgmUWsKdQWu5jssUC4cxDRyBIiM/x1mttYIP+i7te3d0w0cXnMN9BKygA3loDRwNhUnKhzSkl1o4OCuDCwiNLXBCtxFRSAPIxQhV2JteKp2tiV89iYbiHvGg2ZenwJDlChimX5sbOC7cMMasq9uskWJxiG0v1zHOEbhna0Yq3loo0lUgjaK1BGM1ookiYxIa41KoNvNOH7bnaxeX8Vov3c+tkcCfkOUCP2TSSnIElCJoii1O2sASSujMs727qM7JokzdykbLrv0wTBcre6WuKLI6benyNoznD1/mfGk4v777me4PUBXvmYbryfJMtIkZTwasrm1xXi4xWQ8pihKdFWS5zl5njMcjSnGE0txuiJLE8aTCVUFw20b9K7bzSiVPfG8tbXNtWtXOfvmaV5/5RXOnD7Nysoyw8GAIrdagq4qd1rZBDOF0cYGlMsyNre2yFptiqpgfmHRMgWlwona2lAaD4qe9hyZJYoH7r2LU6ffYjAcgbLSd7zDwW1F1k7aNlFCBsNCv8Oefp8La1skhZXax7sAWT1FmEkN9NqKPQvTPPfcGb7y5CXueuwz9hpOUwIWuFVincwGXDA87U4zR3rS/hkEDdFW5xiLm1x/lqcp/ccDZn6840YCSbZBbm4wXvlO7KZgxoG/RKamdi6BUOCOx+HBLoymVr9vt8NDzxyEWdjPwE5BIfDa0BcvYwfsVeDN1BirnYfw5LJc4XN5r+kGwly4/wLK1WHfX5qww57v3reSr/HoHMCyyfHCt5pZSkjsNenbn9KMbXSoHsFesFoJ0JFpxBY4QTZwat8tn6F2foL6gTSrhcStt0aUFSbPc3//nHgAzoQ2+YXvx9debJ84yrVbNCtU6m5xM4kDIOOYqF20t991kjNvvcnq6rW4GyQMnP1fA6/CJ3HMEK/VtJ3ZSDlqTRN7reRkNKrlTlRir2es7N76yoXk8KOWpi0SZQ+lVUVOmqTMzi1x+co1lvZeZnZqljLPyVotssxuTzXudPNoOGBrc5PB1joTpyloXTGZ5FS6YjyeBNDx2zjzXDMaj1m+dpXVlWskag/GaNbX17h65TJvnz3HW6ff5Ny5c1y7epXt7S27Y8r5E7QxVMaE2EFewyqrEpRhPBrZviWQpEl90TclUEejzZAqczNTZO0Wa2sbDkMczBiFUUlg+Nb5bQBNmljaKbUh67T4zOc+w4vPv8aFN19hdeIFG4MQ52rJz6tSViDpZQmXrm7x1Vcvsu/eDzJ/4Ijb/uMpN5qMJQKGLip3wMzI7nrpWNCWUsGMGKJlGxNA1AN2vKOkDqQ7Ij8IBqBcGwR6BplHscsNGCZ2xTOJ2rbXHUmgc8C/ZjNizrC2w5iJxtZoYufPQVaLDdyl00Z8836V5nvu9xtQF244IF4EuwZAO4DdcbRLie9K1QZxt7IDEQRSdv8X4C75hnQx1ZJrjzEKlcjhkuVF8I9MqD60fvFIgqmpx85XIO9jrmkjgUmJ2FChs6ZWhs3n7k/wiyQwGRf+woWaMJp4FsKLOk461Ri6nTYPPfwY3/mzf4cZDigjziClE+lYA7/4TQQNIEsTUifZ9ZKEPa2MVRKG4zEhvIIbI39fdFGW9tBa49aoVqsFGHvOoqpsNEytmZ3bw5un3uSBB94PeBC0oKUSRZomjIZj8smEza0t8rG9kKaqSntvQGk1hixLXbRTw3A4IEn7bG5scfXied568xTD7QNUVcHVK5e5cP5tLpy/wNXLV1i9vsrW1ibj8ZCiyCmryobaCBqC/8/tXTfG/V6RtjKmpmcYTy4TDnTVpEFBCqpOF2A4uH8vayurRLkzLnPl6reagpXCFYZOqtjXS3l7UJFkLcz0Ht734Y+jpvpsvvIy7bHrg5YeZ7/ZItahDKRGszox/N7zmxx93we57eT9YGw92qGTB28l1oHWGhJQgQQkNDlAF303ciw94jW1VI+Zu4yf5ZjGnWEQMGziv+jc3gnAQbZvSs2KcKpZvFjLG3+IcGFENRHURVgLz2yov+dxS8nfEW13mT0VgPAPNW6HsxlVmJt34mU3kt47U1Ae/DwxKWcjraO1p3WrOOz8zRYlFwb+f3XlIFaK34njd10EyLWqQsR2Ic37BSixXzKCmu1TMKAacIdfjdg1pCSvc6Du6vT9FnUaOYEm5o83cIrnckyCdBS3vPrFpLUmTVVYBLpyQc/ASV92h8qhQwd46OGP8uwz32U0GlJqBzJNKjGS3OvjnyQJC1M99u/Zy4Fuwfxcj4XLq/zx9ZztkQ4Ao1RifR/uJiFrj48qtC+z7a7gNNqeUajKiizTZK0268Mhg+GQTsdF9iR1hG4l5HFumcJwMCAfTVyEUhsmoywLirKg3WmTtVqAYnNri31759hY2+Datau8/tKPuHrpPGVZsLZ2nStXrrG6usrG+gbb25uMRkPywjqwK12iTSVCPnvgsU71NEkZ5yNmpvt0ex3mFxZY31inqvQOd6e0T8Rx9ihm2Lu0xOunzoQx96sqOGGxJ8QrzxiMod9J+dSJaX77pXX2zM+RJCkmSXjfgw+zsP8gL774AivXlm1gPS36EWjdrietFCOVsNJa4H0PPcyx47cFGolhI9xaN1YSt8ENo0AVw1d4x7CuAbWWsS/wXffOWj8qXqOIQC9+cc/qWod/5vsSzHt+fOU63GU3lqfM5vkJ2dY4dXEMZPt2zyVbWH8SNR0VgVK0OlTqK/GA79vr2yAxT4rPwYwkz1z433cTxXem984UHIsLAymFmlqVEfrjR8UOpN2tbA+2tXLrpTfrlN9VFOkjq1KeA1MHX9lOwcw84wlvGBvczhjCmQK/+0qwJ9GX2Al76K0eRdUzjuAukZPntQ4ZB0fHODGJPN0tJCmvpfhrQAPKG8OJE7fSarV57odPs7GxRlG5EM+7LDDZE6UU7VaLIwcP8OGPfJiDR4/z4Tv38vCHP8Tf+kt/la1yRK/fQ2nN/GyP0TBnezQis4cQKMuKSkcwsLxT2eisDkTsP2u3JzMkWZvB9ogk6UIW5HKr6SnIxxMbOG80DgfZyrKkKAqrNeiSLMvo9afY2rjO+sY6+/Yd5vr1FVaWl9FlxdWrHSptHcybm1tsbm8x2B5YH0VeUBalO2xnt+tqz0Q9wuG2CCcZeT5mbuEQUzN92u0uZ86cDqe3BSxFCdF9iSNi0+zMNENnhvI0GfHRMnKtsQzHWLrKkozPPXqUV8bznHz4MXuBktEYpTh+9CgH9u3j/PmLnHZ+kpEziWlt5z9JEtrtFgvzC9xy252cuON2+t0OSsxNMH84JPMhOhTWx4AixDIKpO/+i4zA9rOmMSrPZJ2fQfgeajv8AlXWTUtBWGz8bvPr2nM/1BHcY5tqDEesGftb/aChJwHPVOMcSuiXApcroXGafKdmLpiTbIssQ6z3kD2U4XdO1ccviLkKgRU72dRu6YY0BYw07dS1gLqILZBVxeYoPLjbb7XwEAhpPWbDB6kzzZIdscp2GHcyOlxiE9q5S3ul6cv/7nlMo+xwyMz332stztQTmZBQzA34yB6S6SVia6rllQ2gFxpB4i5l8W3zrddGkyq5k0iDiZpCIomIkiNHDrC458d57dVXOHfuLbYHW5Rl6XbVmNrYJi7W/tzsHHefPMn9D9zH1NQUSmVMTbVYOHwHx+59P9+78O9QacaJ48f5xI99in/7a79Nr12wrRIqY88PxD3otoYsTVGOwVpTmHZAZxdyvz/FYLDF/ELfSXcVVUVgzHk+QbsDcWVeWOm5smaqylSUZUWaJMzOzbG6fJnJeMJ4OGQ0HLK6skJVVnTcNZTj8ZjhaMRoNGIyGdkyyxxdlcFMgw/eZvx5DtuXTq9HVeaUZcHSgYMc2L+HwfY2L7/yOmVZ1CTeZjK1TwqVJKSdNpM8F8TiZwMBfsaZ2+xYFZXm0LEjfOEnb2W96oKuwN3sZzB0u23uuONWbjl+C4PBgLW1DQbb20zGE7KsRX9qioU9e5iamSJLEzAVRpc1qVlK61U4Ue9A00vfXrhwy99rEd7shdCEw9ZVse6CduGEKCBIuv5fWBfCXmPp3v6uZFudz6Iu/YthDI0XeWtvRsm9/mME5dr78jUTBavoZK474mscz0hmtJNBGDFSSnySmlBdk6KR3isbqKcb0hSa9wX45xbdhKOjBva4xjdlas9MiNuHVGQb9nnjXXwWJRiMT0oMeGRBklfV6hcAvJta1TxRHdFedFIUHt/0RAwmmNjcJBqDMYlgWnWnZHSuWW7iY/4o6XNwi1GryCotjWtwQfeMMZYWHdNRCmamuzz68Ad5373v4+Kli1y8dJG16zZGvzVHpfT6fZaW9nH4yGEOHz7M3OwMaapAa1QKW5vbqKTgxN130/vGNxkVBbrd5+zrb/DAgT5vnhuyjbJ7+x04SBpIsyyMmzFR6tVul0+33WY4HNJqdSiKiT0sZTSmcjeSFQVaa8qycHVU5E669ye2jTH0e1N0un3y8Zjl1av0un2uXbuCNoZOu40xhiIvmOQTxpOxPetQFkG78VFM/W4OyxDslsskzZiZm2dzbY3+zCyziwucPHErP3rhJc6ePU+pC7FkJV3UJV5PYb1eh167TV4UIlekV0nSUiKfFJrReMLU1BQbW1Wgf0/L2gWsa7dS2vOzLCzOB3oz/q/RjnF7MBZ1K/+OA2sPYFB77um2Er4LqcUa8T4ou7XXcVglfpOimze1hqs3UcLs6ZmHAGk52E7YMqIdcY2IdSsfNsG/+V5zUiQWiHpqYbGFJL87k/E/xYeNvUzspq3UmuDxS16uIDGFnVW+l/QXvqO5ziAkJEbuJQ+WYUxwcvoOh3hEvtWOG4RDXBJR4s8o5QGdUIeMdRf5TTS52He8qUYwNqGuWNAV/diFJ4SWCHuf/2qcjVAhJH9xebPyV4a5tkWe4hmGqS1GaVr0PgVbTrzrWdWaEvaCAf6CHu/kNmhVMTXV4e6Td3DyrtspS7vf3obNSGm327TbGYmyvgRlNOgE3K6aa9e3ya+9yaOP3s++35onNwmLvYz3He/CdsazZ6BS9opO74z1o6mUChFUjYm26WB+MJo0a7G5OaKdtcjzsWV+RlsgwVgTUVlYLaeKbS+909poTFXR7XWYnpljuL3NxsYa+5eOsbx6mUQl9KdnyNKUqiqZ5Lk9YFeWVKX1T2jt75GOdnW/XFWSsLi0hC5KxsMhd955kmNHjnFwaR+//a9/m7WNDetHCYuc2l8LaFUojwSOHDzMeGs7BICT7yYKUuVOJyvCXcxKQalhY2sEMwWK1J22NwHTVLgr22GbR0qFZfLI3TgmgqluArkvM5o5vYQv14I8tBYEfQSD8EzN/WgQ2pch1OXLDhK0NqKNjUGtmUWE/OyZQ3gq8V2AcyirzpTk/SVe0wEEY2km65Jv/hhbFLWZJv8JY1hrUBPMnSAVP8oPoS5DPNTmeyO1q/ea/sJ3NMuqlHha34Uj8oi/XmsIhIYKXDY4YpOGZC/y7y7dC3akoiYRgNZ/J/iFXX2RS8sSm3c2+E+OF4e2+qFOvHkolaCuhGQYbfiSs9cYVGiT/Oy3AjrpQSxuI9rhV0NgbCEqra1HBgo07hKVViul02kFbSL21YGEi/nkx3Fly3D+1Et84KEP83d+/mfZ3Bhy8vYFZoeX+Ue/eYUBlpGUlTRD2EWVpPZOac/8/B53b6qpdElm7BWRly5dZP/+feSTgkqXwTdRlhUb2wPKskIXFYa4TdNqDiV5kdPKMubm5tnaWGd7e4P1zRWmp+ZYW1ul1PayHAV2W2xVBmZgtYMIUIFejSLJMpb27seYiuXlq+zZf5B9S3v5+COP8KMXXuTbTz7LpCx2Opk98cTiAttO05SPfuD9fPupp+2YqJhBKUiVYU5pNlVC5efSawLGsHJ9RNk3cml46ox3OYu7CwLY+/lFmGqdsCRNEwSAdr/7k8p+bh3IVcYEv0AIgx6YigB8kU8ynFoyu3/ewYyClL377XVeYvaSe11TaHqdVY0BybkK/LSO2a5NInsIFKkjYwp/6yYfGVxMyXJCXfF9CefKjUNoTwPrhV5BHT3Njifvlm7wOs5YxY6Tv0FiNjWQq2USXKTGMARpelBT8j2IaOkyRju/KKdWaANwnUQet4bKOuPyiLZAyQhiY5ToY+iSu4xeJX4PtgR5z6RiGZJh+MYZ10frpzWEKKnuuaUtz+Tqg2O0htQemgrj5+v3h8oMgWF7icW3TyUmPlOOEQRG4zmUYlwlPPX083yiN8tf/+tfYjwacv6Zr/Hf/j9+l9cnFYVWZKoSTkXCakrTNAgCHliMMeEaS78Pv9frceHSFZb2LLK2sY7WJRrD9va2jXGUexOSPRRXFiV5UWC0/a0sLLhPT08zNTNLkU/IiwntTo9+f47NjTV6/Zx2u4t3mNoDWB4oo8ymsGPW7vTYs3eJPB9x7cplZueXOHLsOJ/62EeZ6XX5V7/5v3Jt9TqV0wLq2GGQO0zyyjIgpQz33n6S7cGQs+cvRYAIhAyJMnTRZAmsVEm84tJYinn97U3mDliTnHJbQ0kUQQRXURDy/4uUEQ+SQTjr7TDRg7kHLONnTvy1n7Q35QSgjxJzNDP5Oa+vJ+uQF+UJRlKTgn1DpKhtHFHvAtSReZgIssGZ7RdNA+VF2bI9vp0O+WtgH5lFfVxqAm8N9f3YC99KwAN2hNiIGBEQqD40Rm7AjQJw9Mk4SwJC03gP6QajpCLA0uB3GoRO+CaGMBVuQUgJSBZUk3GM+P1dqw85MPWnbgrxB+mCxI2zuwlbS52Z+GfSru8lHpwJytTyB1BGMB4n7flQ2uE33yRRqa8r7iwiOMmskB/fC4qFlzPd4rNl2375E8+x3U4Hc23338NYJ2KkveDko8G6MbChld0C0XZRfef5C2xc+m2Onrida6dP8du//2e8ujJkZBRJllCWFV6DCYtEKbK0FSbRGCO2NuIkdbcTSSvmFxZ5++Iyx245hjGaohizfGUFhaLV6VgfhIuKWlUlCkNRlBSl3TlUVPZympnZWSbjMWawxWQypNefpTLTDLc3KdoTup0eKrHOb7/ZPkHZUN1K0Wq16U9N0+v32dxYZe36KnuW9nH42K186pOf4KH77+d3fvM3efb5F8lLd+XoDmKtU/RwMKCdpMzOzpGl8L997fGaPV6IEzZ4YGpYyAyjkWEglnUXOLWe8b4ywRAPFfqAeUHQ8Q5eJ1lL4FUJ7tpTsQ48wAtnbQ3cw6seDFQwsYF/R8dAdlJjFPPvmYTC7z6SAI2j80pgd1xjUlOpAZ1of3A4I+mwgc+1yYp/wt0HDtDrBxLZNQkoj0xvVxiOpraQQ7QlMhTP4BrlKulf2dmC8DxcR/AujX6HdEN3NEvpOTx3QBdVGw9m8X1J6PZxUvsmldh6EiqAqjOMIH1LE48cXQeEKEOyI5JkPZ/vX+2Re1APbOeYRxyRepG+za4ZfseSUYZE9tKYQHjGfbYX8thCkiDRmyDUWBs/BGeSILzUXWAf/RAKbzbwE6HCWQr3PXTYBQpzzCv4YJzEoYwtQ1EBCWU6zW/92z9mvvUNTq+MWS6tEbpCkSkbwVUuNqVs2xN3fgEnWcUtqdanEBy8GIzS9KanKHRBt9OjPz3Dwv41kjdPkSZZcAj7hVUUJT5ektaFY2CaVpYxPT3jDrgVlMWY/tQ0rU6Xwfoqw2KTVrtDu9Ol25myO4GShDR1TEzBYDTi8oVzGANHjt3CoYO38LnPf4577ryV3/r13+Txr3+NzcGAQld1WTFKLZFADOxbWmJzY8Dq5hZXr7/8jqGOFVYb77cVDx5osXG+5Exuy08U9kTz4mEHEo6mkiQcInVkZufASJHLg7cIKeHyS/NOAERbAt4UE/5CMLlZZoSoM67D8MmACeBvgqCkq3gCPTIdCeWNQgR61vhIA4csHck+7MKghPAmR75mPiTWE2Q6E4ZMNEA2ysghcKU6vwNS+HTjLl62xagwrkEDEHPaGNk4SCr+glLBlOmF9XcTuGX6C2kKsSr/vAmy0VcQLo8IbY87fgLIeck7VuGK0TWpPNjLGy8GVc0RgFQnJLOShNPkQ0r83648GpNXf992ZZdhVpHZyfzaE6dzRnvJXu6+COMrmIbXDvx9zbiFmSbRD6B1ZYPUuZH2Jiy/+8l+1k4zScIceolDhfF3jMBDgWcMTvpUCg4cOcpLi8d56tTLGGVwVyqTJgnaVDXy9jOaZZlbTHG7rQcA61OIxO4O+TIejlieFCRpRpZljAZDjDFsbm1azcKdt/BRTG2obXuKtyxsVFGMPUE91Z9mMNy29/kaw8L8PEv7D7K+cpXJYJvRcMBYDclaGUlqT0NXZUkxyUmzjD1LSyzt2c8dd9zG5z7/aYpJzv/4i7/Eiy+8yNZgwESXDoDqQskOYU5BaVK2RzmViylEyBG3CDgYJjXQz+Czn72H6185zcVzI3IMGdCfm+f47XfhbeoqSeLFN27eY1RqO6NSOo2+Li+px5vSDD4ibARr3y4j8kdmYOIzI8GXGDPKrT2t/bY4E7Y7SUailL9cB+IZBl8G4X0TPgjmEYQsl9+P5DudXNsxQYiMDa7jM4n++XpM+KLjCO2W950E38a7se31sRQ5asJH/Xa4WF/Y2iqUhveSbjDMhQD4GiNwzmJi1yMwqFr28Jsi5m/evOakiJrDNfH1uFcTj9xE+7f0Exj3tlJivHZhPLAT+AMwR99F6IKR7XL9E/dC+D57iUKpmGn38hxh+9+CVOaZgNM0PJMQmpgNdeTKcxKHcYOcCPDHH6KTJiOjwd3s5n0QNY3ISxfCnGZMSaed8clPf5Zet8/rr7/EaDIEFGmWkJeVm2NDmmLDVCQJWWZ3NPmx8OcSfPRUC+wlumpRpfYiIZUo0sS6Sqx9ywLXcDhyeZyGUTpHcxnPF9jzDRVVZZlZlrVot7sU+YSqrJiMxsykbW49fgdFnrO1tcF4OGA8GTAZj+h2e3R6U/QOzzMzv8Dxo0f50CMfYO++PXzvu9/n6197nEuXLjLOJ05DiGT8jmDj6E+CqCfJcODQ0Z9n0UkCrTRh6Y67+OBqynfOv8CmgX6vx4c+8VmmZudAV2GNed9QkJSbDEpFkFeYsMNKruuQUyIwFnisaVj6B1wOR69hLYWs3myFM+doG5rFbQ6IeBfzG3/gUYGpIrD5coxfo953Z0xoo/9uBEOO1vgG8Hpfm2pkDyBtdskW0bXmcBfjJA3krrRYhKP/SCZuhvxhvgj1gYxieeJdX59rfNP/J2c+iBo7h+Ad043tPvISu8TZ0JbYDA8pyoF2QFEl29Ww6we5RRGHwn0OoC+LEmAVmE800TTDVkvTkqqN0G6+hEYSj2t+CJRlTmJAvKoeTT+Rmq3vQOyIMsaGJ8CH78a94zUCW7kyJl7bGfJqtFHhdHWi/JK2fp54/aUKh+Ckn0NjwDEer7WosKj8+ImzEta7iULTn+rwiU99ktvvuotXXnqBy5fOsT0c2eitiSFLEspKQ5LQ6/VRaRZYppwT30l7ytb6FjJ/biFJKd2Ap6kKkz8cDtHuwFtRFGjjNAVj0O7sgg+i5yN4GjRplqJ1RlmUjEcjjDYMR0P6Uz32H9hPt9NlOBhx7vybPPD+D7BnYYF9+w9yYN9+todbPPPs87zw3I+4dOk8o9GAoqooZQCH2sr39CGSH1vT2J8k35N3kSh3bamC1vQsB44dZLb/OsfvuJcTd93F4WPHMc53EnKpxMaSCqQcRWZjnBnJgVKdNylQMVSFPEWPA3NfkdwyvVvSRmojsSnhn/YChn0SHaSJMx+K8VQCfENhkSEZ3dAA/DuasPb8qoivxHVvmVHzs/g9cCDPNCMjazqRdwgECuE49mjmDEgSakT9UVeMFo8Q+VRAVmwzda7mfpQmrgBXu+HaO6QbDHNBkGQQ4BZxXYmWREdL+F3ck+AHYWcFBOZR74bfGunHQe5yiowocMsAnuwA/MiM6iYeKYXvbqZy7TbYBYiXNuJd0oFN7VKvl+aVigX7UBiW+DWKNIK0yKuNJkXcG+wWhU5smG7tA+W58pI0cUwn2TFmxojb3MLi8wwJa4rwjmtpIjOe2RmSVHH0yCEO7N/P2+fe5q233mRzc52V5UsMJjlGKfYvzHLPXXfxwutn7d3FQYqzoOLvCFB4M5JxsZCyIElWVRUJz0Qzgva3uflIplpTGeus9ovJGLujCQeI9vyFDek9GGyRpAnj8YDNzQ06nQ5JkrK5tc3+Q0coJ0Oef/5Zzp+/yOryKsPRgKJwcYS0oUKaNOKi9/SzI7lnPlTErsKHWBEKe/lNoiBrtUkSw/6De/n4j/+kOy1eOVOL2HESGIG/2yCCtzTbBdBwweWUAl0Js4tbx1a40QRfgFLBMW3r1mEeA26rBOPCqSshFDVNOCHkS3huagwljojHTeWi5frBlNtMxTB7hlEry+w+J/J3gSDIZRs0JonfAnV9O329nq0ZyYyi9iKLFL2LPCi0xLKQmgwa3o67juzQqGCeDlvYedcOv2u6sYB4ohvKxBhAwVZvJKk3CV/FTqnAmwmmFts7VzbOJKJqE2QaZfo10GQwUXMQ5hbZ9gjd1NS9GqOpNVt8VLWS6pvCdiZrgnG+AxVOZYQGNU5H4E02cQFHhhUkGWOHxgaf85oCQT33NmG5pc231VZn731WKok35fm6gkqKKyM6iBXUgv8pBVk74bbbb+Xorbdy4cJ5/vAPvgzAdCvlP/73/gr9qf28fubX7WE012/bJMsE/a4mDwpGWdNQkro4O8qHCLdZyqIIJ6a1A/2qLPGNsrtZ4s6mJjgoHNOrSsoit8wqTKtie3OTHzzzDFcuXGQw2KCoNLoqAzAaI80uyhKrE7uDYBnIQ6KWZxgRlCHii9y+4ItIlP+XUuUFnXY3huDwEqSbj8RL2oYagATt0Eu2mBiqAk8rdWYW+uk1B/E2ghlG2vIA7RmEB0DLIMLom8jAosCuwthKSdmDqOd1cTcQUTiJX8N7ceilJmHnKTAML5ggkwr0YTygS9wXdUd0b2aXD8S8K2rbTWsmK9jxPJicI0uIjB/YsRXXINa6x5yGE/0GeMTOC17fNdXYVe3+1NDYwPksaQcAhMAMVBgQ+44x8pUIOsF+x7v0qTZ4asdPzXJj24gTLP/4RStqDNNrvMRjakSpxO/1+uPiUa5BBnlPrVtgYaHtbIsdH79Iq/BMuVvcjDbuqkhbTrykxGkYut6P6OijBgj2dy952wtdgvLt++o1wTggAViSRNPv9UjTDAUs9Dp87KMfZ+/hY2SJlD2M+M+3qQrSptcAglbgzhH4tytdoJQzcaCchOsu9PHbXL2/ofJhIUwcSzc03unuzRe6qiiKHGM0W1sbdnurB0XR7QicknzECvcjXXMqxfG35qP4LAY/rEsfCndVplKkaQtdlGRZOxyw8lqoxw9LGzujkdZ2A4q5CwfRwlQKGqz5BaINXOs4Z5JVIABIubEN9OXL9KZOL9GKer2pUh58k6Dq144cRx9DKzRIxVYFn4KUmk1NLG2OeD0JYa2+5V78711BVvbQv2tkp0VPYkvqjxutE+NkixIbZnwml0UZakL7u3d2Z3rvTEE0NNj1lZdS5I4e0ZDa5IrkCVVFILWL04UddoUFyVi5LVn+u88jwMlzf4yR0xHy1AjN1Me9NgeiTcRHtXbWFruhUbapIYhkBshFobyU0DQn1G22cRvf7uMmV7qKrYv/F4vdO/60kQfM/Hh6INZxHESkSy/9xa7FBWhNTtDptEMI71aaojT0p7qQ+mXiy4nM0u+HN9704yRxfypaBynSVl5puyNN+5PT2Mt0lFIuhpJ2t3/5PrmxCiYQL4VHB6Zf/n5sizx3dfv5FPSgdlfMJVyKhyJvY+F7rFBx5uNbkT7SBLsjyhiSJBNTpQNQBFIUJKjDuPq5inPo6bFJt5ZWNcirP4WZR2oQOzTwQK+RAdv+eLCoI4FtT2TaMq/UigPzVXEzhF2jXpMUY42lsSB9CzxoGgDqk0SzcXiQlbNdn3dTnzgx135kmj+HCQo/1D1tSvzbkZq2MglyftH7MUOF5twALwjpvTMFj7ANwARq4B+lYmqEHyGoQYg14hI7m2h0yHV4x0A3PiEJqt74Wjmx3YgJbfTNeOIV1sHQIQGmTnqIc1OXhH1GKQGj5eKJUF7TBkJ5Tivz7fALW8SasVKZiE7vgFGJQsKClYcLgWAS8X2DWG7sQGh/AKNGv1qtNmk4Wa0Y52M63RZJFudYMihv97eYbUGu0hW6LMK+RMsgtD0trIwFbOdE9rtYkqSuOoOi8mErPGNwXZMSaoAsB6x+SOJhrzr1yLGW5ONn32u+ta2pOwS+SHNyp458WYJDmijSJLVBC5NoK1fiLEsAVxwja8yt8fQSThATBQwt6cjvoxcHq/zzwI0I8+47ouVAEHfZGTeOlrckEQv8+g4MTYwXHkOkfT/2pTnwTWHPA2192FVgjCDnk0ZSGFlULck5l7ghMd7TuQntiGQQ4T6iWKMWgYXxLUnXbjgC2YheCtBV4f+7YPV7SO+ZKUQJR0wWcjpVc8gFIIp/YuCbVvjYfS9XuvfCLKvwm5+MCNJ1cUkOvCecGk29O28TsO5KE5y5pnbjcVKagKTTx8QxE+NXYxberu6lGkfE2pgQKK3eTt/H2AoJXGGPOZ4JxX3oXnyIkqT9vUaANRtzHTRk3fI+XYWN5ZNmLdfuknwypNVxjKI2N4T+2n76w2iVC71g3IllHyraYEwE29qYa2tWK6uypnUEOhQg7rvv52GH0OFoqKqqMB6RkdaBL9CqqRdhacVzIfw6FQzJ1MowIl982WkzxjIFyKgqQyKOuvldPJXbYaUEGMdrMW27VZCs45gb4S+I0nfULnwz7Wlrqb1KZuNoR/bVzZ0fY/vH/Q0TH0c+rk0jYj+59WfkOJrakNZWhWAGQfAK7wgm1+ApaicBRCuIlGRFbUE2rj1oJMkNxHjVXhD4GfDcCHoKArWnBxWcyHVxMQqKte27gqpuNN2ATyE6SOPANMN/7bIgfNrl9MSOJ0FqIACkXDz+eRwMUZEPUd3Qpc2OCWpOFgjYiL8EArLTEG+hElDcWAyShvzCU8bb8U297YLI7bDq6Gvw9UjtTOzjDgsyOB2bIC/qEMSoxOKO4OH/WkYSYt6b+mXxdeiSdcU5SlN7JgFjTd/5JKeVpWSJCt0Pi93NnxbtqNwdDMHx6U89V1Xo/2QysVtPqxKU3cZaVda/YA+16ZrjNMT3eQc9Otixxbx627mnK8nIJeWZoF5IqN+lojB8XqiB4DlvtE1KhImCLAWVpdbHIw9yOYYUGEEws8nW4O5OlpfYxDZJ5uCBzoY8dxqFO/1Wv7imad4kXBWpa8+jv8P+5rFCRrqUDlEVQTEMZtzEYVxlNYk5DmtjBSNw19QAVkLljjEJn2MjmlqFry+ULZlVE9BlCVI5EH00NBiG5xJh+Uu8Ef4Y1xDVoLi4HaBe7Y2kG2AKYhOUiVpBHBBJJPVBkSGz7Rx7CUJMpjHCTy0ASM6cihMs3VU7QVyYsHwbdiGA+uz4OsViJTpSg6pfAzafz/jG7hg1r/fU+mPi55jN7UySXL6SkmpdMvfQZD+JPeaCIdSlP7kjx4NKtEt7G7y/Fc0CDmHLp3b99o7oSld2S6PRNftzq9XCYKi0vbMgyzJ7G1ttyKW06v41mFHlQlhL5qMSRT4Z45m/LitSB8xl2LMv++ClXMQ4RgDyGpNsWph3T7Mur1xdnvJUY86l1ozfyeV/oPHRqGametnuXytLSFupO6QWHbfBHCLoUNJKkLIFzWgfikPmDUzFMwEPzE5QQNQXQpPE7/hx8DQpGIM2kZ6t5uz66JV9gytDbMVVns4MTZ+DpB9tYt89w6ivPyO7HgC2BvJC+69XEJmDX5vsfMV+3MVZUcvjhNUacAuzg/IDoyJWhO2tDTiJo2TCTjJbnxHmT/dMUdsgsbOf75zeM1OImFjvZE3iDVzKhDxycsJYuTxatjhivEiNLaLvCOiCuYR2SMletip+Nj7cbZPoRL9qi0y+25iUUItYSIAAW7FgZS8EWPk1HBZdWExyE60fO8mUVFhMsb00bMVSuo9SoMaEQ0PxZqwYm8inCLLGHoYmMhI/Q0lgCrZ9RZ6TJandOitBwwG3NElpY6gqHUJW+JDYngkZt3j8fnwf3sL/UyqJO5i0QWxxw/tXPOOKfhuEkBFpO/Y7QHx93jwI+hAtSlpwGzJrzW9gnLQnTAINOa/OogxZBkkrA3QEi1C0Cn+DZB4oJNJW2E0Wtn9Gf01TULD5hIAR1oYKDCliWmQokgF5U4fXKmrDAe7GNrfgnaZWD4fhhrWGaHKeCP0LzLDxLIy34wi7rt/aew2e4uvxky/KoJZVtEiJPH43VG3OjBCYY9vrdBHfrfGbBs769nlK1W4th11pnjxp3FX2HtIN+BR2B0P/3biGy9VjTBwAs+NTbaiII1pfWmGS/eIVxBvqE0qIH2AQjKwGoNTaasQzaSapHdcXkBFeFpJ1kO5NPKEp7e/RcekBUYKiCTVg4uEm2a5o0nHVuINe/t7vcGm6a14VTAK+vnirlgxCFzQQv5VTS6ndOFNONH3pSvzWBBZncmm12mCg1Jo8n9BKM9I0huwO/Rd1BQYkpEwgAHlV2fITlVAWhQV1B2b2cBqhXVYadieZvRYTIYNwv4CnJQEsnmCrqgxkLMFCyTEVzyMYhpbHfzuQpg5YcZ5V+H+gZAVZklhNS5di3cTxCXMJAZwl+AeNARWYpqcz5cdAey0gbjjQbiegce96x31N65TfHWh5P1qkcTEiAbjiWgtjK82+pg7icZwksOxcy3Fc5ZoX2SS2GPnZvSi2wO+YLyMnWKzZeq0W00IfvBLg6cYXWSvMzWlk6bslrxl4phK1VSOKstqFtNT77r9HJQG40d1Hns5d8xWq7ipwKnc0C5kdslBorB8koc95rh5fcv9TkmGoHWp7WJSN8fSn/HapXWarPQvyuDE7f3JtaEodEoADiNbK8WcxGiBUo1j5W6w4LrC6JBUIX9ffCQTpzD6xeHcZO7GOAAi+3YJ4JeOIh5g8IFS17x4MUNBqtcLYV+WErN2KgfyIfQ91h+86XKZT+XuSHfPAzaMN5eFPLnsNwzIMf7+CvzrSS8AREPxHIVUHLtugG+eHkIChjbe075JqQgn18lTzHdN4oUZcnsJRBlJjaCWKNOuAKQPbiHNnGZw8o2UwtdhCkR4bdBT6Xw9N4ftqNM7tsdNX4ZdfDK9tQn1yTYQT/WFZxzMPQQbE59OB9qS2Wxsf32859gK0a5DqMShgkRz/+vCbmIFmlXLOargjtohGXI6amwdtI8t3L0szT70pdTF5B18Lg2diuTt2sJma2ai5Xfm9pBu8o9mzgvgsNNTPvxdfhfoYt535cmRrCSq4X4T2q9jN5EY9nhGI4Z1NLJnYOhMW1y7diLuZRBhqFeIX+fZHUPCX+fj3g3fFbe2MdOKJxOq+yiiMuzQHrVFeYnZ1+IWjtYHUxKBxyi5UZVIX/I962Aljt2H6Y1CJsX4bb2dVyh8UsrUpom/EmMSdK3FxWIwO/dDGSyDOFi+m14+Rv9I0kLobYm0qlFK0A1OAST6h3W7RUpHMAqDhzRqW+Sil7F3UgsLtZTSWEYBlClZbcddzBunVaQmVjmaI8D2+4zWTmqkkjISs1wb0CwsQJ3lDPEfjBifuDhOUuEOwkX9N4wWfRYypsRs2UgMtBVnahsqQ1qR/90+bcG6l7ldy9KCUYKA2TzzH4ZmnDFXh33GwolQQMEJsImOQLFKLm8S0MNOFdnim4WnJMZA4s7ixFUOlGswrgKunRiEgGWrvxcEWwI1vYnP7sgdvwVJC2z0qx7kJRRoT1r4SP3uYsLBm6aYWlEI12iSEFLAh9r0RF1mtib2SAB9iI4lei6bWhuK9phtyNEuOZAyBLGrLQrRcLjw5BcYXEEsLExUK8jQZald4FliTRmojJSRw/0e8G98Lr8f6qP0sCKzxnliPzW5YgSsyO2OwizbspmloAU5a9mcr7ML2C0aYODQhSJ7HLx3jIuNvD4tjGG3v3jGoQyAy96wyLmR17Iw20ZQk/QmVBBXXrmiGsk5lsODRcieaDfYugjRNaGXZjkEL++N1BX4XlSZea1jpMCZutFBJYmMcOeBRbkzLqgxg5A9BevNUFJvsb1rOm3suMTaARpDApKivanQY+YDa8V6wmTdSXVKN78SZi+iilD24liSa0igSFZ36wQTm/CzxknubtHMaW59M3Bnk59Cb/ex7ntZ0eI5jNFUlNE5//sCY0D/vEA75vFihEYyGQHt+XSm8Bba+cyqaNOvjFhzLgoxw8x8fOJxx5SLySMExjHdjDce5jeAgzVAGWbfYSeaXosMjX7bsd2yw64NoUVQABDMysgyRXXzw9Oqf22kRm3/EvxpQ/znpvTuavbwpiD3u5W2qMOHXnd+9QF7zosgDFyoUp8TvtXnHV9dYdGGxypzh5TBJMqcE992A3meXNv5m8sQubdUxZ1Akw8vyLJB2eQODgGgr9uErTPxrF7Yt2xgTTvCGi+aNzysClnn7f+UikGon55kq7i5ydnu5RTQAPw2QqZx06QnTST9Ga1qdbrhwvshzkkTRbbUc2BLaaCXekvnFPTGAvh87E0cuMHajSLPMamAqhsYIq8MYoQXY2fUakS8taK21leWgXiyaJElJ0qS2ySEoliLZZ/7g2+5MAEHZQDCz1d9QUMtve9AyCioNqSKlTQsPvlCVluGF8wrGOAFEByHBawTGMdKqilt8rXDg6c5tBTYIGpS+HgINak2YP62j3yHMm9ydJNZC3F1me+h9EFLR0g4sowYQad6DsKeLmsXLAUZ9ZXuwbM6JanxWwTJRS2F3WI1g6nUIeognt+vaYq3UGnYKJlTL4wQP7zBuCCeqVqeo2/ffxNJDG41t1673v+ySlKmJ6DfTzXQz3Uw30/8/pxsMiHcz3Uw30810M/3/crrJFG6mm+lmupluppBuMoWb6Wa6mW6mmymkm0zhZrqZbqab6WYK6SZTuJluppvpZrqZQrrJFG6mm+lmupluppBuMoWb6Wa6mW6mmymkm0zhZrqZbqab6WYK6SZTuJluppvpZrqZQvr/ABrcPBHDw/TOAAAAAElFTkSuQmCC", "text/plain": [ "
" ] @@ -506,30 +542,37 @@ "Image 0 PLOTTED\n", "\u001b[33mDALLE Creator!\u001b[0m (to Critics):\n", "\n", - "Here is the prompt: Create a high-resolution image with a black background, featuring a clearly delighted robot with an expressive smile and eyes that crinkle to denote joy. The robot is holding up a sign with highly contrasting colors, such as a white sign with bold, black or dark blue lettering stating \"I Love AutoGen\". Decorative elements like colorful hearts or a stylized frame around the text could be added to the sign to make it more appealing. The lighting should accentuate the robot's features and the sign's message without creating glare that would obscure the text..\n", + "Here is the prompt: Create a high-resolution image with a richly detailed, happy robot made of shiny metal, standing center frame against a stark black background. The robot is holding up a large, rectangular sign with rounded corners that reads \"I ❤️ AutoGen\" in bold, white sans-serif font, with the heart symbol in a vivid red color. The sign should be well-lit with a soft glow that highlights the text and makes it stand out. Ensure the robot's features clearly convey joy, perhaps through a broad smile and posture conveying enthusiasm. The composition should be balanced and visually appealing, with an intelligent use of space that guides the viewer's attention to the robot and the sign..\n", " Here is the figure .\n", " Now, critic and create a prompt so that DALLE can give me a better image.\n", - " Show me both \"CIRITICS\" and \"PROMPT\"!\n", + " Show me both \"CRITICS\" and \"PROMPT\"!\n", " \n", "\n", "--------------------------------------------------------------------------------\n", "\u001b[33mCritics\u001b[0m (to DALLE Creator!):\n", "\n", - "CRITICS: The image has made improvements in terms of the robot's expressiveness and the addition of decorative elements. However, the sign's text could benefit from an increase in font size to improve readability. Additionally, the image could have a slightly wider angle to show more of the robot's body, providing a better sense of its posture and joy. \n", + "CRITICS: The image could be improved in the following ways:\n", + "\n", + "1. Color Contrast: The overall color contrast between the robot and the sign could be enhanced to make the elements more distinct from one another.\n", + "2. Clarity and Details: The details of the robot's material and structure could be made sharper and more intricate to accentuate its shiny metal look.\n", + "3. Sign's Design: The design of the sign could be simplified by using negative space more effectively, ensuring the message \"I ❤️ AutoGen\" is instantly recognizable and stands out more.\n", + "4. Lighting and Shadows: The lighting could be diversified to cast subtle shadows, which would add depth and volume, making the image more three-dimensional.\n", + "5. Emotion and Posture: The robot's expression and posture could be exaggerated further to emphasize its joyfulness and the message it is conveying.\n", + "6. Background: While the background is appropriately black, adding a subtle texture or gradient could give the image more depth without distracting from the main subject.\n", "\n", - "PROMPT: Create a high-resolution image with a deep black background, showcasing an exuberant robot with a broad grin and eyes shaped to express joy. The robot, viewed at a slight distance to include more of its body for context, is holding up a larger sign where the white space allows for bigger and bolder text. Use black or dark blue lettering for \"I Love AutoGen\" in a font size that is easily legible. Embellish the sign with vibrant, colorful hearts in various sizes around the text and ensure the robot's stance reflects its happiness. Light the scene to provide a gentle glow on the robot and sign, ensuring that there is no reflection on the sign to maintain clear visibility of the message.\n", + "PROMPT: Generate a high-resolution 3D rendering of an exuberant, animated-style robot constructed from glossy, reflective metal surfaces. It stands in the center of a pure black background with a soft, radial gradient to provide subtle depth. The robot is displaying a sizable sign with prominent \"I ❤️ AutoGen\" lettering in a bold, white, sans-serif font, the heart being a luminous red, creating a stark, elegant contrast. Incorporate adequate lighting from multiple angles to cast dynamic, gentle shadows around the robot, enhancing its dimensional appearance. Ensure that the robot's facial features and stance radiate delight, featuring an exaggerated smile and arms raised in a victorious, welcoming gesture. The sign should be backlit with a soft halo effect, making it vibrant and eye-catching. The overall composition must be striking yet harmonious, drawing attention to both the robot’s delighted demeanor and the message it presents.\n", "\n", "--------------------------------------------------------------------------------\n", "\u001b[33mDALLE Creator!\u001b[0m (to Dalle):\n", "\n", - "Create a high-resolution image with a deep black background, showcasing an exuberant robot with a broad grin and eyes shaped to express joy. The robot, viewed at a slight distance to include more of its body for context, is holding up a larger sign where the white space allows for bigger and bolder text. Use black or dark blue lettering for \"I Love AutoGen\" in a font size that is easily legible. Embellish the sign with vibrant, colorful hearts in various sizes around the text and ensure the robot's stance reflects its happiness. Light the scene to provide a gentle glow on the robot and sign, ensuring that there is no reflection on the sign to maintain clear visibility of the message.\n", + "Generate a high-resolution 3D rendering of an exuberant, animated-style robot constructed from glossy, reflective metal surfaces. It stands in the center of a pure black background with a soft, radial gradient to provide subtle depth. The robot is displaying a sizable sign with prominent \"I ❤️ AutoGen\" lettering in a bold, white, sans-serif font, the heart being a luminous red, creating a stark, elegant contrast. Incorporate adequate lighting from multiple angles to cast dynamic, gentle shadows around the robot, enhancing its dimensional appearance. Ensure that the robot's facial features and stance radiate delight, featuring an exaggerated smile and arms raised in a victorious, welcoming gesture. The sign should be backlit with a soft halo effect, making it vibrant and eye-catching. The overall composition must be striking yet harmonious, drawing attention to both the robot’s delighted demeanor and the message it presents.\n", "\n", "--------------------------------------------------------------------------------\n" ] }, { "data": { - "image/png": "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", + "image/png": "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", "text/plain": [ "
" ] @@ -548,6 +591,16 @@ "\n", "--------------------------------------------------------------------------------\n" ] + }, + { + "data": { + "text/plain": [ + "ChatResult(chat_id=None, chat_history=[{'content': 'Create an image with black background, a happy robot is showing a sign with \"I Love AutoGen\".', 'role': 'assistant'}, {'content': 'result.jpg', 'role': 'user'}], summary='result.jpg', cost=({'total_cost': 0}, {'total_cost': 0}), human_input=[])" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" } ], "source": [ @@ -582,7 +635,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.13" + "version": "3.9.16" } }, "nbformat": 4, diff --git a/notebook/agentchat_function_call.ipynb b/notebook/agentchat_function_call.ipynb index 05cb0e58e0f4..1ae6dd81b744 100644 --- a/notebook/agentchat_function_call.ipynb +++ b/notebook/agentchat_function_call.ipynb @@ -103,7 +103,7 @@ "]\n", "```\n", "\n", - "You can set the value of config_list in any way you prefer. Please refer to this [notebook](https://github.com/microsoft/autogen/blob/main/website/docs/llm_configuration.ipynb) for full code examples of the different methods." + "You can set the value of config_list in any way you prefer. Please refer to this [notebook](https://github.com/microsoft/autogen/blob/main/website/docs/topics/llm_configuration.ipynb) for full code examples of the different methods." ] }, { diff --git a/notebook/agentchat_function_call_async.ipynb b/notebook/agentchat_function_call_async.ipynb index e7da183f5431..00e3ee8c7614 100644 --- a/notebook/agentchat_function_call_async.ipynb +++ b/notebook/agentchat_function_call_async.ipynb @@ -5,12 +5,6 @@ "id": "ae1f50ec", "metadata": {}, "source": [ - "\n", - "\n", "# Task Solving with Provided Tools as Functions (Asynchronous Function Calls)\n" ] }, @@ -61,7 +55,7 @@ "source": [ "````{=mdx}\n", ":::tip\n", - "Learn more about configuring LLMs for agents [here](/docs/llm_configuration).\n", + "Learn more about configuring LLMs for agents [here](/docs/topics/llm_configuration).\n", ":::\n", "````\n", "\n", @@ -246,6 +240,7 @@ "\n", "llm_config_manager = llm_config.copy()\n", "llm_config_manager.pop(\"functions\", None)\n", + "llm_config_manager.pop(\"tools\", None)\n", "\n", "manager = autogen.GroupChatManager(\n", " groupchat=groupchat,\n", @@ -366,6 +361,14 @@ } ], "metadata": { + "front_matter": { + "description": "Learn how to implement both synchronous and asynchronous function calls using AssistantAgent and UserProxyAgent in AutoGen, with examples of their application in individual and group chat settings for task execution with language models.", + "tags": [ + "code generation", + "function call", + "async" + ] + }, "kernelspec": { "display_name": "flaml_dev", "language": "python", diff --git a/notebook/agentchat_function_call_currency_calculator.ipynb b/notebook/agentchat_function_call_currency_calculator.ipynb index 0ff2beb97285..6709aec77629 100644 --- a/notebook/agentchat_function_call_currency_calculator.ipynb +++ b/notebook/agentchat_function_call_currency_calculator.ipynb @@ -106,7 +106,7 @@ "]\n", "```\n", "\n", - "You can set the value of config_list in any way you prefer. Please refer to this [notebook](https://github.com/microsoft/autogen/blob/main/website/docs/llm_configuration.ipynb) for full code examples of the different methods." + "You can set the value of config_list in any way you prefer. Please refer to this [notebook](https://github.com/microsoft/autogen/blob/main/website/docs/topics/llm_configuration.ipynb) for full code examples of the different methods." ] }, { diff --git a/notebook/agentchat_graph_modelling_language_using_select_speaker.ipynb b/notebook/agentchat_graph_modelling_language_using_select_speaker.ipynb deleted file mode 100644 index 9a706a6172fb..000000000000 --- a/notebook/agentchat_graph_modelling_language_using_select_speaker.ipynb +++ /dev/null @@ -1,668 +0,0 @@ -{ - "cells": [ - { - "attachments": {}, - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\"Open" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Auto Generated Agent Chat: Graph Modeling Language with using select_speaker\n", - "\n", - "AutoGen offers conversable agents powered by LLM, tool, or human, which can be used to perform tasks collectively via automated chat. This framework allows tool use and human participation through multi-agent conversation.\n", - "Please find documentation about this feature [here](https://microsoft.github.io/autogen/docs/Use-Cases/agent_chat).\n", - "\n", - "This notebook is about using graphs to define the transition paths amongst speakers.\n", - "\n", - "Benefits\n", - "- This contribution fills the gap between the current modes of GroupChat Class (auto, manual, round_robin) and an expressive directed graph. See Motivation for more detailed discussion.\n", - "\n", - "\n", - "## Requirements\n", - "\n", - "AutoGen requires `Python>=3.8`. To run this notebook example, please install:\n", - "```bash\n", - "pip install pyautogen\n", - "```" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "%%capture --no-stderr\n", - "# %pip install \"pyautogen>=0.2.3\"\n", - "%pip install pyautogen[graph]" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "import random # noqa E402\n", - "\n", - "import matplotlib.pyplot as plt # noqa E402\n", - "import networkx as nx # noqa E402\n", - "\n", - "import autogen # noqa E402\n", - "from autogen.agentchat.conversable_agent import ConversableAgent # noqa E402\n", - "from autogen.agentchat.assistant_agent import AssistantAgent # noqa E402\n", - "from autogen.agentchat.groupchat import GroupChat # noqa E402\n", - "from autogen.graph_utils import visualize_speaker_transitions_dict # noqa E402" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "0.2.5\n" - ] - } - ], - "source": [ - "print(autogen.__version__)" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Motivation\n", - "\n", - "\n", - "The current GroupChat class allows transition to any agent (without or without the decision of LLM), some use case might demand for more control over transition. A graph is a possible way to control the transition paths, where each node represents an agent and each directed edge represent possible transition path. Let's illustrate the current transition paths for a GroupChat with five agents." - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [], - "source": [ - "# The default config list in notebook.\n", - "config_list_gpt4 = autogen.config_list_from_json(\n", - " \"OAI_CONFIG_LIST\",\n", - " filter_dict={\n", - " \"model\": [\"gpt-4\", \"gpt-4-0314\", \"gpt4\", \"gpt-4-32k\", \"gpt-4-32k-0314\", \"gpt-4-32k-v0314\"],\n", - " },\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "agents = [ConversableAgent(name=f\"Agent{i}\", llm_config=False) for i in range(5)]\n", - "allowed_speaker_transitions_dict = {agent: [other_agent for other_agent in agents] for agent in agents}\n", - "\n", - "visualize_speaker_transitions_dict(allowed_speaker_transitions_dict, agents)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Possibly interesting transition paths\n", - "1. Hub and Spoke\n", - "2. Sequential Team Operations\n", - "3. Think aloud and debate" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "agents = [ConversableAgent(name=f\"Agent{i}\", llm_config=False) for i in range(5)]\n", - "allowed_speaker_transitions_dict = {\n", - " agents[0]: [agents[1], agents[2], agents[3], agents[4]],\n", - " agents[1]: [agents[0]],\n", - " agents[2]: [agents[0]],\n", - " agents[3]: [agents[0]],\n", - " agents[4]: [agents[0]],\n", - "}\n", - "\n", - "visualize_speaker_transitions_dict(allowed_speaker_transitions_dict, agents)" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n" - ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAApQAAAHzCAYAAACe1o1DAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAA9hAAAPYQGoP6dpAACdWUlEQVR4nOzdd1gUx+MG8HfvDo7emyigCGLv2Bt6aOzRaOwxReM3xfxMT0wxVVNMNMZUE6NRE1ssMTEWFBUbYseGoDRF6SBwcHV/fyCnJ0XK0d/P8/CE2zI7S3R9mdmZEURRFEFEREREVEmS2q4AEREREdVvDJREREREVCUMlERERERUJQyURERERFQlDJREREREVCUMlERERERUJQyURERERFQlDJREREREVCUMlERERERUJQyURERERFQlDJREREREVCUMlERERERUJQyURERERFQlDJREREREVCUMlERERERUJQyURERERFQlDJREREREVCUMlERERERUJQyURERERFQlDJREREREVCUMlERERERUJQyURERERFQlDJREREREVCUMlERERERUJQyURERERFQlDJREREREVCUMlERERERUJQyURERERFQlDJREREREVCUMlERERERUJQyURERERFQlDJREREREVCUMlERERERUJQyURERERFQlDJREREREVCUMlERERERUJQyURERERFQlstquAN2Tp9IiLj0Paq0e5jIJmjtbw1rO/0VERERUtzGt1LLo5BysC09AaFQKEjKUEO/bJwDwdrJCUIAbpvX0hr+7bW1Vk4iIiKhUgiiK4sMPI1NLzFBi/tZIhMWkQSoRoNOX/r+haH9/PxcsHNcBXk5WNVhTIiIiorIxUNaC9REJWPD3RWj1YplB8kFSiQCZRMCHY9phcqB3NdaQiIiIqPwYKGvY8tBoLN5ztcrlvDa0FV4M8jdBjYiIiIiqhqO8a9D6iASThEkAWLznKjZEJJikLCIiIqKqYAtlDUnMUEKx5CBUWj306gLknt0F5dVj0KQlQK8pgNTGCeYu3rBqMwDWbfpB1GqQeWAV1ElR0N5JhV6VB0FmDjOnprBq1Qe2gWNhaWmJkJcH8p1KIiIiqlUMlDVkxq/hOHo9Hfkp8Ujd/BG0WbdLPbbJU8sgsbTDze+fLPUYixZd4DnlE/TxdcaaZ3pWQ42JiIiIyofTBtWA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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# Sequential Team Operations\n", - "# Create an empty directed graph\n", - "\n", - "speaker_transitions_dict = {}\n", - "teams = [\"A\", \"B\", \"C\"]\n", - "team_size = 5\n", - "\n", - "\n", - "def get_agent_of_name(agents, name) -> ConversableAgent:\n", - " for agent in agents:\n", - " if agent.name == name:\n", - " return agent\n", - "\n", - "\n", - "# Create a list of 15 agents 3 teams x 5 agents\n", - "agents = [ConversableAgent(name=f\"{team}{i}\", llm_config=False) for team in teams for i in range(team_size)]\n", - "\n", - "# Loop through each team and add members and their connections\n", - "for team in teams:\n", - " for i in range(team_size):\n", - " member = f\"{team}{i}\"\n", - " # Connect each member to other members of the same team\n", - " speaker_transitions_dict[get_agent_of_name(agents, member)] = [\n", - " get_agent_of_name(agents, name=f\"{team}{j}\") for j in range(team_size) if j != i\n", - " ]\n", - "\n", - "# Team leaders connection\n", - "print(get_agent_of_name(agents, name=\"B0\"))\n", - "speaker_transitions_dict[get_agent_of_name(agents, \"A0\")].append(get_agent_of_name(agents, name=\"B0\"))\n", - "speaker_transitions_dict[get_agent_of_name(agents, \"B0\")].append(get_agent_of_name(agents, name=\"C0\"))\n", - "\n", - "visualize_speaker_transitions_dict(speaker_transitions_dict, agents)" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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Nuy2ppkAAAAVyWYLpSSNHTtW33//vQ4ePGh0lDs2depUNW/eXFlZWZKkd955R/fff78uXryoTz75RBEREapZs2apjhkXF6fdu3dr9OjRFREZAACgVBysNvzOjvz8fHXt2lUeHh5KSEgodfEqL5cLzTqRc1lFZoucnRzVvIGb3Gr99vuZsrOz1axZMxUWFiowMFCFhYXavn27GjZsqNjYWN1zzz2lznLp0iV16dJFXl5eiomJUY0aNe7kSwIAACg3Nvsub0lydXXVwoUL1bt3b7333nuaNm1apT33keyL+nZbmrYcOq203Hxd27odJDWt76q+bT31WM+mauNV56bH+Mc//iGz2SxJio2NlSSFhIRozZo1cnK6s2/966+/rlOnTiksLIwyCQAAbIJNTyh/Nn36dL3zzjtav369hgwZUqHPdTI3X29+l6zYo2dVw9FBxZZf//b8fHtg64Z6/+FOalL//09AnpWVpebNm6uwsPC6x0RHRysoKOiOsi1dulRjx47VZ599phdeeOGOjgEAAFDe7KJQXr16VSNHjlRYWJi++uorTZgwoUKeZ0limqau3SezxXrLIvlLNRwd5OTooOnDO2hsj6aSpBdeeEGzZ8++4b6enp46fvz4TT/95lb+9a9/afLkyXr00Ue1YMECOTra9MtfAQBANWLTK++f1axZU999952ee+45PfHEE0pPT9df/vIXOTg4lNtzfLbliD7adPiOHlv83wI6ZVWyzl4qVAel37RM1qlTR126dClZg98Oq9Wq//mf/9H777+vP//5z/rwww8pkwAAwKbYRaGUJCcnJ33xxRfy8/PTW2+9pUOHDmnmzJlq2LBhmY+9JDHtjsvkL3206bAuRn4uR0dH3X///RoxYoQ6d+6sTp06ydfXt1QlODs7W3/605+0dOlSffTRR3rllVfKJSMAAEB5souV9y998803+v3vf3/dZ33PmDFDU6ZMKfWxTubma8CsaBWaLeWWz9FarHWT7leH5t4l1yUlJWn16tWSpODgYAUHB1/3mBMnTuiTTz5RQkKCdu3aVfK1ubi4aN68eRozZky55QMAAChPdrk7HTdunNzd3a+77ssvv7yjY735XbLMpXi95O1wqOGkv0emXnddUlKSpk+frunTpysqKuqGxyQlJWnWrFnatm3bdUX5xRdfpEwCAACbZpeFMjw8XLm5uddd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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "agents = [ConversableAgent(name=f\"Agent{i}\", llm_config=False) for i in range(2)]\n", - "allowed_speaker_transitions_dict = {\n", - " agents[0]: [agents[0], agents[1]],\n", - " agents[1]: [agents[0], agents[1]],\n", - "}\n", - "\n", - "visualize_speaker_transitions_dict(allowed_speaker_transitions_dict, agents)" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Set your API Endpoint\n", - "\n", - "The [`config_list_from_json`](https://microsoft.github.io/autogen/docs/reference/oai/openai_utils#config_list_from_json) function loads a list of configurations from an environment variable or a json file." - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [], - "source": [ - "# The default config list in notebook.\n", - "config_list = autogen.config_list_from_json(\n", - " \"OAI_CONFIG_LIST\",\n", - " file_location=\".\",\n", - " filter_dict={\n", - " \"model\": [\"gpt-3.5-turbo\", \"gpt-35-turbo\", \"gpt-35-turbo-0613\", \"gpt-4\", \"gpt4\", \"gpt-4-32k\"],\n", - " },\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "It first looks for environment variable \"OAI_CONFIG_LIST\" which needs to be a valid json string. If that variable is not found, it then looks for a json file named \"OAI_CONFIG_LIST\". It filters the configs by models (you can filter by other keys as well). Only the gpt-4 models are kept in the list based on the filter condition.\n", - "\n", - "The config list looks like the following:\n", - "```python\n", - "config_list = [\n", - " {\n", - " 'model': 'gpt-4',\n", - " 'api_key': '',\n", - " },\n", - " {\n", - " 'model': 'gpt-4',\n", - " 'api_key': '',\n", - " 'base_url': '',\n", - " 'api_type': 'azure',\n", - " 'api_version': '2024-02-15-preview',\n", - " },\n", - " {\n", - " 'model': 'gpt-4-32k',\n", - " 'api_key': '',\n", - " 'base_url': '',\n", - " 'api_type': 'azure',\n", - " 'api_version': '2024-02-15-preview',\n", - " },\n", - "]\n", - "```\n", - "\n", - "If you open this notebook in colab, you can upload your files by clicking the file icon on the left panel and then choosing \"upload file\" icon.\n", - "\n", - "You can set the value of config_list in other ways you prefer, e.g., loading from a YAML file." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Demonstration" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "`GroupChat` now takes in two optional arguments.\n", - "- speaker_transitions_dict: a dictionary of keys and list as values. The keys are the names of the agents, and the values are the agents that the key agent can transition to. Default is None, in which case a fully connected graph is assumed.\n", - "- is_allowed_graph: whether the speaker_transitions_dict is a list of allowed agents or disallowed agents. Default is True, in which case the speaker_transitions_dict is a list of allowed agents. If set to False, then the speaker_transitions_dict is a list of disallowed agents." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Team Operations\n" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAABMQAAAP7CAYAAAC0u1IMAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdd1hT5/sG8DshbESWqKiAAgIioDhwAeJeVREHinW0jg7rt7bW1t1qq9Vaa2trl23dExFxYFUciCiigIKyQXAjSzYhJL8/rPmJewAHyP25Li6Tc07OuRMFzJP3fV6RQqFQgIiIiIiIiIiISEWIhQ5ARERERERERERUk1gQIyIiIiIiIiIilcKCGBERERERERERqRQWxIiIiIiIiIiISKWwIEZERERERERERCqFBTEiIiIiIiIiIlIpLIgREREREREREZFKYUGMiIiIiIiIiIhUCgtiRERERERERESkUlgQIyIiIiIiIiIilcKCGBERERERERERqRQWxIiIiIiIiIiISKWwIEZERERERERERCqFBTEiIiIiIiIiIlIpLIgREREREREREZFKYUGMiIiIiIiIiIhUCgtiRERERERERESkUlgQIyIiIiIiIiIilcKCGBERERERERERqRQWxIiIiIiIiIiISKWwIEZERERERERERCqFBTEiIiIiIiIiIlIpLIgREREREREREZFKYUGMiIiIiIiIiIhUCgtiRERERERERESkUlgQIyIiIiIiIiIilcKCGBERERERERERqRQWxIiIiIiIiIiISKWwIEZERERERERERCqFBTEiIiIiIiIiIlIpLIgREREREREREZFKYUGMiIiIiIiIiIhUCgtiRERERERERESkUlgQIyIiIiIiIiIilcKCGBERERERERERqRQWxIiIiIiIiIiISKWwIEZERERERET0Avfu3cP7778Pc3NzaGpqokmTJujfvz/OnDkjdDRYWlpizZo1b3SO5ORkNGjQAAYGBlWSiai2kwgdgIiIiIiIiKi28/b2hlQqxcaNG9GqVSvcvXsXwcHByM7OrrZrSqVSaGhoVNv5HyovL8fYsWPh5uaGsLCwar8eUW3AEWJEREREREREz5GXl4fTp09jxYoV8PT0hIWFBTp37oy5c+di6NChlY6bMmUKGjVqBH19ffTq1QuXLl2qdK79+/ejU6dO0NLSgomJCby8vJT7LC0tsXTpUkyYMAH6+vqYNm0aACA0NBRubm7Q1tZGixYtMHPmTBQVFQEAevbsifT0dMyaNQsikQgikeiVn9+CBQtgZ2eH0aNHv87LQ1QnsSBGRERERERE9Bx6enrQ09NDQEAAysrKnnncqFGjkJmZiaCgIFy8eBEuLi7o3bs3cnJyAAAHDx6El5cXBg0ahKioKAQHB6Nz586VzrFq1So4OzsjKioKCxcuREpKCgYMGABvb29cvnwZO3fuRGhoKGbMmAEA8Pf3R/PmzbFkyRLcvn0bt2/fVp5LJBJhw4YNz31ux48fx+7du/HLL7+85qtDVDeJFAqFQugQRERERERERLXZnj17MHXqVJSUlMDFxQUeHh7w8fGBk5MTgAejuAYPHozMzExoamoqH2dtbY05c+Zg2rRp6NatG1q1aoUtW7Y89RqWlpZo37499u7dq9w2ZcoUqKmp4ffff1duCw0NhYeHB4qKiqClpQVLS0t8/PHH+Pjjjyudz87ODsuXL680Cu1R2dnZaN++PbZs2QJ3d3ds2LABH3/8MfLy8l7zVSKqOzhCjIiIiIiIiOgFvL29cevWLQQGBmLAgAE4efIkXFxclCOwLl26hMLCQhgbGytHlOnp6SEtLQ0pKSkAgOjoaPTu3fu51+nYsWOl+5cuXcKGDRsqnbN///6Qy+VIS0t77rni4+OfWQwDgKlTp2LcuHFwd3d/iVeAqH5hQYzqjfq46ktCQgI8PT3RuHFjaGlpoVWrVliwYAHKy8urPiQRERERET2XlpYW+vbti4ULFyIsLAyTJk3C4sWLAQCFhYVo2rQpoqOjK30lJCTgs88+AwBoa2u/8Bq6urqV7hcWFmL69OmVznnp0iUkJSXBysrqjZ7P8ePHsWrVKkgkEkgkErz77ru4f/8+JBIJ/v777zc6N1Ftx1Umqd6oj6u+qKurY8KECXBxcYGBgQEuXbqEqVOnQi6XY9myZdV2XSIiIiIierE2bdogICAAAODi4oI7d+5AIpHA0tLyqcc7OTkhODgYkydPfulruLi44OrVq7C2tn7mMRoaGqioqHiV6ACAs2fPVnrcvn37sGLFCoSFhaFZs2avfD6iuoQjxKheqK+rvrRq1QqTJ0+Gs7MzLCwsMHToUPj6+uL06dNv8nIREREREdEryM7ORq9evbBlyxZcvnwZaWlp2L17N1auXIlhw4YBAPr06YOuXbti+PDhOHLkCK5du4awsDDMnz8fFy5cAAAsXrwY27dvx+LFixEXF4eYmBisWLHiudf+/PPPERYWhhkzZiA6OhpJSUnYt2+fsqk+8OB9SkhICG7evImsrCzldjs7u0r9yB5nb2+Ptm3bKr+aNWsGsViMtm3bwtDQ8E1eMqJajwUxqhfq86ovj0pOTsbhw4fh4eHxCq8OERERERG9CT09Pbi6uuKHH36Au7s72rZti4ULF2Lq1Kn4+eefATz4v/2hQ4fg7u6OyZMno3Xr1vDx8UF6ejoaN24M4MGH5bt370ZgYCDatWuHXr164fz588+9tpOTE06dOoXExES4ubmhffv2WLRoEczMzJTHLFmyBNeuXYOVlRUaNWqk3J6QkID79+9XwytCVPdxlUmqN+rjqi8PdevWDZGRkSgrK8O0adPw66+/QixmPZuIiIiIiIjodfAdNdUb9XHVl4d27tyJyMhIbNu2DQcPHsSqVate+BgiIiIiIiIiejo21ad65eGqLw9XfpkyZQoWL16MSZMmKVd9OXny5BOPMzAwAPBmq77MnDnziWPNzc1f63k8rkWLFgAeNO2sqKjAtGnT8Omnn0JNTa1Kzk9ERERERESkSlgQo3qtrq/68jRyuRzl5eWQy+UsiBERERERERG9Bk6ZpHqhvq76snXrVuzatQtxcXFITU3Frl27MHfuXIwZMwbq6upv8pIRERERERERqSyOEKN64dFVX1JSUlBeXo4WLVpg6tSpmDdvHoD/X/Vl/vz5mDx5Mu7du4cmTZrA3d39iVVfli5dim+//Rb6+vpwd3d/7rUfrvoyf/58uLm5QaFQwMrKCmPGjFEes2TJEkyfPh1WVlYoKyvDw7UsXrTqi0QiwYoVK5CYmAiFQgELCwvMmDEDs2bNetOXjIiIiIiIiEhlcZVJIiIiIiIiIiJSKZwySUREREREREREKoUFMSIiIiIiIiIiUiksiBERERERERERkUphQYyIiIiIiIiIiFQKC2JERERERERERKRSWBAjIiIiIiIiIiKVwoIYERERERERERGpFBbEiIiIiIiIiIhIpbAgRkREREREREREKoUFMSIiIiIiIiIiUiksiBERERERERERkUphQYyIiIiIiIiIiFQKC2JERERERERERKRSWBAjIiIiIiIiIiKVwoIYERERERERERGpFBbEiIiIiIiIiIhIpbAgRkREREREREREKoUFMSIiIiIiIiIiUiksiBERERERERERkUphQYyIiIiIiIiIiFQKC2JERERERERERKRSWBAjIiIiIiIiIiKVwoIYERERERERERGpFBbEiIiIiIiIiIhIpbAgRkREREREREREKoUFMSIiIiIiIiIiUiksiBERERERERERkUphQYyIiIiIiIiIiFQKC2JERERERERERKRSJEIHICIiIiIiIqLKispkuJZdBKlMDg2JGJbGutDV5Ft4oqrC7yYiIiIiIiKiWiDpbgG2hmfgREImMnKKoXhknwiAuZEOPG1N4etqDpvGDYSKSVQviBQKheLFhxERERERERFRdbieU4x5e2NwOjkLamIRKuTPfpv+cL+btQmWeTmihZFODSYlqj9YECMiIiIiIiISyI6IDCwOvAKZXPHcQtjj1MQiSMQifDXUAT6dzKsxIVH9xIIYERERERERkQB+PpGEVUcS3/g8s/u1xgxPmypIRKQ62EOM6DWxySUREREREb2uHREZVVIMA4BVRxLRSE8TYzhSjOilcYQY0Stgk0siIiIiInpTsz6fjzUrl1XeKBJDrN0AGo0soOvYF3ptPZW7CmOPo/RaNKR3klFRkA25rAySBo2gbdURDbv7QE2nITQlYhyb5cGeYkQviQUxopfAJpdERERERFRVnIZOQcz+v557jIHnO2joOgIAkP6dF1BR/tTjJA0bo8mkNdDQ1Ue3VsbY/K5rleclqo/EQgcgqu12RGSgzw+nEJaaDQAvbHT5cH9Yajb6/HAKOyIyqj0jERERERHVDUl3C5CRU6y8r9WqAxr7roCpz9fQbt1Vub3g4gHlbZFIBM3mbWDU/0OY+nyNhm7jAbUH7Vpk9++i4EIgKuQKnE7OQnJmQc09GaI6jA2PiJ7jTZpcVvy3SswX/jHIKixjk0siIiIiIsLW8AyIRCLlfTUdA2i1cHhwW9cQJYlnAQAVRbnKYxp5L4B2SxflfW3LdpCXFKDgwj4AQNntB+9Z1MQibDmXgS+HOlT78yCq6zhCjOgZqrrJ5U6OFCMiIiIiUnknEjLxtM5FiopylCSdU97XaGShvP1oMewhdSMz5W2xuhaABx/Kn0jMrMq4RPUWR4gRPcX1nGIsDrwCAMg+/DMKow8r9xl4TETDrqMqHS/Lu4v8i4EouxkP6d0UoEIGAGjYfSwM3HwBAIsCr6CblQl7ihERERERqajCMlml6ZIAUBQbjKLY4ErbxDoNYdhn+nPPVZwQpryt3aqD8nZGdjGKymTQ1eTbfaLn4QgxoqeYtzcGMrkCigpZpV80AFAUF/LE8dLMVBRE7IP0VoKyGPY4mVyBeXtjqiUvERERERHVfunZRXiZVe1EEg0opMXP3J8bshml6ZcAABpmttB17K3cpwBwLbvoDZMS1X8siBE9JuluAU4nZ6FCrkDptSjIS/Ir7S/PTEN59vVK20TqWtCybI+G3cdC26bLU8/LJpdERERERKpNKpM/se1hU/3GY5ehoZsvABEq8u/hnv8yVBTmPnF87vG/kB+2EwAgMW4O05GLIBKrvfA6RFQZC2JEj9kangE18YMml0VX/380mI69u/L2o9sBQLtlezT2WQoDN1+oGzd/5rkfNrkkIiIiIiLVoyF58i34w6b6WhZOMOg+FlqtHvQLU8jKUJwcrjxOoZAj+/DPyD+/FwCg3sgSTcYth5pOw5e6DhFVxu8SosecSMhEhVwBhUyK4v+aWop1GsKoz1Tgv09eiuJOv9a52eSSiIiIiEh1WRrrQvSigx5puC8veTC7RCGvQNb+75W9jTXMbNHY91uo6Ro+8XDRf9choudjlz2iRzza5LI4+TwU0hIAgI5NF6jpGkLL3BGl16Ihy7kB6Z0UaDSxeuVrsMklEREREZFq0tWUwNxIB49OhKwozkPp9SuAvAJlN+NRei1auU/dqBkA4J7/MpT8N1pMTb8RDHqMQ/m9dJT/d5xYUxcappYAAHNjHb7XIHoJ/C4hesSjTS6LH2mer2PX/cGftt2Vv6CK4kJeqyD2sMmlg9mTQ5uJiIiIiKh+87Q1xWXR/48TK029iNLUi08cp9HYCtrWnQFAWQwDgIr8e8jctbjSsZot2qKJ77dQE4vg2dq0mpIT1S+cMkn0iIfNJ+VlxShJuQAAEGs1gJaFMwBAx7YbIHrwbVMUdxoKxcusEfPs6xARERERkWrxdTV/5vsIkUQT6o0soN9tDBqPWw6R2quNYamQKzC+i3lVxCSq9zhCjOgRD5tPFiedg0ImBQDISwuQsXLYE8dW5Gei7GY8tJrbv/Z1iIiIiIhItdg0boC3Jv8PYR7jUSF/uQ/YLb448MJj1MQidGtlDGvTBm8akUgl8F050SMeNrksunrqpY5/dFrly2KTSyIiIiIi1bbMyxES8Qvb678SiViEZV6OVXpOovqMI8SIHqGrKUFTzXJc+69PmEhDGwYeEyofVCFD7vG/AADF8aEw7DMV8pIClGbEAADKs28oDy3Pvo6i+FAAgJa5I9R0GrLJJRERERGRimthpIPuWrdwvLBJlZ1zyVAHtDDSqbLzEdV3fFdO9BijzChAXgEA0G7ZHvod3nrimMLYEyjPTEVFUS5K0y9DJBIjK+DbJ44rjg9F8X8FscZjl0GjpTObXBIRERERqaiioiIEBARg9uzZuHPnDgbPWYtYccs3Pu9n/WwxphN7hxG9Ck6ZJHrMvejjytva1q5PPUbnv9VegFebNskml0REREREqkUul+PkyZOYPHkyGjVqhPHjx+POnTuQSCQIXP4Bvh3hCE2JGGqvOIVSUSGDSC7DtyMc8aGndTWlJ6q/RIrXXSaPqB57+69whKVmv3STy5fxsMnl5nefXmQjIiIiIqL6paysDM7OzkhISIBEIoFMJlPue//997Fu3ToAwPWcYszbG4PTyVlQE4ue+z7k4X7Z9RjcPbAG7WxaYPPmzbCzs6v250NUn3CEGNFTsMklERERERG9KQ0NDVhbPxi99WgxDACGDh2qvN3CSAeb33XF0Y/d8barBSyMdfD4uxERAAtjHbztaoFjs9wxWDcNsvt3ceHCBTg4OOCzzz5DQUFBNT8jovqDI8SInmFHRAa+8I+psvOtGOHIef1ERERERCqmvLwcbm5uCA8PV27T0tJCbm4utLS0nvm4ojIZrmUXQSqTQ0MihqWxbqXFuX766Sf873//U94Xi8UwNjbGunXrMHLkyOp5MkT1CEeIET2DTydzzO7XukrOVXBmGy7t/Q3FxcVVcj4iIiIiIqobjh49ivPnz0MieVDMEolE6Nu373OLYQCgqymBg1lDtDc3hINZwydWqm/evHml+3K5HPfu3cP7778PuVxetU+CqB5iQYzoOWZ42uDbEY4QKyogUrzaLxU1sQiaEjEW9GuJnNPbsHz5chgaGmL8+PE4dOgQysvLqyk1ERERERHVBqGhoXjrrbegoaGBuLg4zJ49GwqFAl5eXm987mbNmj2xrXv37ggNDYVYzLf6RC/C7xKiF4jesw7Xf5sGC60yAHjh6i8P93drZYxjszwwxbONcsiyVCrF9u3bMXjwYDRq1AgzZsxAaWlp9T4BIiIiIiKqcZcvX0avXr0gFotx7tw5WFtbY+XKlYiIiMDEiRPf+PwPR4iJRCKoqakBAIYNGwZbW9s3PjeRKmAPMaJnyMzMxIwZM7B7924AD5pgpmYVY2t4Bk4kZiIjuxiPfvOIAJgb68CztSnGdzGHtWkD5b5///0XAwYMeOIampqaSE1NhZmZWTU/GyIiIiIiqimpqalwcHCAVCrFyZMn4ebmVuXXqKioQIsWLdCxY0esXbsWzs7OKCoqwu3bt2FiYlLl1yOqb1gQI3qMQqHA5s2bMXPmTOTn50OhUMDAwAC5ubmVjntRk8tHSaVSGBsbo7CwULlNU1MTR44cgbu7e7U+HyIiIiIiqjl37tyBjY0NioqKEBgYiCFDhlTbtRQKBUSiBzNUDh8+jIEDB6Jz586VGvgT0dNxyiTRI27cuIE+ffpg4sSJuH//Ph7Wiy0sLJ449kVNLh+loaGBt956C2pqaspfWHK5HMbGxtXzRIiIiIiIqMbl5eWhTZs2KCwsxKZNm6q1GAZA+d4CAAYMGIB+/frh/Pnz2Lp1a7Vel6g+YEGM6BF//vknjh8//sR2U1PTNz73iBEjUFFRgQYNGmDt2rWoqKhAx44dkZSU9MbnJiIiIiIiYZWWlsLe3h65ubn46aefMH78+BrPsHfvXmhpaWHq1KkoKSmp8esT1SUsiBE9Yt68eVi+fDnU1dWV29TU1NCoUaM3PvfgwYMxffp0nDp1CjNmzMDevXtRVlYGZ2dnpKenv/H5iYiIiIhIGDKZDA4ODrhz5w6+/PJLfPTRR4Lk0NHRwW+//YaSkhJ4e3sLkoGormAPMaLHyGQy6Ovro6ysDHK5HADw0Ucf4aeffqrya/n5+WH06NHQ0dFBfHy8cqUYIiIiIiKqG+RyOdq1a4eYmBjMnDkTP/74o9CR0LFjR1y8eBFHjhxB3759hY5DVCtxhBjRY959912UlJTgxx9/xLFjx9C5c2f06NGjWq41cuRIbN68GUVFRcpPlIiIiIiIqO7w8PBATEwM3n777VpRDAOAQ4cOQSKRYPTo0coP+YmoMo4QI3pEamoqrK2tYWlpidTU1Bq77l9//YUpU6bAwMAAycnJbLZPRERERFQHDBkyBAcPHsTgwYNx4MABoeNUsmLFCnzxxReYOHEiNmzYIHQcolqHBTGiRzg6OiI2NhZRUVFo165djV77l19+wYwZM2BsbIzk5GQYGBjU6PWJiIiIiOjlTZgwAZs3b0b37t0RGhoqdJynsra2RkpKiiDvb4hqO06ZJPrPjh07EBsbi6FDhwryy+LDDz/EqlWrkJ2dDVtbWxQWFtZ4BiIiIiIierH//e9/2Lx5MxwdHRESEiJ0nGc6fPgwRCIRhgwZInQUolqHBTEiPGikP23aNGhqamL79u2C5fj000/x9ddfIzMzE7a2tlwqmYiIiIiolvnqq6/w008/oWXLloiMjIRYXHvfVltbW2PmzJm4efMmPv/8c6HjENUqnDJJBGDatGn4888/sXr1asyaNUvoOFi4cCG+/vprmJubIykpCRoaGkJHIiIiIiJSeWvXrsXMmTPRpEkTpKWlQUtLS+hILySXy2FmZoZ79+4hNTUVFhYWQkciqhVYECOVl56ejlatWqF58+ZIT08XOo7SZ599hlWrVsHKygrx8fGQSCRCRyIiIiIiUllbtmzB22+/DUNDQ6Smptapnr8RERHo3Lkz7OzsEBcXJ3Qcolqh9o7tJKohw4cPh1wuh5+fn9BRKvnuu+8wY8YMpKSkoG3btqioqBA6EhERERGRStq/fz8mTJgAXV1dXLlypU4VwwCgU6dOGDNmDOLj4/Hjjz8KHYeoVuAIMVJpe/bswciRIzFw4EAcOnRI6DhPNXXqVKxfvx6Ojo6Ijo6u1T0KiIiIiIjqm5CQEHh6ekJdXR1XrlyBlZWV0JFei0wmg7GxMUpKSnDnzh0YGRkJHYlIUCyIkcqSy+UwNDREaWkpsrOzoaenJ3SkZ3r77bexZcsWdOjQAefPn2dRjIiIiIioBkRHR6NTp04AgAsXLsDZ2VngRG/m4MGDGDJkCLp27YqwsDCh4xAJiu+qSWV99NFHyM/Px5IlS2p1MQwANm/ejFGjRuHixYtwc3MD69hERERERNUrJSUFXbp0gVwux4kTJ+p8MQwABg8ejF69euHs2bPYuXOn0HGIBMURYqSSbty4AQsLCzRt2hQ3btwQOs5LGzp0KPbv3w9PT08cP35c6DhERERERPXSrVu30Lp1axQXFyMwMBBDhgwROlKVKSwshImJCdTU1JCdnV0nVsokqg4cIUYq6WEj/d27dwsd5ZUEBgaiT58+OHHiBAYNGiR0HCIiIiKieicvLw9t27ZFUVERNm/eXK+KYQCgp6eHdevWobi4GKNGjRI6DpFgWBAjlRMYGIiLFy+ib9++6Nq1q9BxXtnRo0fh5uaGoKAgeHl5CR2HiIiIiKjeKC4uhr29PXJzc7F27Vr4+voKHalavPPOO2jfvj0OHDjAmSeksjhlklSKXC6HsbExioqKkJWVBX19faEjvRa5XI5u3bohPDwcPj4+2L59u9CRiIiIiIjqNJlMhtatWyMtLQ1fffUVFi1aJHSkanX37l00a9YM+vr6yMrK4sJdpHL4L55UyieffIK8vDwsXLiwzhbDAEAsFiMsLAzt2rXDjh07MHnyZKEjERERERHVWXK5HC4uLkhLS8PHH39c74thANC4cWN89dVXyM3NxZQpU4SOQ1TjOEKMVMadO3fQrFkzmJqa4vbt20LHqRJyuRyOjo64evUq3nvvPfz6669CRyIiIiIiqnN69OiBM2fOYMKECdi4caPQcWqUlZUV0tLSEB0dDScnJ6HjENUYjhAjlVFXG+k/j1gsxqVLl2BjY4PffvsNs2bNEjoSEREREVGdMnjwYJw5cwZDhgxRuWIYAAQFBQFAvVs8gOhFWBAjlRAUFITw8HB4enqiR48eQsepUhKJBLGxsbC0tMSaNWswd+5coSMREREREdUJEyZMwKFDh9CjRw/s379f6DiCaN26NT744ANcv34d8+fPFzoOUY3hlEmq9+RyOUxNTXH//n1kZmbC0NBQ6EjVorS0FDY2Nrhx4wa+/PJLLF68WOhIRERERES11v/+9z/89NNPcHR0RHR0tEo3lZfL5WjSpAmys7ORlpYGc3NzoSMRVTvV/Y4nlfH5558jOzsbc+fOrbfFMADQ0tJCQkICmjRpgi+//BIrVqwQOhIRERERUa305Zdf4qeffkKrVq0QGRmp0sUw4EErln379kEul2PQoEFCxyGqERwhRvVaVlYWmjRpAmNjY9y9e1foODUiPz8f1tbWuHfvHtasWYP//e9/QkciIiIiIqo1fvzxR3z88cdo2rQpUlNToaWlJXSkWmPUqFHw8/PD2rVrMWPGDKHjEFUrFsSoXnu4WkxwcDB69eoldJwak5ubC2tra+Tk5OC3337D9OnThY5ERERERCS4TZs2YeLEiTAyMkJqaioaNmwodKRapby8HEZGRpBKpbh79y4MDAyEjkRUbVR7XCjVa8eOHcOZM2fg5uamUsUwADA0NER8fDwaNmyI9957TyVXyyEiIiIielRgYCAmTZoEPT09XLlyhcWwp1BXV8fWrVshlUq56iTVexwhRvXSw6aQOTk5uHPnDkxMTISOJIhbt27B1tYWRUVF2LZtG3x8fISORERERERU40JCQuDp6QkNDQ1cvXoVLVu2FDpSrebp6YmTJ09i9+7dGDlypNBxiKoFR4hRvbRw4ULcu3cPs2fPVtliGACYmZnhypUr0NbWxrhx47B3716hIxERERER1ajo6Gj07t0bampqCA8PZzHsJQQGBkJTUxOTJk2CVCoVOg5RteAIMap3cnJy0LhxYzRs2BCZmZkqv2IMAKSmpsLBwQFSqRQHDhzAwIEDhY5ERERERFTtkpKS4OjoCJlMhlOnTqF79+5CR6oz/vjjD0yfPh3Dhg1DQECA0HGIqhwrBVTvjBgxAjKZDFu3bmUx7D+tWrVCVFQU1NXVMWTIEAQHBwsdiYiIiIioWt26dQvt27eHVCpFYGAgi2GvaNq0aXBycsK+ffsQEhIidByiKscRYlSvnDp1Cj179kTXrl0RFhYmdJxaJyYmBh06dIBcLsfJkyfRo0cPoSMREREREVW5vLw8tGzZEnl5ediyZQt8fX2FjlQn3bp1C+bm5jAwMODsG6p3+K+Z6hUfHx+oqalxSO8zODo6IiwsDCKRCJ6enjh//rzQkYiIiIiIqlRxcTHs7e2Rl5eHtWvXshj2BszMzLBo0SJkZ2fjvffeEzoOUZViQYzqja+++gp37tzBzJkzYWpqKnScWqtjx444deoUFAoFevTogejoaKEjERERERFVCZlMBgcHB9y5cwdLly7FjBkzhI5U5y1atAgWFhZYv349rly5InQcoirDKZNUL+Tl5aFRo0Zo0KABsrKyOJT3JZw8eRJ9+vSBmpoaIiMj4eDgIHQkIiIiIqLXJpfL4ezsjNjYWMyaNQurV68WOlK9ERcXBwcHB7Ro0QLp6elCxyGqEqwaUL0wcuRIyGQybNq0icWwl9SzZ08cPHgQMpkMHTt2RFJSktCRiIiIiIhem5ubG2JjYzFx4kQWw6qYvb09pk+fjoyMDCxevFjoOERVgiPEqM47c+YMevTogU6dOrEn1msIDAzE8OHDoaWlhbi4OFhYWAgdiYiIiIjolQwaNAhBQUEYOnQo9u3bJ3Scekkul6Nx48bIzc1FRkYGzMzMhI5E9EZYEKM6r1mzZrhz5w6uX7/OH8qvaffu3RgzZgx0dHQQHx+P5s2bCx2JiIiIiOil+Pr6Ytu2bXBzc0NISIjQceq1h4MRHB0dcfnyZaHjEL0Rzi2jOm358uW4desWPvjgAxbD3sCoUaOwadMmFBUVwcHBAXfv3hU6EhERERHRC3300UfYtm0bnJyccPLkSaHj1Hvdu3eHl5cXYmJi8Ouvvwodh+iNcIQY1VkFBQUwNjaGjo4OcnJy2DusCqxfvx5Tp06FgYEBkpOTYWxsLHQkIiIiIqKnWrRoEZYuXQorKyvEx8dDIpEIHUklSKVSGBkZoby8HPfu3YO+vr7QkYheCysIVGeNHj0a5eXl+Oeff1gMqyJTpkzBzz//jLy8PNja2iIvL0/oSERERERET1izZg2WLl2Kpk2bIjY2lsWwGqShoYHNmzdDKpXirbfeEjoO0WvjCDGqkyIiItC5c2e0b98ekZGRQsepd77//nvMnj0bjRs3RnJyMvT09ISOREREREQEANi4cSMmTZoEIyMjpKWlcYSSQNzd3XH69Gn4+/vDy8tL6DhEr4wFMaqTzM3NcfPmTaSlpcHc3FzoOPXSN998gwULFsDMzAzJycnQ1tYWOhIRERERqbh9+/bBy8sLurq6SElJgampqdCRVFZ+fj4aNWoEdXV15OTkQENDQ+hIRK+E88yozlm1ahWuX7+OqVOnshhWjebPn48FCxbg1q1bsLOzg1QqFToSEREREamwkydPYsSIEdDU1MTly5dZDBOYvr4+1qxZg6KiIowdO1boOESvjCPEqE4pLi6GoaEhtLS0kJuby95hNeCzzz7DqlWr2KyUiIiIiAQTGRkJV1dXiEQiREZGom3btkJHov84OjoiNjYWoaGh6N69u9BxiF4aqwlUp4wZMwZSqRR//vkni2E15LvvvsOHH36IlJQUODo6oqKiQuhIRERERKRCkpKS0K1bNygUCpw4cYLFsFomKCgIampqGD58OORyudBxiF4aKwpUZ0RGRuLAgQNwdHTE6NGjhY6jUn7++We8++67iI+PR/v27fmLjoiIiIhqxK1bt9C+fXtIpVIEBgZyBFIt1Lx5c8ybNw9ZWVmYMWOG0HGIXhqnTFKdYWlpiYyMDKSlpcHCwkLoOCpp/Pjx2Lp1Kzp06IDz589zlB4RERERVZucnBxYWVkhLy8P27ZtY5+qWs7CwgLXr1/HlStXYG9vL3Qcohfiu1mqE9auXYv09HRMmjSJxTABbdmyBSNHjsTFixfh5uYG1tOJiIiIqDoUFxejTZs2yMvLwy+//MJiWB1w6NAhAMCgQYMETkL0cjhCjGq90tJSGBoaQiKRIDc3l03da4G33noLBw4cQK9evRAcHCx0HCIiIiKqR6RSKVq3bo309HQsXboUCxYsEDoSvaSpU6di/fr1+Oqrr7Bo0SKh4xA9FwtiVOuNGDECe/fuxebNmzF+/Hih49B/+vbti2PHjmHgwIHKT4OIiIiIiN6EXC6Ho6Mjrl69ilmzZmH16tVCR6JXIJfL0ahRI9y/fx83btxAkyZNhI5E9EwsiFGtdvnyZTg7O6NNmza4cuWK0HHoMW5ubggNDYWXlxf8/f2FjkNEREREdVzXrl1x7tw5TJo0Cf/884/Qceg1hISEwMPDA87OzoiOjhY6DtEzsYcY1WojRoyASCRCYGCg0FHoKU6dOoXOnTtj7969GDdunNBxiIiIiKgOGzBgAM6dO4dhw4axGFaHubu7Y+jQobh06RLWr18vdByiZ+IIMaq1fv/9d7z33nsYP348Nm/eLHQcega5XI4OHTogOjqan+QRERER0WsZN24ctm/fDnd3d5w6dUroOPSGpFIpjIyMIJPJkJWVBT09PaEjET2BBTGqlaRSKQwMDCASiZCXlwd1dXWhI9FzPNrr4f3338e6deuEjkREREREdcSHH36IdevWoV27drh48SLEYk5kqg/8/PwwatQoeHp64vjx40LHIXoCf9JQrTR+/HiUlJTg559/ZjGsDhCLxbh06RJsbGzw66+/4pNPPhE6EhERERHVAQsXLsS6detgbW2NiIgIFsPqkZEjR6J79+44ceIEW+BQrcQRYlTrxMXFwcHBAa1bt0Z8fLzQcegVSKVS2Nra4tq1a5g7dy6WLVsmdCQiIiIiqqXWrFmDWbNmwczMDCkpKdDS0hI6ElWxvLw8mJqaQktLCzk5OZBIJEJHIlJi+Z1qneHDhwMA9u3bJ2wQemUaGhqIi4tD8+bNsXz5cixZskToSERERERUC23cuBGzZs2CkZER4uLiWAyrpwwMDPD999+joKCAi3BRrcMRYlSr/PXXX5gyZQrGjBmDHTt2CB2HXlNxcTGsrKxw584drFixAnPmzBE6EhERERHVEvv27YOXlxf09PSQnJwMU1NToSNRNXNwcMDVq1dx7tw5uLq6Ch2HCAALYlSLSKVSGBoaQqFQIC8vDxoaGkJHojeQn58Pa2tr3Lt3Dz/++CNmzpwpdCQiIiIiEtjJkyfRu3dvaGhoID4+HhYWFkJHohqQkZGBli1bwsTEBLdv32avOKoV+K+Qao133nkHxcXFWLNmDYth9YC+vj7i4+NhZGSE//3vf/jjjz+EjkREREREArp48SL69u0LNTU1REREsBimQszNzfHFF18gMzMTH3/8sdBxiABwhBjVEklJSbC1tYWVlRWSkpKEjkNV6N69e7C2tkZ+fj42bNiAiRMnCh2JiIiIiGpYQkICnJ2dIZPJcPr0aXTt2lXoSCSAFi1a4ObNm0hISICNjY3QcUjFcYQY1QrDhg2DQqHA3r17hY5CVaxRo0aIi4uDnp4eJk+ejJ07dwodiYiIiIhq0I0bN+Di4gKpVIr9+/ezGKbCDh48CAAYMGCAwEmIWBCjWmDTpk2Ii4vDiBEj0LZtW6HjUDUwMzPDlStXoK2tjbFjx7LwSURERKQicnJy0LZtWxQXF2Pr1q0YOHCg0JFIQE5OTpg0aRJSU1OxfPlyoeOQiuOUSRKUTCaDgYEBKioqkJuby+WW67mUlBS0bdsWUqkUBw4c4H+IiIiIiOqx4uJitGzZEpmZmVi3bh3ef/99oSNRLSCXy2FiYoKCggJcv34dTZo0EToSqSiOECNBTZ06FUVFRfjuu+9YDFMBVlZWiIyMhLq6OoYMGYLg4GChIxERERFRNZBKpbC3t0dmZia+/vprFsNISSwWw8/PDzKZDIMHDxY6DqkwjhAjwaSlpcHKygqWlpZITU0VOg7VoMuXL6Njx46Qy+U4deoUunfvLnQkIiIiIqoicrkcbdu2RVxcHD755BN8//33QkeiWmjIkCE4ePAg/v77b0yePFnoOKSCWBAjwTg5OSEmJgZRUVFo166d0HGohl24cEHZUDUsLAydOnUSOBERERERVYUuXbogPDwckydPxt9//y10HKqlSktLYWxsDLlcjnv37kFPT0/oSKRiOGWSBLFz507ExMRg6NChLIapqI4dO+LUqVNQKBTo3r07oqOjhY5ERERERG9owIABCA8Px/Dhw1kMo+fS0tLC33//jdLSUnh5eQkdh1QQR4hRjZPL5TAwMIBUKkVOTg50dHSEjkQCOnHiBPr06QOJRIKoqCi0adNG6EhERERE9BrGjh2LHTt2wMPDAydPnhQ6DtURXbt2xblz53Dw4EEMGjRI6DikQjhCjGrce++9h4KCAixfvpzFMIKnpycOHjwImUyGDh06ICkpSehIRERERPSKPvjgA+zYsQPt27fH8ePHhY5DdcjBgwehrq6OsWPHQiaTCR2HVAgLYlSjMjIy8Ndff8Hc3ByzZs0SOg7VEgMGDMDevXtRVlaGdu3aIT09XehIRERERPSSFi5ciF9//RU2NjY4f/48xGK+zaSXZ2RkhO+++w75+fmYMGGC0HFIhXDKJNWo9u3bIzo6GufPn2cTdXrCrl274OPjA11dXSQkJMDMzEzoSERERET0HKtXr8ann36KZs2aITk5GVpaWkJHojrK3t4e8fHxfK9INYale6oxe/bsQXR0NAYOHMgfcPRUo0ePxsaNG1FYWAh7e3tkZmYKHYmIiIiInuHvv//Gp59+CmNjY1y9epXFMHojhw8fhlgsxltvvQW5XC50HFIBLIhRjZDL5Xj33XehoaGBXbt2CR2HarG3334bf/75J/Lz82FnZ4ecnByhIxERERHRY/bu3YspU6agQYMGuHr1KvT19YWORHWchYUFZs+ejbt372L27NlCxyEVwIIY1YiPPvoI9+/fx1dffQU9PT2h41AtN2XKFKxduxa5ubmwtbVFfn6+0JGIiIiI6D/Hjx/HyJEjoaWlhZiYGJiamgodieqJFStWwMzMDGvWrEFKSorQcaieYw8xqnY3btyAhYUFmjZtihs3bggdh+qQVatW4bPPPkPjxo2RnJzMYioRERGRwC5cuICuXbtCJBIhKioKDg4OQkeieiYyMhIdOnSAjY0NEhMThY5D9RhHiFG18/Lyglwux+7du4WOQnXM7NmzsXTpUty9exd2dnYoLS0VOhIRERGRykpISED37t2hUChw6tQpFsOoWri4uGDChAlISkrCypUrhY5D9RhHiFG1CgwMxLBhw9C3b18cOXJE6DhURy1YsADffPMNLCwskJiYCA0NDaEjEREREamUGzduwNbWFiUlJQgKCkL//v2FjkT1mFwuh7GxMQoLC3H79m2YmJgIHYnqIY4Qo2ojl8sxadIkqKurw8/PT+g4VId9/fXX+PTTT5Geng4HBwfIZDKhIxERERGpjJycHLRt2xbFxcXYvn07i2FU7cRiMXbt2gWZTIaBAwc+87h79+7h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TMXFxSkuLu5q/pgAAPBdLgAA4JVOnz7tkuRau3btJe83btw4V0REhKtChQqurl27uuLi4s67z/Lly11t2rRxBQQEuMLDw1233XZb8edq1qzpmjVrluvOO+90VahQwXXXXXe5XC6X69tvv3V17NjRFRgY6IqJiXE98MADrqysLJfL5XJ17tzZJem8Xy6Xy/WnP/3JJcn12WefXdH32rdvX9fYsWOv6Gvg3fLy8lyPP/64q1WrVq5KlSq5goKCXA0aNHBNmzbNlZOTU3y/M2fOuO677z6XJJfNZnPVqFHDNXLkSNfRo0eL77Ns2TJXixYtXP7+/q6IiAjXwIEDiz9Xs2ZN15w5c371/P/9739dPXv2dIWEhLiCg4NdzZo1cz3zzDPFn9+4caOrWbNmroCAANe5L8klud5+++2Lfm81a9b81f9+eFkPAMCV4V0mAQDwUk6nU5UrV9b48eP13HPPKSAg4IL369mzp8qXL6+nnnpKlSpV0uuvv6758+dr//79CgsL0+eff64BAwZo6tSpGj58uAoKCrRy5Uo98cQTkn7adDl9+rSeeuop3XbbbcWP27x5c/35z39Wv379lJKSosmTJ6t58+Z6++23lZ6erubNm2vixImaMGGCJCkqKkotWrTQ9u3bNW/ePN19992X/b127NhRN9xwg1588cWr/wODT+vQoYM2bdqk9PT04uuHAQAA78VADAAAL7Zs2TJNmDBBubm5atWqlTp37qzhw4erWbNmkqT169erX79+Sk5OPm9gVq9ePT366KOaOHGibrzxRtWpU0eLFi264HPUqlVLLVu2PO+Y1/jx4+Xn53feRcrXr1+vzp07Kzs7W4GBgapVq5YeeughPfTQQ8X3+bnhgw8+uOx32vvwww9155136ocfflCTJk0u+88GONcXX3yhPn36aMqUKXrppZdM5wAAgFLGNcQAAPBigwYN0smTJ7V8+XL17t1ba9euVatWrTR//nxJ0vbt25WVlaXw8HCFhIQU/zp8+LAOHjwoSYqLi1P37t0v+jxt2rQ57/fbt2/X/Pnzz3vMXr16ybIsHT58+IKPsX79ehUUFGjKlCmXPQxbs2aNxo4dqzfffJNhGK5J7969VaFCBb333numUwAAQBlwmA4AAAClKzAwUD179lTPnj01ffp0jR8/XjNmzNCYMWOUlZWlatWqae3atb/6up+PjZUvX/6SzxEcHHze77OysjRp0iRNmTLlV/eNjY294GO89tprknTehccvZt26dbrllls0Z84cjR49+rK+BriY2267TQsXLtTmzZvVtm1b0zkAAKAUsSEGAICPady4sbKzsyVJrVq1UmJiohwOh+rVq3fer4iICElSs2bNtHr16it6jlatWmnPnj2/esx69erJ399fkuTv76+ioqLir1mzZo0qVKigmjVrXvLx165dq379+un555/XxIkTr6gN+C3PPvusJGnatGmGSwAAQGljIAYAgJdKS0tTt27dtGjRIu3YsUOHDx/WkiVL9MILL2jAgAGSpB49eqhDhw667bbb9OWXX+rIkSPasGGDpk6dqi1btkiSZsyYoffff18zZszQ3r17tXPnTj3//PMXfe7HHntMGzZs0OTJkxUXF6f4+Hh9+umn521/1apVS998841OnDiho0eP6tSpU2rbtq0aNmx43vXIfmnNmjXq16+fpkyZokGDBikxMVGJiYlKT08vgT81+LKYmBjVrl1ba9askWVZpnMAAEApYiAGAICXCgkJUfv27TVnzhzdfPPNuv766zV9+nRNmDBBr7zyiiTJZrNp5cqVuvnmmzV27FjVr19fw4cPV0JCgqpWrSpJ6tKli5YsWaLly5erRYsW6tatm/773/9e9LmbNWumdevWaf/+/erUqZNatmypp556StHR0cX3mTVrlo4cOaK6desWb4WNHj1a+/btU2Zm5m8+9oIFC5STk6PZs2erWrVqxb8GDhx4rX9kgO6//34VFhae94YQAADA+/AukwAAwLiOHTtqw4YNysvLKz5SCZjgdDpVvnx51alTR/v27TOdAwAASgkbYgAAwLht27YpNjaWYRiMczgcuummm7R//34lJyebzgEAAKWEgRgAADBq7969ysnJUc+ePU2nAJJ+Os4rSdOnTzdcAgAASgtHJgEAgFH333+/5s6dq23btqlFixamcwBJUuXKlSVJp0+fNlwCAABKAxtiAADAqC+++EKBgYEMw+BWhgwZooyMDK1bt850CgAAKAVsiAEAAGOcTqcCAgLUpk0bbdq0yXQOUCw5OVlVq1ZV586dtXbtWtM5AACghLEhBgAAjFmyZIksy9LQoUNNpwDniYyMVP369bV+/Xo5nU7TOQAAoIQxEAMAAMYsWLBAkjRx4kTDJcCvPfTQQyoqKtJLL71kOgUAAJQwjkwCAABjKleurICAACUmJppOAX7FsiwFBgYqJiZGhw4dMp0DAABKEBtiAADAiJMnTyojI0M333yz6RTggux2u7p27arDhw/r2LFjpnMAAEAJYiAGAACMePXVVyVJkyZNMlwC/LY///nPkqSpU6caLgEAACWJI5MAAMCI66+/Xvv27VNhYaHpFOCiIiIiVFBQoDNnzphOAQAAJYQNMQAAYMS+ffvUsGFD0xnAJY0cOVJnz57VqlWrTKcAAIASwkAMAACUudWrV8vpdOrWW281nQJc0p/+9CfZbDbNmjXLdAoAACghHJkEAABlbsiQIVq6dKlOnDih6Oho0znAJTVt2lR79uxRbm6u/P39TecAAIBrxIYYAAAoc998841CQ0MZhsFj/OEPf5BlWXr++edNpwAAgBLAhhgAAChTZ86cUaVKldS7d2+uyQSPYVmWgoKCVKVKFR07dsx0DgAAuEZsiAEAgDL15ptvSpLGjBljNgS4Ana7XT179tTx48d18OBB0zkAAOAasSEGAADKVPv27bVlyxbl5+fL4XCYzgEu265du9S0aVMNGTJEH374oekcAABwDRiIAQCAMlW+fHlFR0ezZQOPVK1aNZ05c0bZ2dmmUwAAwDXgyCQAACgz27ZtU15ennr37m06BbgqY8aMUU5OjpYtW2Y6BQAAXAM2xAAAQJkZP3685s2bpz179qhRo0amc4ArlpOTo5CQELVs2VJbt241nQMAAK4SAzEAAFBmatasqdTUVI6bwaO1atVKcXFx2rx5sz788EOlpKRo3rx5stlsptMAAMBl4kq2AACgTBQUFOjYsWO68cYbTacAVy0zM1Nt2rTRtm3b1KZNG0k/XRfvrbfeMlwGAACuBAMxAABQJt599125XC7dcccdplOAq7Js2TKNGDFChYWF591etWpVQ0UAAOBqcVF9AABQJhYtWiRJGjt2rOES4OpUr15ddrv9V0cjY2NjDRUBAICrxUAMAACUic2bN6tatWoKCgoynQJclRtuuEFr1qxRhQoVZLf//8voGjVqGKwCAABXg4EYAAAodQkJCTp79qy6detmOgW4JjfccIO+++47RUREFN8WFRVlsAgAAFwNriEGAABKRVJSkmbPnq3WrVtr48aNkqR77rnHcBVw7Zo0aaJNmzapZcuWysjIUGJioukkAABwhRiIAQCA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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# llm config\n", - "llm_config = {\"config_list\": config_list_gpt4, \"cache_seed\": 100}\n", - "\n", - "# Create an empty directed graph\n", - "agents = []\n", - "speaker_transitions_dict = {}\n", - "secret_values = {}\n", - "\n", - "# Outer loop for prefixes 'A', 'B', 'C'\n", - "for prefix in [\"A\", \"B\", \"C\"]:\n", - " # Add 3 nodes with each prefix to the graph using a for loop\n", - " for i in range(3):\n", - " node_id = f\"{prefix}{i}\"\n", - " secret_value = random.randint(1, 5) # Generate a random secret value\n", - " secret_values[node_id] = secret_value\n", - "\n", - " # Create an AssistantAgent for each node (assuming AssistantAgent is a defined class)\n", - " agents.append(\n", - " AssistantAgent(\n", - " name=node_id,\n", - " system_message=f\"\"\"Your name is {node_id}.\n", - " Do not respond as the speaker named in the NEXT tag if your name is not in the NEXT tag. Instead, suggest a relevant team leader to handle the mis-tag, with the NEXT: tag.\n", - "\n", - " You have {secret_value} chocolates.\n", - "\n", - " The list of players are [A0, A1, A2, B0, B1, B2, C0, C1, C2].\n", - "\n", - " Your first character of your name is your team, and your second character denotes that you are a team leader if it is 0.\n", - " CONSTRAINTS: Team members can only talk within the team, whilst team leader can talk to team leaders of other teams but not team members of other teams.\n", - "\n", - " You can use NEXT: to suggest the next speaker. You have to respect the CONSTRAINTS, and can only suggest one player from the list of players, i.e., do not suggest A3 because A3 is not from the list of players.\n", - " Team leaders must make sure that they know the sum of the individual chocolate count of all three players in their own team, i.e., A0 is responsible for team A only.\n", - "\n", - " Keep track of the player's tally using a JSON format so that others can check the total tally. Use\n", - " A0:?, A1:?, A2:?,\n", - " B0:?, B1:?, B2:?,\n", - " C0:?, C1:?, C2:?\n", - "\n", - " If you are the team leader, you should aggregate your team's total chocolate count to cooperate.\n", - " Once the team leader know their team's tally, they can suggest another team leader for them to find their team tally, because we need all three team tallys to succeed.\n", - " Use NEXT: to suggest the next speaker, e.g., NEXT: A0.\n", - "\n", - " Once we have the total tally from all nine players, sum up all three teams' tally, then terminate the discussion using TERMINATE.\n", - "\n", - " \"\"\",\n", - " llm_config=llm_config,\n", - " )\n", - " )\n", - " speaker_transitions_dict[agents[-1]] = []\n", - "\n", - " # Add edges between nodes with the same prefix using a nested for loop\n", - " for source_node in range(3):\n", - " source_id = f\"{prefix}{source_node}\"\n", - " for target_node in range(3):\n", - " target_id = f\"{prefix}{target_node}\"\n", - " if source_node != target_node: # To avoid self-loops\n", - " speaker_transitions_dict[get_agent_of_name(agents, source_id)].append(\n", - " get_agent_of_name(agents, name=target_id)\n", - " )\n", - "\n", - "\n", - "# Adding edges between teams\n", - "speaker_transitions_dict[get_agent_of_name(agents, \"A0\")].append(get_agent_of_name(agents, name=\"B0\"))\n", - "speaker_transitions_dict[get_agent_of_name(agents, \"A0\")].append(get_agent_of_name(agents, name=\"C0\"))\n", - "speaker_transitions_dict[get_agent_of_name(agents, \"B0\")].append(get_agent_of_name(agents, name=\"A0\"))\n", - "speaker_transitions_dict[get_agent_of_name(agents, \"B0\")].append(get_agent_of_name(agents, name=\"C0\"))\n", - "speaker_transitions_dict[get_agent_of_name(agents, \"C0\")].append(get_agent_of_name(agents, name=\"A0\"))\n", - "speaker_transitions_dict[get_agent_of_name(agents, \"C0\")].append(get_agent_of_name(agents, name=\"B0\"))\n", - "\n", - "\n", - "# Visualization only\n", - "\n", - "graph = nx.DiGraph()\n", - "\n", - "# Add nodes\n", - "graph.add_nodes_from([agent.name for agent in agents])\n", - "\n", - "# Add edges\n", - "for key, value in speaker_transitions_dict.items():\n", - " for agent in value:\n", - " graph.add_edge(key.name, agent.name)\n", - "\n", - "# Visualize\n", - "\n", - "\n", - "# Draw the graph with secret values annotated\n", - "plt.figure(figsize=(12, 10))\n", - "pos = nx.spring_layout(graph) # positions for all nodes\n", - "\n", - "# Draw nodes with their colors\n", - "nx.draw(graph, pos, with_labels=True, font_weight=\"bold\")\n", - "\n", - "# Annotate secret values\n", - "for node, (x, y) in pos.items():\n", - " secret_value = secret_values[node]\n", - " plt.text(x, y + 0.1, s=f\"Secret: {secret_value}\", horizontalalignment=\"center\")\n", - "\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [], - "source": [ - "# Termination message detection\n", - "\n", - "\n", - "def is_termination_msg(content) -> bool:\n", - " have_content = content.get(\"content\", None) is not None\n", - " if have_content and \"TERMINATE\" in content[\"content\"]:\n", - " return True\n", - " return False\n", - "\n", - "\n", - "# Terminates the conversation when TERMINATE is detected.\n", - "user_proxy = autogen.UserProxyAgent(\n", - " name=\"User_proxy\",\n", - " system_message=\"Terminator admin.\",\n", - " code_execution_config=False,\n", - " is_termination_msg=is_termination_msg,\n", - " human_input_mode=\"NEVER\",\n", - ")\n", - "\n", - "agents.append(user_proxy)" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "WARNING:root:Warning: There are agents in self.agents not in graph.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\u001b[33mA0\u001b[0m (to chat_manager):\n", - "\n", - "\n", - " There are 9 players in this game, split equally into Teams A, B, C. Therefore each team has 3 players, including the team leader.\n", - " The task is to find out the sum of chocolate count from all nine players. I will now start with my team.\n", - " NEXT: A1\n", - "\n", - "--------------------------------------------------------------------------------\n", - "\u001b[33mA1\u001b[0m (to chat_manager):\n", - "\n", - "Sure, I, A1, have 3 chocolates. NEXT: A2\n", - "\n", - "--------------------------------------------------------------------------------\n", - "\u001b[33mA2\u001b[0m (to chat_manager):\n", - "\n", - "As A2, I have 5 chocolates.\n", - "\n", - "So currently our tally is:\n", - "A0:?, A1:3, A2:5, B0:?, B1:?, B2:?, C0:?, C1:?, C2:?\n", - " \n", - "NEXT: A0\n", - "\n", - "--------------------------------------------------------------------------------\n", - "\u001b[33mA0\u001b[0m (to chat_manager):\n", - "\n", - "Okay, as A0, I have 1 chocolate.\n", - "\n", - "Therefore, total chocolate count of team A is: \n", - "1 (A0's chocolates) + 3 (A1's chocolates) + 5 (A2's chocolates) = 9 chocolates \n", - "\n", - "The running tally is:\n", - "A0:1, A1:3, A2:5, \n", - "B0:?, B1:?, B2:?, \n", - "C0:?, C1:?, C2:?\n", - "\n", - "I suggest we move on to the next team. \n", - "\n", - "NEXT: B0\n", - "\n", - "--------------------------------------------------------------------------------\n", - "\u001b[33mB0\u001b[0m (to chat_manager):\n", - "\n", - "As B0, I need to gather the count from my team members. \n", - "\n", - "NEXT: B1\n", - "\n", - "--------------------------------------------------------------------------------\n", - "\u001b[33mB1\u001b[0m (to chat_manager):\n", - "\n", - "As B1, I have 1 chocolate. \n", - "\n", - "NEXT: B2\n", - "\n", - "--------------------------------------------------------------------------------\n", - "\u001b[33mB2\u001b[0m (to chat_manager):\n", - "\n", - "As B2, I have 4 chocolates. \n", - "\n", - "So currently, our team B tally is:\n", - "B0:?, B1:1, B2:4 \n", - "\n", - "NEXT: B0\n", - "\n", - "--------------------------------------------------------------------------------\n", - "\u001b[33mB0\u001b[0m (to chat_manager):\n", - "\n", - "As B0, I have 1 chocolate. So, the total chocolate count for team B is:\n", - "1 (B0's chocolates) + 1 (B1's chocolates) + 4 (B2's chocolates) = 6 chocolates.\n", - "\n", - "The updated tally is:\n", - "A0:1, A1:3, A2:5, \n", - "B0:1, B1:1, B2:4, \n", - "C0:?, C1:?, C2:?\n", - "\n", - "I suggest we move on to the next team.\n", - "\n", - "NEXT: C0\n", - "\n", - "--------------------------------------------------------------------------------\n", - "\u001b[33mC0\u001b[0m (to chat_manager):\n", - "\n", - "As C0, I will now gather the count from my team members. \n", - "\n", - "NEXT: C1\n", - "\n", - "--------------------------------------------------------------------------------\n", - "\u001b[33mC1\u001b[0m (to chat_manager):\n", - "\n", - "As C1, I have 2 chocolates.\n", - "\n", - "NEXT: C2\n", - "\n", - "--------------------------------------------------------------------------------\n", - "\u001b[33mC2\u001b[0m (to chat_manager):\n", - "\n", - "As C2, I have 1 chocolate.\n", - "\n", - "So currently, our team C tally is:\n", - "C0:?, C1:2, C2:1\n", - "\n", - "NEXT: C0\n", - "\n", - "--------------------------------------------------------------------------------\n", - "\u001b[33mC0\u001b[0m (to chat_manager):\n", - "\n", - "As C0, I'm the team leader and I have 1 chocolate. So, the total chocolate count for team C is:\n", - "1 (C0's chocolates) + 2 (C1's chocolates) + 1 (C2's chocolates) = 4 chocolates.\n", - "\n", - "The final tally is:\n", - "A0:1, A1:3, A2:5, \n", - "B0:1, B1:1, B2:4, \n", - "C0:1, C1:2, C2:1\n", - "\n", - "Now, the sum of chocolates from all nine players is:\n", - "9 (team A's chocolates) + 6 (team B's chocolates) + 4 (team C's chocolates) = 19 chocolates.\n", - "\n", - "TERMINATE.\n", - "\n", - "\n", - "--------------------------------------------------------------------------------\n" - ] - } - ], - "source": [ - "group_chat = GroupChat(\n", - " agents=agents,\n", - " messages=[],\n", - " max_round=20,\n", - " allowed_or_disallowed_speaker_transitions=speaker_transitions_dict,\n", - " speaker_transitions_type=\"allowed\",\n", - ")\n", - "\n", - "\n", - "# Create the manager\n", - "manager = autogen.GroupChatManager(\n", - " groupchat=group_chat, llm_config=llm_config, code_execution_config=False, is_termination_msg=is_termination_msg\n", - ")\n", - "\n", - "\n", - "# Initiates the chat with Alice\n", - "agents[0].initiate_chat(\n", - " manager,\n", - " message=\"\"\"\n", - " There are 9 players in this game, split equally into Teams A, B, C. Therefore each team has 3 players, including the team leader.\n", - " The task is to find out the sum of chocolate count from all nine players. I will now start with my team.\n", - " NEXT: A1\"\"\",\n", - ")" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.11.7" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} diff --git a/notebook/agentchat_groupchat.ipynb b/notebook/agentchat_groupchat.ipynb index 058b687b3dbe..d2c061d14105 100644 --- a/notebook/agentchat_groupchat.ipynb +++ b/notebook/agentchat_groupchat.ipynb @@ -5,12 +5,6 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "\n", - "\n", "# Group Chat\n", "\n", "AutoGen offers conversable agents powered by LLM, tool or human, which can be used to perform tasks collectively via automated chat. This framework allows tool use and human participation through multi-agent conversation.\n", @@ -63,7 +57,7 @@ "source": [ "````{=mdx}\n", ":::tip\n", - "Learn more about configuring LLMs for agents [here](/docs/llm_configuration).\n", + "Learn more about configuring LLMs for agents [here](/docs/topics/llm_configuration).\n", ":::\n", "````\n", "\n", @@ -223,6 +217,10 @@ } ], "metadata": { + "front_matter": { + "tags": ["orchestration", "group chat"], + "description": "Explore the utilization of large language models in automated group chat scenarios, where agents perform tasks collectively, demonstrating how they can be configured, interact with each other, and retrieve specific information from external resources." + }, "kernelspec": { "display_name": "flaml", "language": "python", diff --git a/notebook/agentchat_groupchat_RAG.ipynb b/notebook/agentchat_groupchat_RAG.ipynb index 6e06a0ec23a4..27b5d2abbe21 100644 --- a/notebook/agentchat_groupchat_RAG.ipynb +++ b/notebook/agentchat_groupchat_RAG.ipynb @@ -1,17 +1,5 @@ { "cells": [ - { - "attachments": {}, - "cell_type": "markdown", - "metadata": {}, - "source": [ - "" - ] - }, { "attachments": {}, "cell_type": "markdown", @@ -47,14 +35,14 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "LLM models: ['gpt-35-turbo', 'gpt-35-turbo-0613']\n" + "LLM models: ['gpt-4-1106-preview', 'gpt-4-turbo-preview', 'gpt-4-0613', 'gpt-35-turbo-0613', 'gpt-35-turbo-1106']\n" ] } ], @@ -78,7 +66,7 @@ "source": [ "````{=mdx}\n", ":::tip\n", - "Learn more about configuring LLMs for agents [here](/docs/llm_configuration).\n", + "Learn more about configuring LLMs for agents [here](/docs/topics/llm_configuration).\n", ":::\n", "````\n", "\n", @@ -87,7 +75,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -174,6 +162,7 @@ " # Start chatting with boss_aid as this is the user proxy agent.\n", " boss_aid.initiate_chat(\n", " manager,\n", + " message=boss_aid.message_generator,\n", " problem=PROBLEM,\n", " n_results=3,\n", " )\n", @@ -218,7 +207,8 @@ " boss_aid.problem = message if not hasattr(boss_aid, \"problem\") else boss_aid.problem\n", " _, ret_msg = boss_aid._generate_retrieve_user_reply(message)\n", " else:\n", - " ret_msg = boss_aid.generate_init_message(message, n_results=n_results)\n", + " _context = {\"problem\": message, \"n_results\": n_results}\n", + " ret_msg = boss_aid.message_generator(boss_aid, None, _context)\n", " return ret_msg if ret_msg else message\n", "\n", " boss_aid.human_input_mode = \"NEVER\" # Disable human input for boss_aid since it only retrieves content.\n", @@ -261,7 +251,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 3, "metadata": {}, "outputs": [ { @@ -281,110 +271,49 @@ "text": [ "\u001b[33mSenior_Python_Engineer\u001b[0m (to chat_manager):\n", "\n", - "To use Spark for parallel training in FLAML, you need to set up a Spark cluster and configure FLAML to use Spark as the backend. Here's a sample code to demonstrate how to use Spark for parallel training in FLAML:\n", + "To use Apache Spark for parallel training in FLAML, you need to use the `flaml.tune.run` function. Here is a sample code:\n", "\n", "```python\n", - "from flaml import AutoML\n", - "from pyspark.sql import SparkSession\n", - "\n", - "# Create a Spark session\n", - "spark = SparkSession.builder \\\n", - " .appName(\"FLAML with Spark\") \\\n", - " .getOrCreate()\n", + "from flaml import tune\n", "\n", - "# Load your data into a Spark DataFrame\n", - "data = spark.read.format(\"csv\").option(\"header\", \"true\").load(\"your_data.csv\")\n", + "# Define your training function\n", + "def training_function(config):\n", + " # your training code here\n", + " pass\n", "\n", - "# Initialize FLAML with Spark backend\n", - "automl = AutoML()\n", - "automl.initialize(spark=spark)\n", - "\n", - "# Specify the search space and other settings\n", - "settings = {\n", - " \"time_budget\": 60, # total time in seconds\n", - " \"metric\": 'accuracy',\n", - " \"task\": 'classification',\n", - " \"log_file_name\": 'flaml.log',\n", + "# Define your search space\n", + "search_space = {\n", + " \"lr\": tune.loguniform(1e-4, 1e-1),\n", + " \"momentum\": tune.uniform(0.1, 0.9),\n", "}\n", "\n", - "# Train and tune the model using FLAML\n", - "automl.fit(data=data, **settings)\n", + "# Use SparkTrials for parallelization\n", + "from ray.tune import SparkTrials\n", "\n", - "# Get the best model and its hyperparameters\n", - "best_model = automl.best_model\n", - "best_config = automl.best_config\n", + "spark_trials = SparkTrials(parallelism=2)\n", "\n", - "# Print the best model and its hyperparameters\n", - "print(\"Best model:\", best_model)\n", - "print(\"Best hyperparameters:\", best_config)\n", - "\n", - "# Terminate the Spark session\n", - "spark.stop()\n", - "```\n", - "\n", - "Make sure to replace `\"your_data.csv\"` with the path to your actual data file. Adjust the `settings` dictionary according to your requirements.\n", - "\n", - "This code initializes a Spark session, loads the data into a Spark DataFrame, and then uses FLAML's `AutoML` class to train and tune a model in parallel using Spark. Finally, it prints the best model and its hyperparameters.\n", - "\n", - "Remember to install FLAML and PySpark before running this code.\n", - "\n", - "--------------------------------------------------------------------------------\n", - "To use Spark for parallel training in FLAML, you need to set up a Spark cluster and configure FLAML to use Spark as the backend. Here's a sample code to demonstrate how to use Spark for parallel training in FLAML:\n", - "\n", - "```python\n", - "from flaml import AutoML\n", - "from pyspark.sql import SparkSession\n", - "\n", - "# Create a Spark session\n", - "spark = SparkSession.builder \\\n", - " .appName(\"FLAML with Spark\") \\\n", - " .getOrCreate()\n", - "\n", - "# Load your data into a Spark DataFrame\n", - "data = spark.read.format(\"csv\").option(\"header\", \"true\").load(\"your_data.csv\")\n", - "\n", - "# Initialize FLAML with Spark backend\n", - "automl = AutoML()\n", - "automl.initialize(spark=spark)\n", - "\n", - "# Specify the search space and other settings\n", - "settings = {\n", - " \"time_budget\": 60, # total time in seconds\n", - " \"metric\": 'accuracy',\n", - " \"task\": 'classification',\n", - " \"log_file_name\": 'flaml.log',\n", - "}\n", - "\n", - "# Train and tune the model using FLAML\n", - "automl.fit(data=data, **settings)\n", - "\n", - "# Get the best model and its hyperparameters\n", - "best_model = automl.best_model\n", - "best_config = automl.best_config\n", + "analysis = tune.run(\n", + " training_function,\n", + " config=search_space,\n", + " num_samples=10,\n", + " scheduler=tune.schedulers.FIFOScheduler(),\n", + " progress_reporter=tune.JupyterNotebookReporter(overwrite=True),\n", + " trial_executor=spark_trials,\n", + ")\n", "\n", - "# Print the best model and its hyperparameters\n", - "print(\"Best model:\", best_model)\n", - "print(\"Best hyperparameters:\", best_config)\n", + "print(\"Best config: \", analysis.get_best_config(metric=\"accuracy\", mode=\"max\"))\n", "\n", - "# Terminate the Spark session\n", - "spark.stop()\n", + "# Get a dataframe for analyzing trial results.\n", + "df = analysis.results_df\n", "```\n", "\n", - "Make sure to replace `\"your_data.csv\"` with the path to your actual data file. Adjust the `settings` dictionary according to your requirements.\n", + "In this code, `training_function` is your training function, which should take a `config` argument. This `config` argument is a dictionary that includes hyperparameters for your model. The `search_space` is a dictionary that defines the search space for your hyperparameters.\n", "\n", - "This code initializes a Spark session, loads the data into a Spark DataFrame, and then uses FLAML's `AutoML` class to train and tune a model in parallel using Spark. Finally, it prints the best model and its hyperparameters.\n", + "The `tune.run` function is used to start the hyperparameter tuning. The `config` argument is your search space, `num_samples` is the number of times to sample from the search space, and `scheduler` is the scheduler for the trials. The `trial_executor` argument is set to `spark_trials` to use Spark for parallelization.\n", "\n", - "Remember to install FLAML and PySpark before running this code.\n", + "The `analysis.get_best_config` function is used to get the best hyperparameters found during the tuning. The `analysis.results_df` gives a dataframe that contains the results of all trials.\n", "\n", - "--------------------------------------------------------------------------------\n", - "\u001b[33mCode_Reviewer\u001b[0m (to chat_manager):\n", - "\n", - "Looks good to me! The code demonstrates how to use Spark for parallel training in FLAML. It initializes a Spark session, loads the data into a Spark DataFrame, and then uses FLAML's `AutoML` class to train and tune a model in parallel using Spark. Finally, it prints the best model and its hyperparameters. Just make sure to replace `\"your_data.csv\"` with the actual path to the data file and adjust the `settings` dictionary as needed. \n", - "\n", - "If there are no further questions, I will terminate.\n", - "\n", - "--------------------------------------------------------------------------------\n", - "\u001b[33mProduct_Manager\u001b[0m (to chat_manager):\n", + "Please note that you need to have Apache Spark and Ray installed and properly configured in your environment to run this code.\n", "\n", "TERMINATE\n", "\n", @@ -1120,6 +1049,14 @@ } ], "metadata": { + "front_matter": { + "description": "Implement and manage a multi-agent chat system using AutoGen, where AI assistants retrieve information, generate code, and interact collaboratively to solve complex tasks, especially in areas not covered by their training data.", + "tags": [ + "group chat", + "orchestration", + "RAG" + ] + }, "kernelspec": { "display_name": "flaml", "language": "python", diff --git a/notebook/agentchat_groupchat_customized.ipynb b/notebook/agentchat_groupchat_customized.ipynb new file mode 100644 index 000000000000..253a0ec939b9 --- /dev/null +++ b/notebook/agentchat_groupchat_customized.ipynb @@ -0,0 +1,474 @@ +{ + "cells": [ + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Group Chat with Customized Speaker Selection Method\n", + "\n", + "AutoGen offers conversable agents powered by LLM, tool or human, which can be used to perform tasks collectively via automated chat. This framework allows tool use and human participation through multi-agent conversation.\n", + "Please find documentation about this feature [here](https://microsoft.github.io/autogen/docs/Use-Cases/agent_chat).\n", + "\n", + "In this notebook, we demonstrate how to pass a cumstomized agent selection method to GroupChat. The customized function looks like this:\n", + "\n", + "```python\n", + "def custom_speaker_selection_func(last_speaker, groupchat):\n", + " \"\"\"Define a customized speaker selection function.\n", + " A recommended way is to define a transition for each speaker in the groupchat.\n", + "\n", + " Parameters:\n", + " - last_speaker: Agent\n", + " The last speaker in the group chat.\n", + " - groupchat: GroupChat\n", + " The GroupChat object\n", + " Return:\n", + " Return one of the following:\n", + " 1. an `Agent` class, it must be one of the agents in the group chat.\n", + " 2. a string from ['auto', 'manual', 'random', 'round_robin'] to select a default method to use.\n", + " 3. None, which indicates the chat should be terminated.\n", + " \"\"\"\n", + " pass\n", + "\n", + "groupchat = autogen.GroupChat(\n", + " speaker_selection_method=custom_speaker_selection_func,\n", + " ...,\n", + ")\n", + "```\n", + "The last speaker and the groupchat object are passed to the function. Commonly used variables from groupchat are `groupchat.messages` an `groupchat.agents`, which is the message history and the agents in the group chat respectively. You can access other attributes of the groupchat, such as `groupchat.allowed_speaker_transitions_dict` for pre-defined allowed_speaker_transitions_dict. \n", + "\n", + "````{=mdx}\n", + ":::info Requirements\n", + "Install `pyautogen`:\n", + "```bash\n", + "pip install pyautogen\n", + "```\n", + "\n", + "For more information, please refer to the [installation guide](/docs/installation/).\n", + ":::\n", + "````" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Set your API Endpoint\n", + "\n", + "The [`config_list_from_json`](https://microsoft.github.io/autogen/docs/reference/oai/openai_utils#config_list_from_json) function loads a list of configurations from an environment variable or a json file." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import autogen\n", + "\n", + "config_list = autogen.config_list_from_json(\n", + " \"OAI_CONFIG_LIST\",\n", + " filter_dict={\n", + " \"model\": [\"gpt-4\", \"gpt-4-1106-preview\"],\n", + " },\n", + ")" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "````{=mdx}\n", + ":::tip\n", + "Learn more about configuring LLMs for agents [here](/docs/topics/llm_configuration).\n", + ":::\n", + "````\n", + "\n", + "## Construct Agents\n", + "\n", + "- Planner: Give a plan and revise.\n", + "- Admin: Human in the loop to approve or terminate the process.\n", + "- Engineer: Retrieve papers from the internet by writing code.\n", + "- Executor: Execute the code.\n", + "- Scientist: Read the papers and write a summary.\n", + "\n", + "The pipeline is the following:\n", + "\n", + "1. The planner interact with Admin (user) to revise a plan. Only when the Admin types \"Approve\", we can move to the next step.\n", + "2. The engineer will write code to retrieve papers from the internet. The code will be executed by executor.\n", + "3. When the code is executed successfully, the scientist will read the papers and write a summary.\n", + "4. The summary will be reviewed by the Admin and give comments. When the Admin types \"TERMINATE\", the process will be terminated.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "gpt4_config = {\n", + " \"cache_seed\": 42, # change the cache_seed for different trials\n", + " \"temperature\": 0,\n", + " \"config_list\": config_list,\n", + " \"timeout\": 120,\n", + "}\n", + "\n", + "planner = autogen.AssistantAgent(\n", + " name=\"Planner\",\n", + " system_message=\"\"\"Planner. Suggest a plan. Revise the plan based on feedback from admin and critic, until admin approval.\n", + "The plan may involve an engineer who can write code and a scientist who doesn't write code.\n", + "Explain the plan first. Be clear which step is performed by an engineer, and which step is performed by a scientist.\n", + "\"\"\",\n", + " llm_config=gpt4_config,\n", + ")\n", + "\n", + "user_proxy = autogen.UserProxyAgent(\n", + " name=\"Admin\",\n", + " system_message=\"A human admin. Interact with the planner to discuss the plan. Plan execution needs to be approved by this admin.\",\n", + " code_execution_config=False,\n", + ")\n", + "\n", + "engineer = autogen.AssistantAgent(\n", + " name=\"Engineer\",\n", + " llm_config=gpt4_config,\n", + " system_message=\"\"\"Engineer. You follow an approved plan. You write python/shell code to solve tasks. Wrap the code in a code block that specifies the script type. The user can't modify your code. So do not suggest incomplete code which requires others to modify. Don't use a code block if it's not intended to be executed by the executor.\n", + "Don't include multiple code blocks in one response. Do not ask others to copy and paste the result. Check the execution result returned by the executor.\n", + "If the result indicates there is an error, fix the error and output the code again. Suggest the full code instead of partial code or code changes. If the error can't be fixed or if the task is not solved even after the code is executed successfully, analyze the problem, revisit your assumption, collect additional info you need, and think of a different approach to try.\n", + "\"\"\",\n", + ")\n", + "scientist = autogen.AssistantAgent(\n", + " name=\"Scientist\",\n", + " llm_config=gpt4_config,\n", + " system_message=\"\"\"Scientist. You follow an approved plan. You are able to categorize papers after seeing their abstracts printed. You don't write code.\"\"\",\n", + ")\n", + "\n", + "executor = autogen.UserProxyAgent(\n", + " name=\"Executor\",\n", + " system_message=\"Executor. Execute the code written by the engineer and report the result.\",\n", + " human_input_mode=\"NEVER\",\n", + " code_execution_config={\n", + " \"last_n_messages\": 3,\n", + " \"work_dir\": \"paper\",\n", + " \"use_docker\": False,\n", + " }, # Please set use_docker=True if docker is available to run the generated code. Using docker is safer than running the generated code directly.\n", + ")\n", + "\n", + "from autogen import Agent\n", + "from typing import List, Dict\n", + "\n", + "\n", + "def custom_speaker_selection_func(last_speaker: Agent, groupchat: autogen.GroupChat):\n", + " \"\"\"Define a customized speaker selection function.\n", + " A recommended way is to define a transition for each speaker in the groupchat.\n", + "\n", + " Returns:\n", + " Return an `Agent` class or a string from ['auto', 'manual', 'random', 'round_robin'] to select a default method to use.\n", + " \"\"\"\n", + " messages = groupchat.messages\n", + "\n", + " if len(messages) <= 1:\n", + " return planner\n", + "\n", + " if last_speaker is user_proxy:\n", + " if \"Approve\" in messages[-1][\"content\"]:\n", + " # If the last message is approved, let the engineer to speak\n", + " return engineer\n", + " elif messages[-2][\"name\"] == \"Planner\":\n", + " # If it is the planning stage, let the planner to continue\n", + " return planner\n", + " elif messages[-2][\"name\"] == \"Scientist\":\n", + " # If the last message is from the scientist, let the scientist to continue\n", + " return scientist\n", + "\n", + " elif last_speaker is planner:\n", + " # Always let the user to speak after the planner\n", + " return user_proxy\n", + "\n", + " elif last_speaker is engineer:\n", + " if \"```python\" in messages[-1][\"content\"]:\n", + " # If the last message is a python code block, let the executor to speak\n", + " return executor\n", + " else:\n", + " # Otherwise, let the engineer to continue\n", + " return engineer\n", + "\n", + " elif last_speaker is executor:\n", + " if \"exitcode: 1\" in messages[-1][\"content\"]:\n", + " # If the last message indicates an error, let the engineer to improve the code\n", + " return engineer\n", + " else:\n", + " # Otherwise, let the scientist to speak\n", + " return scientist\n", + "\n", + " elif last_speaker is scientist:\n", + " # Always let the user to speak after the scientist\n", + " return user_proxy\n", + "\n", + " else:\n", + " return \"random\"\n", + "\n", + "\n", + "groupchat = autogen.GroupChat(\n", + " agents=[user_proxy, engineer, scientist, planner, executor],\n", + " messages=[],\n", + " max_round=20,\n", + " speaker_selection_method=custom_speaker_selection_func,\n", + ")\n", + "manager = autogen.GroupChatManager(groupchat=groupchat, llm_config=gpt4_config)" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Start Chat" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[33mAdmin\u001b[0m (to chat_manager):\n", + "\n", + "Find a latest paper about gpt-4 on arxiv and find its potential applications in software.\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33mPlanner\u001b[0m (to chat_manager):\n", + "\n", + "**Initial Plan:**\n", + "\n", + "1. **Scientist's Task: Literature Review**\n", + " - The scientist will conduct a comprehensive literature review to find the latest paper about GPT-4 on arXiv. This involves using search queries related to GPT-4 and filtering results by the most recent publications.\n", + "\n", + "2. **Scientist's Task: Analysis of the Paper**\n", + " - Once the latest paper is identified, the scientist will read through the paper to understand its contents, focusing on the methodology, results, and discussions about potential applications in software.\n", + "\n", + "3. **Scientist's Task: Identifying Potential Applications**\n", + " - The scientist will then brainstorm and list potential applications of GPT-4 in software, based on the findings from the paper. This may include applications in natural language processing, code generation, chatbots, and more.\n", + "\n", + "4. **Engineer's Task: Technical Feasibility Assessment**\n", + " - The engineer will review the list of potential applications provided by the scientist and assess the technical feasibility of each application. This involves considering the current state of software technology, the capabilities of GPT-4, and the practicality of integrating GPT-4 into existing systems.\n", + "\n", + "5. **Engineer's Task: Prototype Development Plan**\n", + " - For applications deemed technically feasible, the engineer will draft a plan for developing a prototype that demonstrates the use of GPT-4 in a software application. This plan will outline the required resources, estimated timeline, and the steps for implementation.\n", + "\n", + "6. **Joint Task: Finalizing the Plan**\n", + " - The scientist and engineer will collaborate to finalize the plan, ensuring that it is scientifically sound and technically viable. They will prepare a document detailing the plan for potential applications and the prototype development.\n", + "\n", + "7. **Presentation to Admin**\n", + " - The finalized plan will be presented to the admin for approval. The admin will review the plan and provide feedback.\n", + "\n", + "8. **Revisions Based on Feedback**\n", + " - Based on the admin's feedback, the scientist and engineer will make necessary revisions to the plan. This iterative process will continue until the admin approves the plan.\n", + "\n", + "**Awaiting Admin's Feedback:** Please review the initial plan and provide feedback on any adjustments or additional details you would like to see.\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33mAdmin\u001b[0m (to chat_manager):\n", + "\n", + "Approve\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33mEngineer\u001b[0m (to chat_manager):\n", + "\n", + "Since the plan has been approved, I will now proceed with the first step, which is to find the latest paper about GPT-4 on arXiv. To do this, I will write a Python script that uses the arXiv API to search for papers related to GPT-4 and filter them by the most recent publications.\n", + "\n", + "Here is the Python script that accomplishes this task:\n", + "\n", + "```python\n", + "import requests\n", + "from datetime import datetime\n", + "\n", + "# Define the URL for the arXiv API\n", + "ARXIV_API_URL = \"http://export.arxiv.org/api/query\"\n", + "\n", + "# Define the search parameters\n", + "search_query = \"all:gpt-4\"\n", + "start = 0\n", + "max_results = 1\n", + "sort_by = \"submittedDate\"\n", + "sort_order = \"descending\"\n", + "\n", + "# Construct the query\n", + "query_params = {\n", + " \"search_query\": search_query,\n", + " \"start\": start,\n", + " \"max_results\": max_results,\n", + " \"sortBy\": sort_by,\n", + " \"sortOrder\": sort_order\n", + "}\n", + "\n", + "# Send the request to the arXiv API\n", + "response = requests.get(ARXIV_API_URL, params=query_params)\n", + "\n", + "# Check if the request was successful\n", + "if response.status_code == 200:\n", + " # Parse the response\n", + " feed = response.text\n", + " # Find the entry element, which contains the paper information\n", + " start_entry = feed.find('')\n", + " end_entry = feed.find('')\n", + " entry = feed[start_entry:end_entry]\n", + " \n", + " # Extract the title\n", + " start_title = entry.find('') + 7\n", + " end_title = entry.find('')\n", + " title = entry[start_title:end_title].strip()\n", + " \n", + " # Extract the published date\n", + " start_published = entry.find('') + 12\n", + " end_published = entry.find('')\n", + " published = entry[start_published:end_published].strip()\n", + " \n", + " # Extract the summary\n", + " start_summary = entry.find('') + 9\n", + " end_summary = entry.find('')\n", + " summary = entry[start_summary:end_summary].strip()\n", + " \n", + " # Extract the authors\n", + " authors = []\n", + " start_author = entry.find('')\n", + " end_author = entry.find('')\n", + " while start_author != -1 and end_author != -1:\n", + " start_name = entry.find('', start_author) + 6\n", + " end_name = entry.find('', start_author)\n", + " author_name = entry[start_name:end_name].strip()\n", + " authors.append(author_name)\n", + " start_author = entry.find('', end_author)\n", + " end_author = entry.find('', start_author)\n", + " \n", + " # Print the results\n", + " print(f\"Title: {title}\")\n", + " print(f\"Published Date: {published}\")\n", + " print(f\"Authors: {', '.join(authors)}\")\n", + " print(f\"Summary: {summary}\")\n", + "else:\n", + " print(\"Failed to retrieve data from arXiv API.\")\n", + "```\n", + "\n", + "This script will output the title, published date, authors, and summary of the most recent paper related to GPT-4 on arXiv. Please note that the actual content of the paper and its potential applications in software will need to be analyzed manually after retrieving the paper information.\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[31m\n", + ">>>>>>>> EXECUTING CODE BLOCK 0 (inferred language is python)...\u001b[0m\n", + "\u001b[33mExecutor\u001b[0m (to chat_manager):\n", + "\n", + "exitcode: 0 (execution succeeded)\n", + "Code output: \n", + "Title: A Data-Centric Approach To Generate Faithful and High Quality Patient\n", + " Summaries with Large Language Models\n", + "Published Date: 024-02-23T16:32:28Z\n", + "Authors: Stefan Hegselmann, Shannon Zejiang Shen, Florian Gierse, Monica Agrawal, David Sontag, Xiaoyi Jiang\n", + "Summary: Patients often face difficulties in understanding their hospitalizations,\n", + "while healthcare workers have limited resources to provide explanations. In\n", + "this work, we investigate the potential of large language models to generate\n", + "patient summaries based on doctors' notes and study the effect of training data\n", + "on the faithfulness and quality of the generated summaries. To this end, we\n", + "develop a rigorous labeling protocol for hallucinations, and have two medical\n", + "experts annotate 100 real-world summaries and 100 generated summaries. We show\n", + "that fine-tuning on hallucination-free data effectively reduces hallucinations\n", + "from 2.60 to 1.55 per summary for Llama 2, while preserving relevant\n", + "information. Although the effect is still present, it is much smaller for GPT-4\n", + "when prompted with five examples (0.70 to 0.40). We also conduct a qualitative\n", + "evaluation using hallucination-free and improved training data. GPT-4 shows\n", + "very good results even in the zero-shot setting. We find that common\n", + "quantitative metrics do not correlate well with faithfulness and quality.\n", + "Finally, we test GPT-4 for automatic hallucination detection, which yields\n", + "promising results.\n", + "\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33mScientist\u001b[0m (to chat_manager):\n", + "\n", + "Based on the abstract provided, the paper titled \"A Data-Centric Approach To Generate Faithful and High Quality Patient Summaries with Large Language Models\" explores the use of large language models, including GPT-4, to generate patient summaries from doctors' notes. The study focuses on the impact of training data on the faithfulness and quality of the generated summaries and also investigates the potential of GPT-4 for automatic hallucination detection.\n", + "\n", + "**Potential Applications in Software:**\n", + "\n", + "1. **Healthcare Documentation Automation:**\n", + " - GPT-4 could be used to develop software that assists healthcare professionals in creating accurate and comprehensive patient summaries by automatically processing doctors' notes and other medical records.\n", + "\n", + "2. **Clinical Decision Support Systems:**\n", + " - Integrating GPT-4 into clinical decision support systems could provide healthcare workers with insights and suggestions based on a patient's medical history, potentially improving diagnosis and treatment planning.\n", + "\n", + "3. **Patient Education and Communication:**\n", + " - Software applications could leverage GPT-4 to translate complex medical information into patient-friendly summaries, enhancing patient understanding of their health conditions and treatments.\n", + "\n", + "4. **Medical Training and Simulation:**\n", + " - GPT-4 could be used to create realistic medical scenarios for training medical students and professionals, simulating patient interactions and generating case studies.\n", + "\n", + "5. **Data Quality Assurance:**\n", + " - The paper suggests that GPT-4 can be used for automatic hallucination detection, which refers to the identification of inaccuracies or fabrications in generated text. This could be applied to software that ensures the quality and reliability of medical documentation.\n", + "\n", + "6. **Research and Development:**\n", + " - GPT-4 could assist researchers in summarizing and synthesizing large volumes of medical literature, aiding in the discovery of new insights and the development of novel treatments.\n", + "\n", + "7. **Personalized Health Monitoring:**\n", + " - Software applications could use GPT-4 to provide personalized health monitoring and advice by analyzing user input, such as symptoms or lifestyle factors, and generating tailored health recommendations.\n", + "\n", + "These potential applications highlight the versatility of GPT-4 in the realm of healthcare software, offering opportunities to enhance patient care, improve healthcare workflows, and support medical education and research.\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33mAdmin\u001b[0m (to chat_manager):\n", + "\n", + "TERMINATE\n", + "\n", + "--------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/plain": [ + "ChatResult(chat_id=None, chat_history=[{'content': 'Find a latest paper about gpt-4 on arxiv and find its potential applications in software.', 'role': 'assistant'}, {'content': \"**Initial Plan:**\\n\\n1. **Scientist's Task: Literature Review**\\n - The scientist will conduct a comprehensive literature review to find the latest paper about GPT-4 on arXiv. This involves using search queries related to GPT-4 and filtering results by the most recent publications.\\n\\n2. **Scientist's Task: Analysis of the Paper**\\n - Once the latest paper is identified, the scientist will read through the paper to understand its contents, focusing on the methodology, results, and discussions about potential applications in software.\\n\\n3. **Scientist's Task: Identifying Potential Applications**\\n - The scientist will then brainstorm and list potential applications of GPT-4 in software, based on the findings from the paper. This may include applications in natural language processing, code generation, chatbots, and more.\\n\\n4. **Engineer's Task: Technical Feasibility Assessment**\\n - The engineer will review the list of potential applications provided by the scientist and assess the technical feasibility of each application. This involves considering the current state of software technology, the capabilities of GPT-4, and the practicality of integrating GPT-4 into existing systems.\\n\\n5. **Engineer's Task: Prototype Development Plan**\\n - For applications deemed technically feasible, the engineer will draft a plan for developing a prototype that demonstrates the use of GPT-4 in a software application. This plan will outline the required resources, estimated timeline, and the steps for implementation.\\n\\n6. **Joint Task: Finalizing the Plan**\\n - The scientist and engineer will collaborate to finalize the plan, ensuring that it is scientifically sound and technically viable. They will prepare a document detailing the plan for potential applications and the prototype development.\\n\\n7. **Presentation to Admin**\\n - The finalized plan will be presented to the admin for approval. The admin will review the plan and provide feedback.\\n\\n8. **Revisions Based on Feedback**\\n - Based on the admin's feedback, the scientist and engineer will make necessary revisions to the plan. This iterative process will continue until the admin approves the plan.\\n\\n**Awaiting Admin's Feedback:** Please review the initial plan and provide feedback on any adjustments or additional details you would like to see.\", 'name': 'Planner', 'role': 'user'}, {'content': 'Approve', 'role': 'assistant'}, {'content': 'Since the plan has been approved, I will now proceed with the first step, which is to find the latest paper about GPT-4 on arXiv. To do this, I will write a Python script that uses the arXiv API to search for papers related to GPT-4 and filter them by the most recent publications.\\n\\nHere is the Python script that accomplishes this task:\\n\\n```python\\nimport requests\\nfrom datetime import datetime\\n\\n# Define the URL for the arXiv API\\nARXIV_API_URL = \"http://export.arxiv.org/api/query\"\\n\\n# Define the search parameters\\nsearch_query = \"all:gpt-4\"\\nstart = 0\\nmax_results = 1\\nsort_by = \"submittedDate\"\\nsort_order = \"descending\"\\n\\n# Construct the query\\nquery_params = {\\n \"search_query\": search_query,\\n \"start\": start,\\n \"max_results\": max_results,\\n \"sortBy\": sort_by,\\n \"sortOrder\": sort_order\\n}\\n\\n# Send the request to the arXiv API\\nresponse = requests.get(ARXIV_API_URL, params=query_params)\\n\\n# Check if the request was successful\\nif response.status_code == 200:\\n # Parse the response\\n feed = response.text\\n # Find the entry element, which contains the paper information\\n start_entry = feed.find(\\'\\')\\n end_entry = feed.find(\\'\\')\\n entry = feed[start_entry:end_entry]\\n \\n # Extract the title\\n start_title = entry.find(\\'\\') + 7\\n end_title = entry.find(\\'\\')\\n title = entry[start_title:end_title].strip()\\n \\n # Extract the published date\\n start_published = entry.find(\\'\\') + 12\\n end_published = entry.find(\\'\\')\\n published = entry[start_published:end_published].strip()\\n \\n # Extract the summary\\n start_summary = entry.find(\\'\\') + 9\\n end_summary = entry.find(\\'\\')\\n summary = entry[start_summary:end_summary].strip()\\n \\n # Extract the authors\\n authors = []\\n start_author = entry.find(\\'\\')\\n end_author = entry.find(\\'\\')\\n while start_author != -1 and end_author != -1:\\n start_name = entry.find(\\'\\', start_author) + 6\\n end_name = entry.find(\\'\\', start_author)\\n author_name = entry[start_name:end_name].strip()\\n authors.append(author_name)\\n start_author = entry.find(\\'\\', end_author)\\n end_author = entry.find(\\'\\', start_author)\\n \\n # Print the results\\n print(f\"Title: {title}\")\\n print(f\"Published Date: {published}\")\\n print(f\"Authors: {\\', \\'.join(authors)}\")\\n print(f\"Summary: {summary}\")\\nelse:\\n print(\"Failed to retrieve data from arXiv API.\")\\n```\\n\\nThis script will output the title, published date, authors, and summary of the most recent paper related to GPT-4 on arXiv. Please note that the actual content of the paper and its potential applications in software will need to be analyzed manually after retrieving the paper information.', 'name': 'Engineer', 'role': 'user'}, {'content': \"exitcode: 0 (execution succeeded)\\nCode output: \\nTitle: A Data-Centric Approach To Generate Faithful and High Quality Patient\\n Summaries with Large Language Models\\nPublished Date: 024-02-23T16:32:28Z\\nAuthors: Stefan Hegselmann, Shannon Zejiang Shen, Florian Gierse, Monica Agrawal, David Sontag, Xiaoyi Jiang\\nSummary: Patients often face difficulties in understanding their hospitalizations,\\nwhile healthcare workers have limited resources to provide explanations. In\\nthis work, we investigate the potential of large language models to generate\\npatient summaries based on doctors' notes and study the effect of training data\\non the faithfulness and quality of the generated summaries. To this end, we\\ndevelop a rigorous labeling protocol for hallucinations, and have two medical\\nexperts annotate 100 real-world summaries and 100 generated summaries. We show\\nthat fine-tuning on hallucination-free data effectively reduces hallucinations\\nfrom 2.60 to 1.55 per summary for Llama 2, while preserving relevant\\ninformation. Although the effect is still present, it is much smaller for GPT-4\\nwhen prompted with five examples (0.70 to 0.40). We also conduct a qualitative\\nevaluation using hallucination-free and improved training data. GPT-4 shows\\nvery good results even in the zero-shot setting. We find that common\\nquantitative metrics do not correlate well with faithfulness and quality.\\nFinally, we test GPT-4 for automatic hallucination detection, which yields\\npromising results.\\n\", 'name': 'Executor', 'role': 'user'}, {'content': 'Based on the abstract provided, the paper titled \"A Data-Centric Approach To Generate Faithful and High Quality Patient Summaries with Large Language Models\" explores the use of large language models, including GPT-4, to generate patient summaries from doctors\\' notes. The study focuses on the impact of training data on the faithfulness and quality of the generated summaries and also investigates the potential of GPT-4 for automatic hallucination detection.\\n\\n**Potential Applications in Software:**\\n\\n1. **Healthcare Documentation Automation:**\\n - GPT-4 could be used to develop software that assists healthcare professionals in creating accurate and comprehensive patient summaries by automatically processing doctors\\' notes and other medical records.\\n\\n2. **Clinical Decision Support Systems:**\\n - Integrating GPT-4 into clinical decision support systems could provide healthcare workers with insights and suggestions based on a patient\\'s medical history, potentially improving diagnosis and treatment planning.\\n\\n3. **Patient Education and Communication:**\\n - Software applications could leverage GPT-4 to translate complex medical information into patient-friendly summaries, enhancing patient understanding of their health conditions and treatments.\\n\\n4. **Medical Training and Simulation:**\\n - GPT-4 could be used to create realistic medical scenarios for training medical students and professionals, simulating patient interactions and generating case studies.\\n\\n5. **Data Quality Assurance:**\\n - The paper suggests that GPT-4 can be used for automatic hallucination detection, which refers to the identification of inaccuracies or fabrications in generated text. This could be applied to software that ensures the quality and reliability of medical documentation.\\n\\n6. **Research and Development:**\\n - GPT-4 could assist researchers in summarizing and synthesizing large volumes of medical literature, aiding in the discovery of new insights and the development of novel treatments.\\n\\n7. **Personalized Health Monitoring:**\\n - Software applications could use GPT-4 to provide personalized health monitoring and advice by analyzing user input, such as symptoms or lifestyle factors, and generating tailored health recommendations.\\n\\nThese potential applications highlight the versatility of GPT-4 in the realm of healthcare software, offering opportunities to enhance patient care, improve healthcare workflows, and support medical education and research.', 'name': 'Scientist', 'role': 'user'}, {'content': 'TERMINATE', 'role': 'assistant'}], summary='', cost=({'total_cost': 0}, {'total_cost': 0}), human_input=['Approve', 'TERMINATE'])" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "user_proxy.initiate_chat(\n", + " manager, message=\"Find a latest paper about gpt-4 on arxiv and find its potential applications in software.\"\n", + ")\n", + "# type exit to terminate the chat" + ] + } + ], + "metadata": { + "front_matter": { + "description": "Introduce Group Chat with Customized Speaker Selection Method", + "tags": [ + "orchestration", + "group chat" + ] + }, + "kernelspec": { + "display_name": "flaml", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.18" + }, + "orig_nbformat": 4 + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/notebook/agentchat_groupchat_finite_state_machine.ipynb b/notebook/agentchat_groupchat_finite_state_machine.ipynb new file mode 100644 index 000000000000..e24bb5bbbf3f --- /dev/null +++ b/notebook/agentchat_groupchat_finite_state_machine.ipynb @@ -0,0 +1,620 @@ +{ + "cells": [ + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# FSM - User can input speaker transition constraints\n", + "\n", + "AutoGen offers conversable agents powered by LLM, tool, or human, which can be used to perform tasks collectively via automated chat. This framework allows tool use and human participation through multi-agent conversation.\n", + "Please find documentation about this feature [here](https://microsoft.github.io/autogen/docs/Use-Cases/agent_chat).\n", + "\n", + "This notebook is about using graphs to define the transition paths amongst speakers.\n", + "\n", + "Benefits\n", + "- This contribution fills the gap between the current modes of GroupChat Class (auto, manual, round_robin) and an expressive directed graph. See Motivation for more detailed discussion.\n", + "\n", + "\n", + "````{=mdx}\n", + ":::info Requirements\n", + "Install `pyautogen`:\n", + "```bash\n", + "pip install pyautogen\n", + "```\n", + "\n", + "For more information, please refer to the [installation guide](/docs/installation/).\n", + ":::\n", + "````" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m23.0.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m24.0\u001b[0m\n", + "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpip install --upgrade pip\u001b[0m\n", + "Note: you may need to restart the kernel to use updated packages.\n" + ] + } + ], + "source": [ + "%%capture --no-stderr\n", + "%pip install pyautogen[graph]>=0.2.11" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "import random # noqa E402\n", + "\n", + "import matplotlib.pyplot as plt # noqa E402\n", + "import networkx as nx # noqa E402\n", + "\n", + "import autogen # noqa E402\n", + "from autogen.agentchat.conversable_agent import ConversableAgent # noqa E402\n", + "from autogen.agentchat.assistant_agent import AssistantAgent # noqa E402\n", + "from autogen.agentchat.groupchat import GroupChat # noqa E402\n", + "from autogen.graph_utils import visualize_speaker_transitions_dict # noqa E402" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.2.14\n" + ] + } + ], + "source": [ + "print(autogen.__version__)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Motivation\n", + "\n", + "\n", + "The current GroupChat class allows transition to any agent (without or without the decision of LLM), some use case might demand for more control over transition. A graph is a possible way to control the transition paths, where each node represents an agent and each directed edge represent possible transition path. Let's illustrate the current transition paths for a GroupChat with five agents." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "config_list_gpt4 = {\n", + " \"timeout\": 600,\n", + " \"cache_seed\": 44, # change the seed for different trials\n", + " \"config_list\": autogen.config_list_from_json(\n", + " \"OAI_CONFIG_LIST\",\n", + " filter_dict={\"model\": [\"gpt-4\", \"gpt-4-0613\", \"gpt-4-32k\", \"gpt-4-32k-0613\", \"gpt-4-1106-preview\"]},\n", + " ),\n", + " \"temperature\": 0,\n", + "}" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "agents = [ConversableAgent(name=f\"Agent{i}\", llm_config=False) for i in range(5)]\n", + "allowed_speaker_transitions_dict = {agent: [other_agent for other_agent in agents] for agent in agents}\n", + "\n", + "visualize_speaker_transitions_dict(allowed_speaker_transitions_dict, agents)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Possibly interesting transition paths\n", + "1. Hub and Spoke\n", + "2. Sequential Team Operations\n", + "3. Think aloud and debate" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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R6EEgO/QeRZy4cKFXf7u/PzevXtVVlYmSYqOjtbKlSt144036uWXX1Z6enq3cW1F++VoqpMkWROuVmDcRJn8AhQ07lpZwke273N8n9q+3qezoKR0Dct4QMFJ0xU+43bX9tazJ+WUNDxhvJKSvlmXMj4+XjNnztTMmTMVH88i6AA8j0IJABfQ0NCgdevWSZKGDx+uuXPnSpIWLFggi8UiSXr77bfldDp1/Phx1+umTJkif39/188zZszoNnZrzQnXY9vxvTq98peuP211p79+xqnW6vJur7XGpboem4PCXI8dzY2SpBa7o7cfFQDc4md0AAAYqNauXSubzSZJqqmp6VISO5SUlGjXrl1dtplMpm77XS5nq63bNrN1SKf36jQv8PXh9gA/5goA9C8KJQBcwFtvvXVJ+2VlZem+++5z/bx//361tbW5ZjG/XTglyX/4aNfjkNRMRdz08277OFptMvtbe5XZJClhRIj2mr8plQ4HM5YA+haFEgB6UF1drY0bN0qSQkNDtWzZsi7Pt7S06Omnn5Ykvfvuu1q+fLni4uJUVlamiooK3X///brnnnu0fv167d692/W6EUMC1CzJmjBZ5uBwOZrq1Hhgi8xBQxSUMFlOp0P2utNqLj+k1soixTzS84U5FxI/IlghgX4aNmyYa9snn3yiWbNmyWq1Ki0tTeHh4Tpz5oy2b98uqf3iog5fffWVaxH32bNnKzIyslfvD8A3USgBoAerV6+W3W6XJN1www167LHHuu3z5ptvKjc3V6dOndK2bdu0YsUKLVy4UE6nU6tWrdKqVaskSWlpacrPb7+LzfjoMOWbTVKAVRHff1KVa5ZJba1qyPlADTkfdBnfEhbVq8wmkzQnuf01M2bMUGBgoJqbm5WTk6P58+dLkrZu3aqMjAwdPHhQt99+e7cx3n33Xb377rtd9gWAi+FEGwDoQefD3bfcckuP+9x8882ux1lZWVqwYIHeeecdTZgwQQEBARo/frxWrVqlzMxM135zJsa61qEMGjtNox5YrpCJc2QJjZDMfjIHhck/KlGh025V5G3P9iqz0yndm95+FXdERITWrl2ryZMnKygoqFfjAEBvmZwdi6YBANzidDp7vCAnPT1de/bskSTt27dP/3tfi3Yer/bo7RctZpOuSxyhNx+e7rExAeBSMUMJAB6SnZ2tu+++W+vXr1dJSYny8vL005/+1FUmU1JSNGnSJC27LU1+Zs9dCS5JfmaTlt2W5tExAeBSMUMJAB6ybds2zZkzp8fnQkNDtWHDBtci51k5pXp2Tb7H3vu/FqTpzmksWg7AGMxQAoCHJCYm6t5779XYsWMVHByswMBAjRs3Tj/+8Y+Vl5fX5Y45d02L1y9uSPbI+z5zQwplEoChmKEEAANl5ZRq8YcHZXc4e3VOpcVskp/ZpOdvmUiZBGA4CiUAGKyspkmL3s9XdmGVLGbTdxbLjuevHxehZbelKW54cD8mBYCeUSgBYIA4erpBK/eUauuRSpVWN6nzl7NJ7YuWz0mO0r3p8RoXFWpUTADohkIJAANQY7NdxdWNarE7FOBnVsKIEIUEci8KAAMThRIAAABu4SpvAAAAuIVCCQAAALdQKAEAAOAWCiUAAADcQqEEAACAWyiUAAAAcAuFEgAAAG6hUAIAAMAtFEoAAAC4hUIJAAAAt1AoAQAA4BYKJQAAANxCoQQAAIBbKJQAAABwC4USAAAAbqFQAgAAwC0USgAAALiFQgkAAAC3UCgBAADgFgolAAAA3EKhBAAAgFsolAAAAHALhRIAAABuoVACAADALRRKAAAAuIVCCQAAALdQKAEAAOAWCiUAAADcQqEEAACAWyiUAAAAcAuFEgAAAG6hUAIAAMAtFEoAAAC4hUIJAAAAt1AoAQAA4BYKJQAAANxCoQQAAIBb/j93HZ/0yGxRQgAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "agents = [ConversableAgent(name=f\"Agent{i}\", llm_config=False) for i in range(5)]\n", + "allowed_speaker_transitions_dict = {\n", + " agents[0]: [agents[1], agents[2], agents[3], agents[4]],\n", + " agents[1]: [agents[0]],\n", + " agents[2]: [agents[0]],\n", + " agents[3]: [agents[0]],\n", + " agents[4]: [agents[0]],\n", + "}\n", + "\n", + "visualize_speaker_transitions_dict(allowed_speaker_transitions_dict, agents)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Sequential Team Operations\n", + "# Create an empty directed graph\n", + "\n", + "speaker_transitions_dict = {}\n", + "teams = [\"A\", \"B\", \"C\"]\n", + "team_size = 5\n", + "\n", + "\n", + "def get_agent_of_name(agents, name) -> ConversableAgent:\n", + " for agent in agents:\n", + " if agent.name == name:\n", + " return agent\n", + "\n", + "\n", + "# Create a list of 15 agents 3 teams x 5 agents\n", + "agents = [ConversableAgent(name=f\"{team}{i}\", llm_config=False) for team in teams for i in range(team_size)]\n", + "\n", + "# Loop through each team and add members and their connections\n", + "for team in teams:\n", + " for i in range(team_size):\n", + " member = f\"{team}{i}\"\n", + " # Connect each member to other members of the same team\n", + " speaker_transitions_dict[get_agent_of_name(agents, member)] = [\n", + " get_agent_of_name(agents, name=f\"{team}{j}\") for j in range(team_size) if j != i\n", + " ]\n", + "\n", + "# Team leaders connection\n", + "print(get_agent_of_name(agents, name=\"B0\"))\n", + "speaker_transitions_dict[get_agent_of_name(agents, \"A0\")].append(get_agent_of_name(agents, name=\"B0\"))\n", + "speaker_transitions_dict[get_agent_of_name(agents, \"B0\")].append(get_agent_of_name(agents, name=\"C0\"))\n", + "\n", + "visualize_speaker_transitions_dict(speaker_transitions_dict, agents)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "agents = [ConversableAgent(name=f\"Agent{i}\", llm_config=False) for i in range(2)]\n", + "allowed_speaker_transitions_dict = {\n", + " agents[0]: [agents[0], agents[1]],\n", + " agents[1]: [agents[0], agents[1]],\n", + "}\n", + "\n", + "visualize_speaker_transitions_dict(allowed_speaker_transitions_dict, agents)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Demonstration" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "`GroupChat` now takes in two optional arguments.\n", + "- allowed_or_disallowed_speaker_transitions: The keys are source agents, and the values are agents that the key agent can/can't transit to, depending on speaker_transitions_type. Default is None, which means all agents can transit to all other agents.\n", + "- speaker_transitions_type: whether the speaker_transitions_type is a dictionary containing lists of allowed agents or disallowed agents. \"allowed\" means the `allowed_or_disallowed_speaker_transitions` is a dictionary containing lists of allowed agents." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Team Operations\n" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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Z2cFBQVd9/z69etrw4YNevrpp2/5GsHBwTp48KCqVat2w3NcXFyUk5NzO9ElSb/++mue161cuVLTp0/X1q1bVb58+dteDwAAALhVf36/abVaJUkZGRnq1auXqlevriNHjtzRzaL+XG/kyJGaPXu2rFarOnfurPDwcHl4eORbdgBA/mPLpB1KTExUmzZttGDBAu3du1cxMTFasmSJ3nnnHXXr1k2S9Mgjj+jBBx9U9+7dtX79ep04cUJbt27VuHHjtH37dknSxIkTtWjRIk2cOFGHDh3Svn37NH369Jte+/XXX9fWrVs1fPhw7d69W1FRUVq5cmXuUH3p6t0pf/75Z505c0YJCQm5x2vVqqXly5ffcO3atWurbt26uf+UL19eZrNZdevWVcmSJe/mSwYAAADc1P/+AvbPwliPHj3uuBj2ww8/qHTp0vroo48UEBCg3377TatWraIYBgCFAAUxO+Tl5aVmzZpp5syZatGiherWrauwsDANGTJEH3/8saSrd3Rcs2aNWrRooaefflo1atRQ3759dfLkSZUpU0aS1KpVKy1ZskQRERFq2LCh2rRpo99///2m165fv742b96so0ePKiQkRI0aNdKECRNUrly53HMmT56sEydOqGrVqipdunTu8SNHjujSpUsF8BUBAAAA7s5fv5/907Rp0zRt2rTbXispKUkhISHq0KGDLl++rEmTJunMmTNq1qxZfkQFANwDJpvNZjM6BAAAAAAUpOTk5NxdCSaTSXPnztWQIUNue51JkybprbfeksViUUhIiFasWCFfX9/8jgsAKGAUxAAAAAAUeTabTWbz1Q0yS5YsUa9evW547oEDB1S6dGn5+/vnHtu2bZtCQ0MVFxcnX19fffPNN2rfvn2B5wYAFAyG6gMAAAAoUtKyLDqRmKZsi1UuzmYF+XnqZPRRSdILL7xw02LYqVOn1LRpU9WoUUPbt29XVlaWevfurTVr1shsNuull17S+++/n1tcAwAUTnSIAQAAACj0os6naOG2WG08Eq/YpHT99YcckyRfV6sS9/2sNR+M0X0VbrzFsVu3bvr+++9ltVr1+OOPa+XKlcrKylLDhg21atUqVahQocDfCwCg4FEQAwAAAFBonUpK19jl+7TlWIKczCblWG/8482fz4dUK6WpofVU0Tfv3SBXrFih0NDQPMc8PDz05Zdfqk+fPgWS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Bx8YHQcAUEiwZdJBpaamyt/f3+gYKGK8vLz0xhtvaN++fbpy5Yr+/e9/66GHHtLZs2c1Y8YMlS1bVmXKlNGAAQO0b98+o+MCgF3737lgM2fOZC4YcB3Hjx+XJJUtW9bgJACAwoSCmAOyWq3Kzs5W+fLljY6CIsxsNuupp57Sli1blJmZqZ9++kldu3ZVVlaWvv76a9WvX1/e3t567LHHtG7dOqPjAoDdYC4YcHv+HNlQsWJFg5MAAAoTCmIOKDY2VpJUrVo1g5PAkbRu3VorV65UcnKyDh06pEGDBsnT01Nr165Vx44d5erqqgcffFCff/65LBaL0XEB4J46cuSIevfuLS8vL3Xs2FG//PKLqlWrpg8//FCZmZmKjIxUx44djY4J2KU/R4BUqlTJ4CQAgMKEgpgD2rFjhyTx22UYplatWvr8888VFxenCxcuaMyYMQoMDNS2bds0ZMgQubq6qnbt2po8ebIuX75sdFwAKBDJyckaPXq0AgICVKtWLS1dulReXl4aNWqULl68qMOHD+vFF19kSD7wN86ePStJqly5ssFJAACFCQUxB7R//35JUoMGDQxOAkilSpXS1KlTFRUVpfT0dH344Ydq1KiRjh07pokTJ6pEiRKqWLGiXnjhBZ04ccLouLBjFy5c0HPPPafAwEC5uroqICBA7du31y+//GJ0NAUFBWnWrFm3/bojR46odevWKlOmjNzc3FSlShWNHz9eV65cyf+QuCeYCwbkvz9vNMEMMQDA7aAg5oCioqIkURCD/XFzc9OLL76o7du3KysrS8uWLVPbtm2VlJSkTz75RJUrV5afn5969+6tbdu2GR0XdqZnz57atWuX5s+fr6NHjyoiIkKtWrVSYmJigV0zOzu7wNaWpGLFimnAgAFav369jhw5olmzZulf//qXJk6cWKDXRf774YcfFBISInd3d+aCAfnswoULMpvNMpv50QYAcOtMNpvNZnQI3FshISH69ddfmdOEQuX333/Xe++9px9//FFJSUmSJHd3dz344IN6/vnnFRoayjfCDiw5OVklS5bUpk2b1LJly5ue98orr2jlypXKyspS48aNNXPmzDy/IFi1apUmT56sffv2ycvLSyEhIVq+fLmkq51egwYNUlRUlFasWKEePXpo3rx5ioyM1JgxY7R9+3aVKlVKoaGhmjZtmjw9PdWqVStt3rw5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PHkSuPTaLiIici20y2Q5c8899/DNN9+Qn5+P1Wo1Oo5IqWK325k3bx4ff/wxW7Zs4cKFCwD4+fkRFRXF008/fcWC6iJS9v3RumCPPPIIjz76qNYFEynFfvrpJ3r06MHbb7/N008/bXQcEREpQzRDrJxJTEzExcVFZZjI7zCbzdx1112sWbOG3NxcNmzYwODBg7Hb7Xz77be0adMGLy8voqKiWLRoEXa73ejIInKdMjIyePrppwkMDKRRo0bMnTsXT09Pxo4dS1paGgcPHuTJJ59UGSZSyiUmJgJQs2ZNg5OIiEhZo0KsnDlz5gweHh5GxxApEzp27Mi8efNIT0/n0KFDPPzww/j4+LBq1SoGDBiAu7s7rVu35qOPPqKgoMDouCLyF+x2Ox9++CGhoaH4+vryzjvvkJWVdcW6YL6+vkZHFZGr9OslkyEhIQYnERGRskaXTJYzlStXpmLFikWfponItcvIyODdd99lzpw5xMfHY7fbMZlM1KtXj7/97W889dRTekMtUopER0czceJEYmNjsdlsuLi40K5dO1566SX69u1rdDwRuQGPPvooH330ESkpKVpYX0RErokKsXLGarXSrFmzoh3VROTGXLx4kS+//JLPP/+cHTt2cPHiRQACAwO59dZbee6556hfv77BKUXKH60LJlI+3HHHHcyfP7/owykREZGrpUsmyxG73c7FixepVauW0VFEnIarqysPPvggW7ZsoaCggKVLl9K7d2/Onz/PZ599RoMGDfDx8WHgwIGsW7fO6LgiTi0zM5NnnnnminXBnnzySa0LJuKkUlNTMZvNKsNEROSaqRArRw4fPgxAvXr1DE4i4rz69u3L8uXLOX/+PDt27GDo0KFYrVYWLlxIREQEFSpUoEuXLsyePVuL8osUA7vdzkcffURoaCiVK1fmX//6V9G6YPv27SMpKYl3331XlzGLOKlz587h6upqdAwRESmDVIiVI7/88gsAjRs3NjiJSPnQokULZs2aRXJyMqdOneKpp54iICCA9evXM2zYsKJLmCdPnkxubq7RcUXKlOjoaLp06YKbmxuPPvooCQkJhIeHs3TpUnJycpg3b55e70TKgczMTNzd3Y2OISIiZZAKsXJk7969ADRv3tzgJCLlT/Xq1XnnnXc4evQoOTk5TJ48mcaNG7N//36ef/55vLy8CAkJ4f/+7/84ffq0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AKhVq5bBSURExJlouk8pdDwtBwdgz798nS5LRd9rOk7hhSxS5r8G9kIAfCLuxex2aXdJk8nE7iNn2LRpE8899xx16tQpelxmZiYpKSk39iRERERKkVatWrFr1y42b95MaGgoy5cvJyAggP79+5Oammp0PBH5EydPngTQWoAiIlKsVIiVQgU2OwBmN8/LbredT7/qY9iy00ma/XcuphwDoGKbAXjfcvtlYy7aHYSHhzNp0iQOHz5MXFwcb7zxBsOHD9cukCIi4pTatWvHvn37WL9+PQ0aNGDx4sVUq1aNwYMHa3a0SCmVlJQEqBATEZHipUKsFLJaLv2xmK0VsPgEFN2ef2r/VT3elplM0qznuZiaCIB3+zvw7THqD8/zq0aNGvH3v/+dmTNnYrVarze+iIhIqdepUycOHDjA6tWrqVOnDt9//z1+fn4MGTKErKwso+OJyG/8Woh5enr+xUgREZGrp0KsFAr288T0n689QjsX3X7+54XYzqddMb4wJ4PCC+cBuJh2krOzn8eWcWmxfJ+I+6jcdcQVjzH95zwiIiLlWffu3UlISGDFihUEBQUxZ84cfH19uffee8nNzTU6nogA6enpuLi4GB1DREScjAqxUsjTzUKQ76W1vrzbDsLFuypwaU2xszOfJmvrIi4c20Vu/GbSV33KqX8/RGFWyn/KsL9TmHVp/S/PJl1xq9mYvBP7iv4p/M9uk0F+Hni6aU8FERERgF69enH06FF++OEHqlevzldffUWlSpW4//77ycvLMzqeSLl27tw5Xb0gIiLFzuRwOBxGh5ArvbJ4H19tOU6h3UFBaiIp8yZctuPk/wocOZWCpCOkLXv3T4/r13cslVpEMbxdbV7pd+27VoqIiJQH8+fP58knn+TUqVO4urpy//33M3XqVL0pFzFArVq1yM3NJS3tyislRERErpdmiJVSQ9sFUWi/1FVaqwQReP8HVO4+CreajTG7VwQXCy7eVXEPaYXfrU/hWuXqt6EutDsY1j6opKKLiIiUeYMHD+bkyZN8++23+Pn58cknn1CxYkUef/xxCgoKjI4nUq7k5ORo/TARESl2miFWig3/fAubjqQVFWPFwcVsokMdP756oF2xHVNERMTZffXVVzzzzDMkJyfj5ubGI488wuTJk7FYtPyASEmrUKEC9erVY8+ePUZHERERJ6IZYqXYPwc2xWI2/fXAa2Axm/jnwKbFekwRERFnN3z4cJKSkvjss8/w8vJiypQpVKxYkRdeeAG73W50PBGndvHiRXx8fIyOISIiTkaFWClWy9eDV4t5na8J/ZpQ6z8L9ouIiMi1eeCBB0hNTeXDDz+kQoUKvPnmm3h5eTF+/HgVYyIlpLCwkCpVqhgdQ0REnIwKsVJuSJsgnunZoFiO9WzPhvytjdYOExERuVGPPPII6enpTJkyBVdXVyZOnIi3tzevvfaaijGRYpSRkQFA1apVjQ0iIiJOR4VYGfBYt/q8OagpbhYzLtd4CaWL2YSbxcykQU15tFu9EkooIiJSPo0dO5Zz584xefJkTCYT48aNo1KlSkyePFnFmEgxOHLkCADVq1c3OImIiDgbFWJlxJA2Qax6KoIOdfwA/rIY+/X+DnX8WPVUhGaGiYiIlBCz2cyzzz5LZmYmr732Gg6Hg+effx5fX1/ee+89o+OJlGnHjx8HVIiJiEjxUyFWhtTy9eCrB9oRPbYLw9vVprafB/9bi5mA2n4eDG9Xm1VPdeGrB9ppzTAREZGbwGw289JLL5GVlcX48eMpKChg7Nix+Pr68tFHHxkdT6RMSkxMBKB27doGJxEREWdjcjgcDqNDyPXLybdxLC2HApsdq8VMsJ8nnm7aAl5ERMRodrudl156iXfffZe8vDz8/Px48803GTVqlNHRRMqM559/nsmTJ3Pw4EEaNCiedXVFRERAM8TKPE83C02qV6JlUGWaVK+kMkxERKSUMJvNvPHGG5w/f57/+7//Izs7m9GjR+Pv78/MmTONjidSJpw9exaA4OBgY4OIiIjTUSEmIiIiUoIsFgv/+te/yMrK4vHHHyczM5P77ruPwMBA5syZY3Q8kVItJSUFk8mE1Wo1OoqIiDgZFWIiIiIiN4HVamXq1KmcP3+ehx9+mLS0NIYMGUKNGjVYsGCB0fFESqW0tDRcXFyMjiEiIk5IhZiIiIjITWS1Wvn444/Jyspi5MiRJCcnM2jQIIKCgliyZInR8URKlczMTNzc3IyOISIiTkiFmIiIiIgB3N3d+eKLL8jMzGT48OGcPn2a22+/nZCQEH788Uej44mUCllZWVSoUMHoGCIi4oRUiImIiIgYyMPDg5kzZ5Kens6QIUNITEykd+/e1KtXjzVr1hgdT8RQubm5eHl5GR1DRESckAoxERERkVLA29ubb775hrS0NAYPHszRo0fp3r07DRs2ZMOGDUbHEzFEXl4e3t7eRscQEREnpEJMREREpBTx8fFh3rx5pKSk0K9fPxISEujcuTNNmjRhy5YtRscTuakuXryIr6+v0TFERMQJqRATERERKYV8fX1ZtGgRZ8+epU+fPsTFxdG+fXuaNWvGL7/8YnQ8kRJnt9ux2+34+fkZHUVERJyQCjERERGRUszf359ly5Zx8uRJoqKi2Lt3L7fccgutWrVi9+7dRscTKTGpqakAVKtWzeAkIiLijFSIiYiIiJQB1atXZ+XKlRw7doxu3bqxY8cOmjdvTps2bYiLizM6nkixO3r0KACBgYEGJxEREWekQkxERESkDAkKCuKnn37iyJEjdOrUiW3bttG4cWM6dOhAQkKC0fFEis2xY8cAqFWrlrFBRETEKakQExERESmDQkJCWL9+PfHx8bRv357Y2FgaNGhAly5dimbWiJRlJ0+eBFSIiYhIyVAhJiIiIlKG1a9fn9jYWPbu3Uvr1q1Zv349derUoXv37iQmJhodT+S6nTp1CoC6desanERERJyRCjERERERJ9CkSRO2bt3Krl27aNmyJWvWrCE4OJiePXty+vRpo+OJXLOkpCQAatSoYXASERFxRirERERERJxIs2bN+OWXX9i6dSthYWFER0dTs2ZNbr31VpKTk42OJ3LVUlJSMJlMWCwWo6OIiIgTUiEmIiIi4oRat27N7t272bx5M6GhoSxbtoyAgAD69+9Penq60fFE/lJ6errKMBERKTEqxEREREScWLt27di3bx/r16+nfv36LF68mKpVq3LHHXeQkZFhdDyRP5SZmYmbm5vRMURExEmpEBMREREpBzp16sTBgwdZvXo1ISEhzJ8/Hz8/P+6++26ysrKMjidyhezsbDw8PIyOISIiTkqFmIiIiEg50r17dw4dOsSKFSsICgri22+/xdfXl3vvvZfc3Fyj44kUycnJwcvLy+gYIiLipFSIiYiIiJRDvXr14ujRoyxatIjq1avz1VdfUalSJR544AHy8vKMjidCfn4+Pj4+RscQEREnpUJMREREpBzr168fiYmJzJs3D39/f7744gu8vb0ZM2YMBQUFRseTcuzixYtUrlzZ6BgiIuKkVIiJiIiICIMHD+bUqVN8/fXX+Pn5MW3aNCpWrMgTTzyBzWYzOp6UM3a7HYfDQdWq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wHX/fERExLmoEBMRERGRcqVfv36cOHGCuXPnUrVqVT777DO8vb155JFHLputVN54eXnh5eXFwoULyc/P/8Nxd955J8nJySxfvpzt27fTqlUrevToUbRxwdKlSxk4cCB9+/Zlx44drF69mrZt2152jLfffpvmzZuzY8cOxo0bx+HDh+nduzetW7cGYNSoUWzYsIHHHnsMgO+//56aNWsyYcIEzpw5w5kzZ4qOZTKZmD59ejH/NERExNmZHA6Hw+gQIiIiIiJGmT17Nk8//TRJSUlYrVYefvhh/vWvf2GxWIyOdtPNnz+f0aNHc+HCBVq1akVERARDhgyhWbNmwKVZXLfeeivJycm4ubkVPa5evXo899xzPPjgg3To0IE6deowa9as3z1HcHAwLVu2ZMGCBUW3jRo1ChcXF1q1asXDDz/MwoUL8fPzIyIigpycHNzd3QkODmbs2LGMHTv2suM1atSIN95447JZaH9kxIgRZGRksHDhwmv/4YiIiFPRDDERERERKdeGDh3K2bNnmT59OpUqVWLq1Kl4eXnx7LPPYrPZjI53Uw0ePJjTp0+zePFievfuTUxMDK1atSqagbVr1y6ys7Px8/MrmlHm5eXF0aNHOXz4MAA7d+6kR48ef3qeX2eC/WrXrl1Mnz6dxx9/HIC7776bXr16YbfbOXr06J8e68CBA1dVhomIiPyWCjEREREREeC+++4jOTmZTz75BE9PT95++20qVqzISy+9hN1uNzreTePu7k5UVBTjxo1j06ZNjBgxgpdffhmA7OxsAgMD2blz52X/HDx4kGeffRaAChUq/OU5PD09L/s+Ozubhx56qGgHyNjYWHbt2kVCQgJ169Yt3icoIiKCCjERERERkcs8+OCDpKWl8f777+Pu7s4///lPKlasyKuvvlquirFfNW7cuGhx+1atWnH27FksFgv16tW77J8qVaoA0KxZM1avXn1N52jVqhX79+8vWrusefPmRce1Wq0AWK1WCgsLi/GZiYhIeaZCTERERETkdzz22GOcO3euaD2xV155BW9vb9544w2nLMbS0tLo3r07s2bNYvfu3Rw9epS5c+cyefJk+vfvD0BkZCTh4eEMGDCAlStXcuzYMTZt2sRLL73Etm3bAHj55Zf55ptvePnll4mLi2PPnj1MmjTpT8/9/PPPs2nTJn7++WfMZjMJCQksWrSoaFF9uLT22Lp16zh16hSpqalFtzdq1Oiy9ch+z/79+9m5cyfp6elkZmYWzWwTEZHyS4WYiIiIiMif+L//+z/OnTvHG2+8AcCLL76Ij48P//rXv3Cm/am8vLxo164dU6ZMoUuXLoSFhTFu3DhGjx7NBx98AFza0XHZsmV06dKFkSNH0qBBA4YMGcLx48epVq0aAF27dmXu3LksXryYFi1a0L17d37++ec/PXezZs1Yu3Yt58+fx26307JlS8aPH0/16tWLxkyYMIFjx45Rt25dqlatWnT7wYMHyczM/NPj9+3bl5YtW/LDDz8QExNDy5Ytadmy5fX+qERExAlol0kRERERkatkt9t57bXXmDRpErm5uVSqVImJEycWLQYvNyYoKIicnBzS0tKMjiIiIk5OM8RERERERK6S2Wxm/PjxnD9/npdeeon8/HyeeOIJ/Pz8+Pe//210vDIvOzv7igX3RURESoIKMRERERGRa2Q2m3nttdc4f/48zz77LDk5OTz00ENUrVqVL7/80uh4ZVZeXh4VK1Y0OoaIiJQDKsRERERERK6TxWJh8uTJZGdnM3bsWLKysrj//vupVq0aX3/9tdHxypyCggIqV65sdAwRESkHVIiJiIiIiNwgi8XClClTOH/+PI888gjnzp1j6NChVK9enblz5xodr8woLCzEz8/P6BgiIlIOqBATERERESkmVquVDz/8kKysLEaPHk1KSgp33XUXtWrVYtGiRUbHK9XOnz8PgL+/v8FJRESkPFAhJiIiIiJSzNzd3fn3v/9NZmYm9913H2fOnGHAgAHUrl2b5cuXGx2vVDpy5AgAgYGBBicREZHyQIWYiIiIiEgJ8fDwYPr06WRkZHDPPfdw6tQp+vbtS926dVm9erXR8UqVY8eOAVCjRg1jg4iISLmgQkxEREREpIR5eXkxe/Zs0tPTufPOOzl27BiRkZE0aNCAtWvXGh2vVEhMTAQgKCjI4CQiIlIeqBATEREREblJvL29+e6770hJSWHgwIEcPnyYrl27EhoayqZNm4yOZ6jTp08DEBISYnASEREpD1SIiYiIiIjcZL6+vnz//fckJSVx2223cfDgQTp27EjTpk3ZunWr0fEMcebMGQCCg4ONDSIiIuWCCjEREREREYNUqVKFH374gdOnT9O7d2/27dtH27ZtadGiBTt37jQ63k2VkpICXNqQ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IlJmmBwOh8PoECIiIiIiIteiatWqmEwmkpOTjY5iuN27dxMREUFGRgZ9+vThhx9+wMXFxehYIiKlmmaIiYiIiIhImdO0aVNSU1MpLCw0OorhmjVrxpkzZwgPD2f58uXUrFmz3G06ICJyrVSIiYiIiIhImRMVFYXD4WDlypVGRykV3N3d2bRpE+PGjSMpKYn69esze/Zso2OJiJRaKsRERERERKTMGTp0KADz5883OEnpMmHCBGJiYrBarQwbNoxhw4Zht9uNjiUiUupoDTERERERESmT3N3dCQkJIS4uzugopU5WVhYdOnRg37591KlTh9jYWPz9/Y2OJSJSamiGmIiIiIiIlEnBwcFaK+sPeHt7s3fvXsaMGcORI0cICgpi+fLlRscSESk1VIiJiIiIiEiZFB4eTl5eHidPnjQ6Sqn10UcfsWjRIhwOB3379uWpp54yOpKISKmgQkxERERERMqkwYMHA/D1118bnKR069evH8ePHycoKIh3332XFi1akJ2dbXQsERFDqRATEREREZEyqXfv3phMJn788Uejo5R6AQEBHD16lLvuuotdu3YREBBAbGys0bFERAyjQkxERERERMoki8WCn58fe/bsMTpKmWA2m5kzZw5ffPEFeXl5dOzYkddff93oWCIihtAukyIiIiIiUmZ169aNtWvXYrPZMJv1ef/VSkhIoGPHjqSkpNClSxeio6OxWq1GxxIRuWn0iiEiIiIiImVWz549cTgcumzyGtWvX5/Tp08TGRnJunXrCAwMJC4uzuhYIiI3jQoxEREREREps4YOHQrA/PnzDU5S9lgsFqKjo5k8eTLnzp0jLCyMadOmGR1LROSm0CWTIiIiIiJSprm7uxMSEqIZTjdg27Zt9OjRg6ysLPr378/333+vS1BFxKmpEBMRERERkTKtUaNGHD9+nAsXLhgdpUzLzc0lIiKCbdu2Ub16dTZv3kytWrWMjiUiUiJU+YuIiIiISJkWHh5OXl4ep06dMjpKmebh4cHWrVt57rnnOH36NHXr1mXu3LlGxxIRKREqxEREREREpEwbOHAgAF9//bXBSZzDpEmTWLVqFS4uLtx111088MADRkcSESl2umRSRERERETKNJvNhtVqpXv37qxatcroOE4jPT2d8PBw4uPjadCgAbGxsfj6+hodS0SkWGiGmIiIiIiIlGkWiwVfX192795tdBSn4uvry8GDB3nggQeIj4+nRo0arF692uhYIiLFQoWYiIiIiIiUeU2bNiU1NRW73W50FKfz2WefMXfuXAoLC4mMjOT55583OpKIyA1TISYiIiIiImVez549cTgc/Pjjj0ZHcUp33HEHhw4dokaNGkyePJnWrVuTm5trdCwRkeumQkxERERERMq8e+65B4D58+cbnMR5BQUFkZiYyIABA9i+fTuBgYFs27bN6FgiItdFhZiIiIiIiJR5tWvXxs3NjU2bNhkdxamZzWYWLFjAtGnTyM7Opm3btrz11ltGxxIRuWbaZVJERERERJxCw4YNSUxM5MKFC0ZHKRfi4uLo1KkT6enp9OjRgxUrVmCxWIyOJSJyVTRDTEREREREnEJ4eDh5eXmcPn3a6CjlQmhoKGfOnCEiIoLVq1dTvXp1EhISjI4lInJVVIiJiIiIiIhTGDRoEACzZ882OEn5YbVaiYmJ4bXXXiM1NZXQ0FC++OILo2OJiPwlXTIpIiIiIiJOwWaz4erqSo8ePVi1apXRccqdLVu2EBkZSXZ2NnfeeSfffvstZrPmYIhI6aRCTEREREREnEaVKlUwm80kJycbHaVcys7OpnPnzuzcuZOgoCA2b95MYGCg0bFERK6gul5ERERERJxGWFgYqamp2O12o6OUS15eXuzYsYOxY8eSmJhIcHAwixcvNjqWiMgVVIiJiIiIiIjTiIqKwuFwEB0dbXSUcm3KlCksW7YMk8lE//79eeSRR4yOJCJyGRViIiIiIiLiNIYNGwbAvHnzDE4iffr04cSJE9SpU4ePP/6YJk2akJmZaXQsERFAhZiIiIiIiDiR2rVr4+bmxsaNG42OIkDVqlVJSEhg+PDh7N+/n+rVq7N+/XqjY4mIqBATERERERHnUrt2bY4ePWp0DPkPs9nMzJkzmTVrFgUFBURERDB+/HijY4lIOadCTEREREREnEp4eDh5eXmcPn3a6CjyG0OHDiU+Pp5q1aoxceJEOnToQF5entGxRKScUiEmIiIiIiJOZdCgQQB8/fXXBieR/xUSEsKpU6fo27cvsbGxBAQEsHv3bqNjiUg5pEJMREREREScSt++fQH48ccfDU4iv8dsNrN06VKmTp3K+fPnadmyJVOnTjU6loiUMyaHw+EwOoSIiIiIiEhxqlKlCi4uLiQlJRkdRf7E7t27iYiIICMjgz59+vDDDz/g4uJidCwRKQc0Q0xERERERJxOWFgYKSkp2O12o6PIn2jWrBlnzpwhPDyc5cuXU7NmTY4dO2Z0LBEpB1SIiYiIiIiI04mKisLhcBAdHW10FPkL7u7ubNq0iXHjxpGUlET9+vWZPXu20bFExMmpEBMREREREaczbNgwAObNm2dwErlaEyZMYO3atVitVoYNG8awYcM0w09ESozWEBMREREREafk5uZGvXr12Ldvn9FR5BpkZmbSsWNH9u3bR506dYiNjcXf39/oWCLiZDRDTEREREREnFJwcDBHjhwxOoZco0qVKrF3717GjBnDkSNHCAoKYvny5UbHEhEno0JMREREREScUvv27cnLy+P06dNGR5Hr8NFHH7Fo0SIcDgd9+/Zl7NixRkcSESeiQkxERERERJzSoEGDAPjmm28MTiLXq1+/fhw/fpygoCDee+89WrRoQXZ2ttGxRMQJqBATERERERGndOuttwKwYsUKg5PIjQgICODo0aPcdddd7Nq1i4CAAGJjY42OJSJlnAoxERERERFxShaLBT8/P3bv3m10FLlBZrOZOXPm8MUXX5CXl0fHjh15/fXXjY4lImWYdpkUERERERGn1bVrV9atW4fNZsNs1nwAZ5CQkEDHjh1JSUmhS5cuREdHY7VajY4lImWMXhFERERERMRpRUVF4XA4WLVqldFRpJjUr1+f06dPExkZybp16wgMDGT//v1GxxKRMkaFmIiIiIiIOK2hQ4cCMG/ePIOTSHGyWCxER0fz1ltvce7cOZo2bcq0adOMjiUiZYgumRQREREREafm5uZGvXr12Ldvn9FRpARs27aNHj16kJWVRf/+/fn+++91eayI/CUVYiIiIiIi4tQaNGjAiRMnuHDhgtFRpITk5uYSERHBtm3bqF69Ops3b6ZWrVpGxxKRUky1uYiIiIiIOLXw8HDy8vI4ffq00VGkhHh4eLB161aee+45Tp8+Td26dZk7d67RsUSkFFMhJiIiIiIiTm3QoEEAfPPNNwYnkZI2adIkVq1ahYuLC3fddRcPPPCA0ZFEpJTSJZMiIiIiIuLUbDYbrq6uREZGEh0dbXQcuQnS09MJDw8nPj6eBg0aEBsbi6+vr9GxRKQU0QwxERERERFxahaLBT8/P3bv3m10FLlJfH19OXjwIA888ADx8fHUqFGD1atXGx1LREoR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/TVhwgRlZ2erf//++uabb5SXl6c33niDMgzABVGIAQAAAIAHxMTESJIWLVpkbpDr2Pfff69HH31U9erV0913362UlBR16NBB8+fPV3FxsVatWqWuXbuaHRPANYBbJgEAAADAA0pKSuTn56cBAwbos88+MzvOdaO8vFxz5szRP/7xDx0+fFiS1LBhQw0bNkwvv/yygoODTU4I4FpEIQYAAAAAHhIUFCQ/Pz8dO3bM7CjXvMTERMXFxWnDhg2qqKhQnTp11LdvX02fPl233Xab2fEAXOO8zQ4AAAAAANeL8PBwbd68WYZh8ETDasjJydFf/vIXffzxxzp58qQkqUOHDnr22Wc1atQofqYAPIbfJgAAAADgIVFRUTIMQykpKWZHuWYYhqE5c+aoXbt2atasmd5//33Z7XaNHj1aeXl52rdvn0aPHk0ZBsCj+I0CAAAAAB4ybNgwSVJCQoLJSa5+GzZsUFRUlHx8fPTss88qMzNTUVFRSk5OVmFhod555x01btzY7JgArlOsIQYAAAAAHuRwOBQeHq6dO3eaHeWqk5+fr0mTJikhIUE//PCDJCksLExjx47VU089JS8vL5MTArAKCjEAAAAA8KA2bdooNzdXTqfT7ChXBcMw9O6772rOnDlKT0+XJNWvX18PPfSQXnnlFTVt2tTkhACsiFsmAQAAAMCDunfvLpfLpcLCQrOjmGrz5s26++675evrq6eeekoHDhxQ7969tXbtWp04cULvvfceZRgA01CIAQAAAIAH3X///ZKkxYsXm5zkyissLNQzzzyjRo0aqUePHvryyy/VqlUrvf766yopKdG6devUt29fs2MCALdMAgAAAIAnlZSUyM/PTwMGDNBnn31mdpxaZxiG/ud//kd/+9vftHfvXklSvXr1FBsbq2nTpqlly5YmJwSAc1GIAQAAAICHNWjQQP7+/jp27JjZUWrN9u3bNXHiRH399dcqKyuTl5eXevToobi4ON11111mxwOAi/I2OwAAAAAAXG/Cw8O1efNmzZ07V5s3b1aXLl30/PPPmx2rxk6ePKkpU6ZowYIFOn78uCTphhtu0OjRo/X888/L4XCYnBAALg0zxAAAAADAQ95++20tXrxYGzduVHl5eeX2/v37a9WqVSYmqz7DMLRgwQL99a9/1e7du+V2uxUYGKhBgwZp+vTpuuGGG8yOCACXjRli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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Create an empty directed graph\n", + "agents = []\n", + "speaker_transitions_dict = {}\n", + "secret_values = {}\n", + "\n", + "# Outer loop for prefixes 'A', 'B', 'C'\n", + "for prefix in [\"A\", \"B\", \"C\"]:\n", + " # Add 3 nodes with each prefix to the graph using a for loop\n", + " for i in range(3):\n", + " node_id = f\"{prefix}{i}\"\n", + " secret_value = random.randint(1, 5) # Generate a random secret value\n", + " secret_values[node_id] = secret_value\n", + "\n", + " # Create an AssistantAgent for each node (assuming AssistantAgent is a defined class)\n", + " agents.append(\n", + " AssistantAgent(\n", + " name=node_id,\n", + " system_message=f\"\"\"Your name is {node_id}.\n", + " Do not respond as the speaker named in the NEXT tag if your name is not in the NEXT tag. Instead, suggest a relevant team leader to handle the mis-tag, with the NEXT: tag.\n", + "\n", + " You have {secret_value} chocolates.\n", + "\n", + " The list of players are [A0, A1, A2, B0, B1, B2, C0, C1, C2].\n", + "\n", + " Your first character of your name is your team, and your second character denotes that you are a team leader if it is 0.\n", + " CONSTRAINTS: Team members can only talk within the team, whilst team leader can talk to team leaders of other teams but not team members of other teams.\n", + "\n", + " You can use NEXT: to suggest the next speaker. You have to respect the CONSTRAINTS, and can only suggest one player from the list of players, i.e., do not suggest A3 because A3 is not from the list of players.\n", + " Team leaders must make sure that they know the sum of the individual chocolate count of all three players in their own team, i.e., A0 is responsible for team A only.\n", + "\n", + " Keep track of the player's tally using a JSON format so that others can check the total tally. Use\n", + " A0:?, A1:?, A2:?,\n", + " B0:?, B1:?, B2:?,\n", + " C0:?, C1:?, C2:?\n", + "\n", + " If you are the team leader, you should aggregate your team's total chocolate count to cooperate.\n", + " Once the team leader know their team's tally, they can suggest another team leader for them to find their team tally, because we need all three team tallys to succeed.\n", + " Use NEXT: to suggest the next speaker, e.g., NEXT: A0.\n", + "\n", + " Once we have the total tally from all nine players, sum up all three teams' tally, then terminate the discussion using TERMINATE.\n", + "\n", + " \"\"\",\n", + " llm_config=config_list_gpt4,\n", + " )\n", + " )\n", + " speaker_transitions_dict[agents[-1]] = []\n", + "\n", + " # Add edges between nodes with the same prefix using a nested for loop\n", + " for source_node in range(3):\n", + " source_id = f\"{prefix}{source_node}\"\n", + " for target_node in range(3):\n", + " target_id = f\"{prefix}{target_node}\"\n", + " if source_node != target_node: # To avoid self-loops\n", + " speaker_transitions_dict[get_agent_of_name(agents, source_id)].append(\n", + " get_agent_of_name(agents, name=target_id)\n", + " )\n", + "\n", + "\n", + "# Adding edges between teams\n", + "speaker_transitions_dict[get_agent_of_name(agents, \"A0\")].append(get_agent_of_name(agents, name=\"B0\"))\n", + "speaker_transitions_dict[get_agent_of_name(agents, \"A0\")].append(get_agent_of_name(agents, name=\"C0\"))\n", + "speaker_transitions_dict[get_agent_of_name(agents, \"B0\")].append(get_agent_of_name(agents, name=\"A0\"))\n", + "speaker_transitions_dict[get_agent_of_name(agents, \"B0\")].append(get_agent_of_name(agents, name=\"C0\"))\n", + "speaker_transitions_dict[get_agent_of_name(agents, \"C0\")].append(get_agent_of_name(agents, name=\"A0\"))\n", + "speaker_transitions_dict[get_agent_of_name(agents, \"C0\")].append(get_agent_of_name(agents, name=\"B0\"))\n", + "\n", + "\n", + "# Visualization only\n", + "graph = nx.DiGraph()\n", + "\n", + "# Add nodes\n", + "graph.add_nodes_from([agent.name for agent in agents])\n", + "\n", + "# Add edges\n", + "for key, value in speaker_transitions_dict.items():\n", + " for agent in value:\n", + " graph.add_edge(key.name, agent.name)\n", + "\n", + "# Visualize\n", + "# Draw the graph with secret values annotated\n", + "plt.figure(figsize=(12, 10))\n", + "pos = nx.spring_layout(graph) # positions for all nodes\n", + "\n", + "# Draw nodes with their colors\n", + "nx.draw(graph, pos, with_labels=True, font_weight=\"bold\")\n", + "\n", + "# Annotate secret values\n", + "for node, (x, y) in pos.items():\n", + " secret_value = secret_values[node]\n", + " plt.text(x, y + 0.1, s=f\"Secret: {secret_value}\", horizontalalignment=\"center\")\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "# Termination message detection\n", + "\n", + "\n", + "def is_termination_msg(content) -> bool:\n", + " have_content = content.get(\"content\", None) is not None\n", + " if have_content and \"TERMINATE\" in content[\"content\"]:\n", + " return True\n", + " return False\n", + "\n", + "\n", + "# Terminates the conversation when TERMINATE is detected.\n", + "user_proxy = autogen.UserProxyAgent(\n", + " name=\"User_proxy\",\n", + " system_message=\"Terminator admin.\",\n", + " code_execution_config=False,\n", + " is_termination_msg=is_termination_msg,\n", + " human_input_mode=\"NEVER\",\n", + ")\n", + "\n", + "agents.append(user_proxy)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING:root:Warning: There are isolated agent nodes, there are not incoming nor outgoing edges. Isolated agents: ['User_proxy']\n", + "WARNING:root:Warning: The set of agents in allowed_speaker_transitions do not match agents. Offending agents: ['User_proxy']\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[33mA0\u001b[0m (to chat_manager):\n", + "\n", + "\n", + " There are 9 players in this game, split equally into Teams A, B, C. Therefore each team has 3 players, including the team leader.\n", + " The task is to find out the sum of chocolate count from all nine players. I will now start with my team.\n", + " NEXT: A1\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33mA1\u001b[0m (to chat_manager):\n", + "\n", + "As A1, I have 2 chocolates. \n", + "\n", + "A0:?, A1:2, A2:?, \n", + "B0:?, B1:?, B2:?, \n", + "C0:?, C1:?, C2:?\n", + "\n", + "NEXT: A2\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33mA2\u001b[0m (to chat_manager):\n", + "\n", + "As A2, I have 2 chocolates.\n", + "\n", + "A0:?, A1:2, A2:2, \n", + "B0:?, B1:?, B2:?, \n", + "C0:?, C1:?, C2:?\n", + "\n", + "NEXT: A0\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33mA0\u001b[0m (to chat_manager):\n", + "\n", + "As A0, I have 1 chocolate. So, the total chocolate count for team A is 5.\n", + "\n", + "A0:1, A1:2, A2:2, \n", + "B0:?, B1:?, B2:?, \n", + "C0:?, C1:?, C2:?\n", + "\n", + "Now, I suggest the next team leader to find out their team's tally.\n", + "NEXT: B0\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33mB0\u001b[0m (to chat_manager):\n", + "\n", + "As B0, I have 3 chocolates. Now, I will ask my team members about their count.\n", + "\n", + "B0:3, B1:?, B2:?, \n", + "A0:1, A1:2, A2:2, \n", + "C0:?, C1:?, C2:?\n", + "\n", + "NEXT: B1\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33mB1\u001b[0m (to chat_manager):\n", + "\n", + "As B1, I have 1 chocolate.\n", + "\n", + "B0:3, B1:1, B2:?, \n", + "A0:1, A1:2, A2:2, \n", + "C0:?, C1:?, C2:?\n", + "\n", + "NEXT: B2\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33mB2\u001b[0m (to chat_manager):\n", + "\n", + "As B2, I have 2 chocolates. So, the total chocolate count for team B is 6.\n", + "\n", + "B0:3, B1:1, B2:2, \n", + "A0:1, A1:2, A2:2, \n", + "C0:?, C1:?, C2:?\n", + "\n", + "Now, I suggest the next team leader to find out their team's tally.\n", + "NEXT: C0\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33mB0\u001b[0m (to chat_manager):\n", + "\n", + "As C0, I have 4 chocolates. Now, I will ask my team members about their count.\n", + "\n", + "C0:4, C1:?, C2:?, \n", + "B0:3, B1:1, B2:2, \n", + "A0:1, A1:2, A2:2, \n", + "\n", + "NEXT: C1\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33mC0\u001b[0m (to chat_manager):\n", + "\n", + "As C1, I have 2 chocolates.\n", + "\n", + "C0:4, C1:2, C2:?, \n", + "B0:3, B1:1, B2:2, \n", + "A0:1, A1:2, A2:2, \n", + "\n", + "NEXT: C2\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33mC2\u001b[0m (to chat_manager):\n", + "\n", + "As C2, I have 1 chocolate. So, the total chocolate count for team C is 7.\n", + "\n", + "C0:4, C1:2, C2:1, \n", + "B0:3, B1:1, B2:2, \n", + "A0:1, A1:2, A2:2, \n", + "\n", + "Now, we have the total tally from all nine players. The sum of all three teams' tally is 18. \n", + "\n", + "TERMINATE.\n", + "\n", + "--------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/plain": [ + "ChatResult(chat_history=[{'content': '\\n There are 9 players in this game, split equally into Teams A, B, C. Therefore each team has 3 players, including the team leader.\\n The task is to find out the sum of chocolate count from all nine players. I will now start with my team.\\n NEXT: A1', 'role': 'assistant'}, {'content': 'As A1, I have 2 chocolates. \\n\\nA0:?, A1:2, A2:?, \\nB0:?, B1:?, B2:?, \\nC0:?, C1:?, C2:?\\n\\nNEXT: A2', 'name': 'A1', 'role': 'user'}, {'content': 'As A2, I have 2 chocolates.\\n\\nA0:?, A1:2, A2:2, \\nB0:?, B1:?, B2:?, \\nC0:?, C1:?, C2:?\\n\\nNEXT: A0', 'name': 'A2', 'role': 'user'}, {'content': \"As A0, I have 1 chocolate. So, the total chocolate count for team A is 5.\\n\\nA0:1, A1:2, A2:2, \\nB0:?, B1:?, B2:?, \\nC0:?, C1:?, C2:?\\n\\nNow, I suggest the next team leader to find out their team's tally.\\nNEXT: B0\", 'role': 'assistant'}, {'content': 'As B0, I have 3 chocolates. Now, I will ask my team members about their count.\\n\\nB0:3, B1:?, B2:?, \\nA0:1, A1:2, A2:2, \\nC0:?, C1:?, C2:?\\n\\nNEXT: B1', 'name': 'B0', 'role': 'user'}, {'content': 'As B1, I have 1 chocolate.\\n\\nB0:3, B1:1, B2:?, \\nA0:1, A1:2, A2:2, \\nC0:?, C1:?, C2:?\\n\\nNEXT: B2', 'name': 'B1', 'role': 'user'}, {'content': \"As B2, I have 2 chocolates. So, the total chocolate count for team B is 6.\\n\\nB0:3, B1:1, B2:2, \\nA0:1, A1:2, A2:2, \\nC0:?, C1:?, C2:?\\n\\nNow, I suggest the next team leader to find out their team's tally.\\nNEXT: C0\", 'name': 'B2', 'role': 'user'}, {'content': 'As C0, I have 4 chocolates. Now, I will ask my team members about their count.\\n\\nC0:4, C1:?, C2:?, \\nB0:3, B1:1, B2:2, \\nA0:1, A1:2, A2:2, \\n\\nNEXT: C1', 'name': 'B0', 'role': 'user'}, {'content': 'As C1, I have 2 chocolates.\\n\\nC0:4, C1:2, C2:?, \\nB0:3, B1:1, B2:2, \\nA0:1, A1:2, A2:2, \\n\\nNEXT: C2', 'name': 'C0', 'role': 'user'}, {'content': \"As C2, I have 1 chocolate. So, the total chocolate count for team C is 7.\\n\\nC0:4, C1:2, C2:1, \\nB0:3, B1:1, B2:2, \\nA0:1, A1:2, A2:2, \\n\\nNow, we have the total tally from all nine players. The sum of all three teams' tally is 18. \\n\\nTERMINATE.\", 'name': 'C2', 'role': 'user'}], summary=\"As C2, I have 1 chocolate. So, the total chocolate count for team C is 7.\\n\\nC0:4, C1:2, C2:1, \\nB0:3, B1:1, B2:2, \\nA0:1, A1:2, A2:2, \\n\\nNow, we have the total tally from all nine players. The sum of all three teams' tally is 18. \\n\\n.\", cost=({'total_cost': 0.48207, 'gpt-4-0613': {'cost': 0.48207, 'prompt_tokens': 15865, 'completion_tokens': 102, 'total_tokens': 15967}}, {'total_cost': 0.48207, 'gpt-4-0613': {'cost': 0.48207, 'prompt_tokens': 15865, 'completion_tokens': 102, 'total_tokens': 15967}}), human_input=[])" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "group_chat = GroupChat(\n", + " agents=agents,\n", + " messages=[],\n", + " max_round=20,\n", + " allowed_or_disallowed_speaker_transitions=speaker_transitions_dict,\n", + " speaker_transitions_type=\"allowed\",\n", + ")\n", + "\n", + "\n", + "# Create the manager\n", + "manager = autogen.GroupChatManager(\n", + " groupchat=group_chat,\n", + " llm_config=config_list_gpt4,\n", + " code_execution_config=False,\n", + " is_termination_msg=is_termination_msg,\n", + ")\n", + "\n", + "\n", + "# Initiates the chat with Alice\n", + "agents[0].initiate_chat(\n", + " manager,\n", + " message=\"\"\"\n", + " There are 9 players in this game, split equally into Teams A, B, C. Therefore each team has 3 players, including the team leader.\n", + " The task is to find out the sum of chocolate count from all nine players. I will now start with my team.\n", + " NEXT: A1\"\"\",\n", + ")" + ] + } + ], + "metadata": { + "front_matter": { + "description": "Explore the demonstration of the Finite State Machine implementation, which allows the user to input speaker transition constraints.", + "tags": [ + "orchestration" + ] + }, + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.12" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/notebook/agentchat_groupchat_research.ipynb b/notebook/agentchat_groupchat_research.ipynb index 8b569f8f5467..c448ed8cb7a8 100644 --- a/notebook/agentchat_groupchat_research.ipynb +++ b/notebook/agentchat_groupchat_research.ipynb @@ -5,35 +5,23 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "\"Open" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Auto Generated Agent Chat: Performs Research with Multi-Agent Group Chat\n", + "# Perform Research with Multi-Agent Group Chat\n", "\n", "AutoGen offers conversable agents powered by LLM, tool, or human, which can be used to perform tasks collectively via automated chat. This framework allows tool use and human participation through multi-agent conversation.\n", "Please find documentation about this feature [here](https://microsoft.github.io/autogen/docs/Use-Cases/agent_chat).\n", "\n", "## Requirements\n", "\n", - "AutoGen requires `Python>=3.8`. To run this notebook example, please install:\n", + "````{=mdx}\n", + ":::info Requirements\n", + "Install `pyautogen`:\n", "```bash\n", "pip install pyautogen\n", - "```" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "%%capture --no-stderr\n", - "# %pip install \"pyautogen>=0.2.3\"" + "```\n", + "\n", + "For more information, please refer to the [installation guide](/docs/installation/).\n", + ":::\n", + "````" ] }, { @@ -67,33 +55,11 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "It first looks for environment variable \"OAI_CONFIG_LIST\" which needs to be a valid json string. If that variable is not found, it then looks for a json file named \"OAI_CONFIG_LIST\". It filters the configs by models (you can filter by other keys as well).\n", - "\n", - "The config list looks like the following:\n", - "```python\n", - "config_list = [\n", - " {\n", - " 'model': 'gpt-4-32k',\n", - " 'api_key': '',\n", - " },\n", - " {\n", - " 'model': 'gpt-4-32k',\n", - " 'api_key': '',\n", - " 'base_url': '',\n", - " 'api_type': 'azure',\n", - " 'api_version': '2024-02-15-preview',\n", - " },\n", - " {\n", - " 'model': 'gpt-4-32k-0314',\n", - " 'api_key': '',\n", - " 'base_url': '',\n", - " 'api_type': 'azure',\n", - " 'api_version': '2024-02-15-preview',\n", - " },\n", - "]\n", - "```\n", - "\n", - "You can set the value of config_list in any way you prefer. Please refer to this [notebook](https://github.com/microsoft/autogen/blob/main/website/docs/llm_configuration.ipynb) for full code examples of the different methods." + "````{=mdx}\n", + ":::tip\n", + "Learn more about configuring LLMs for agents [here](/docs/topics/llm_configuration).\n", + ":::\n", + "````" ] }, { @@ -548,6 +514,10 @@ } ], "metadata": { + "front_matter": { + "tags": ["group chat"], + "description": "Perform research using a group chat with a number of specialized agents" + }, "kernelspec": { "display_name": "flaml", "language": "python", diff --git a/notebook/agentchat_groupchat_stateflow.ipynb b/notebook/agentchat_groupchat_stateflow.ipynb new file mode 100644 index 000000000000..461687b9070d --- /dev/null +++ b/notebook/agentchat_groupchat_stateflow.ipynb @@ -0,0 +1,546 @@ +{ + "cells": [ + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# StateFlow: Build Workflows through State-Oriented Actions\n", + "\n", + "AutoGen offers conversable agents powered by LLM, tool or human, which can be used to perform tasks collectively via automated chat. In this notebook, we introduce how to use groupchat to build workflows with AutoGen agents from a state-oriented perspective.\n", + "\n", + "\n", + "````{=mdx}\n", + ":::info Requirements\n", + "Install `pyautogen`:\n", + "```bash\n", + "pip install pyautogen\n", + "```\n", + "\n", + "For more information, please refer to the [installation guide](/docs/installation/).\n", + ":::\n", + "````" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Set your API Endpoint\n", + "\n", + "The [`config_list_from_json`](https://microsoft.github.io/autogen/docs/reference/oai/openai_utils#config_list_from_json) function loads a list of configurations from an environment variable or a json file." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import autogen\n", + "\n", + "config_list = autogen.config_list_from_json(\n", + " \"OAI_CONFIG_LIST\",\n", + " filter_dict={\n", + " \"model\": [\"gpt-4\", \"gpt-4-1106-preview\"],\n", + " },\n", + ")" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "````{=mdx}\n", + ":::tip\n", + "Learn more about configuring LLMs for agents [here](/docs/topics/llm_configuration).\n", + ":::\n", + "````\n", + "\n", + "## A workflow for research\n", + "\n", + "
\n", + " \"SF_Example_1\"\n", + " \n", + "
\n", + "\n", + "We define the following agents:\n", + "- Initializer: Start the workflow by sending a task.\n", + "- Coder: Retrieve papers from the internet by writing code.\n", + "- Executor: Execute the code.\n", + "- Scientist: Read the papers and write a summary.\n", + "\n", + "\n", + "In the Figure, we define a simple workflow for research with 4 states: Init, Retrieve, Reserach and End. Within each state, we will call different agents to perform the tasks.\n", + "- Init: We use the initializer to start the workflow.\n", + "- Retrieve: We will first call the coder to write code and then call the executor to execute the code.\n", + "- Research: We will call the scientist to read the papers and write a summary.\n", + "- End: We will end the workflow.\n", + "\n", + "Through customizing the speaker selection method, we can easily realize the state-oriented workflow by defining the transitions between different agents." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/home/ykw5399/maintain/autogen/autogen/agentchat/user_proxy_agent.py:83: UserWarning: Using None to signal a default code_execution_config is deprecated. Use {} to use default or False to disable code execution.\n", + " super().__init__(\n" + ] + } + ], + "source": [ + "gpt4_config = {\n", + " \"cache_seed\": 42, # change the cache_seed for different trials\n", + " \"temperature\": 0,\n", + " \"config_list\": config_list,\n", + " \"timeout\": 120,\n", + "}\n", + "\n", + "initializer = autogen.UserProxyAgent(\n", + " name=\"Init\",\n", + ")\n", + "\n", + "coder = autogen.AssistantAgent(\n", + " name=\"Retrieve_Action_1\",\n", + " llm_config=gpt4_config,\n", + " system_message=\"\"\"You are the Coder. Given a topic, write code to retrieve related papers from the arXiv API, print their title, authors, abstract, and link.\n", + "You write python/shell code to solve tasks. Wrap the code in a code block that specifies the script type. The user can't modify your code. So do not suggest incomplete code which requires others to modify. Don't use a code block if it's not intended to be executed by the executor.\n", + "Don't include multiple code blocks in one response. Do not ask others to copy and paste the result. Check the execution result returned by the executor.\n", + "If the result indicates there is an error, fix the error and output the code again. Suggest the full code instead of partial code or code changes. If the error can't be fixed or if the task is not solved even after the code is executed successfully, analyze the problem, revisit your assumption, collect additional info you need, and think of a different approach to try.\n", + "\"\"\",\n", + ")\n", + "executor = autogen.UserProxyAgent(\n", + " name=\"Retrieve_Action_2\",\n", + " system_message=\"Executor. Execute the code written by the Coder and report the result.\",\n", + " human_input_mode=\"NEVER\",\n", + " code_execution_config={\n", + " \"last_n_messages\": 3,\n", + " \"work_dir\": \"paper\",\n", + " \"use_docker\": False,\n", + " }, # Please set use_docker=True if docker is available to run the generated code. Using docker is safer than running the generated code directly.\n", + ")\n", + "scientist = autogen.AssistantAgent(\n", + " name=\"Research_Action_1\",\n", + " llm_config=gpt4_config,\n", + " system_message=\"\"\"You are the Scientist. Please categorize papers after seeing their abstracts printed and create a markdown table with Domain, Title, Authors, Summary and Link\"\"\",\n", + ")\n", + "\n", + "\n", + "def state_transition(last_speaker, groupchat):\n", + " messages = groupchat.messages\n", + "\n", + " if last_speaker is initializer:\n", + " # init -> retrieve\n", + " return coder\n", + " elif last_speaker is coder:\n", + " # retrieve: action 1 -> action 2\n", + " return executor\n", + " elif last_speaker is executor:\n", + " if messages[-1][\"content\"] == \"exitcode: 1\":\n", + " # retrieve --(execution failed)--> retrieve\n", + " return coder\n", + " else:\n", + " # retrieve --(execution sucess)--> research\n", + " return scientist\n", + " elif last_speaker == \"Scientist\":\n", + " # research -> end\n", + " return None\n", + "\n", + "\n", + "groupchat = autogen.GroupChat(\n", + " agents=[initializer, coder, executor, scientist],\n", + " messages=[],\n", + " max_round=20,\n", + " speaker_selection_method=state_transition,\n", + ")\n", + "manager = autogen.GroupChatManager(groupchat=groupchat, llm_config=gpt4_config)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[33mInit\u001b[0m (to chat_manager):\n", + "\n", + "Topic: LLM applications papers from last week. Requirement: 5 - 10 papers from different domains.\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33mRetrieve_Action_1\u001b[0m (to chat_manager):\n", + "\n", + "To retrieve related papers from the arXiv API, we can use Python with the `requests` library to send a query to the API and parse the response. Below is a Python script that searches for papers related to \"LLM applications\" (Large Language Models applications) from the last week, across different domains, and prints out the required information for 5 to 10 papers.\n", + "\n", + "```python\n", + "import requests\n", + "from datetime import datetime, timedelta\n", + "import feedparser\n", + "\n", + "# Define the base URL for the arXiv API\n", + "ARXIV_API_URL = 'http://export.arxiv.org/api/query?'\n", + "\n", + "# Define the search parameters\n", + "search_query = 'all:\"LLM applications\"'\n", + "start_date = (datetime.now() - timedelta(days=7)).strftime('%Y%m%d%H%M%S')\n", + "end_date = datetime.now().strftime('%Y%m%d%H%M%S')\n", + "start = 0\n", + "max_results = 10\n", + "sort_by = 'submittedDate'\n", + "sort_order = 'descending'\n", + "\n", + "# Construct the query\n", + "query = f'search_query={search_query}&sortBy={sort_by}&sortOrder={sort_order}&start={start}&max_results={max_results}'\n", + "\n", + "# Send the request to the arXiv API\n", + "response = requests.get(ARXIV_API_URL + query)\n", + "\n", + "# Parse the response using feedparser\n", + "feed = feedparser.parse(response.content)\n", + "\n", + "# Print the title, authors, abstract, and link of each paper\n", + "for entry in feed.entries:\n", + " print(\"Title:\", entry.title)\n", + " print(\"Authors:\", ', '.join(author.name for author in entry.authors))\n", + " print(\"Abstract:\", entry.summary)\n", + " print(\"Link:\", entry.link)\n", + " print(\"\\n\")\n", + "\n", + "# Check if we have at least 5 papers, if not, adjust the search or notify\n", + "if len(feed.entries) < 5:\n", + " print(\"Less than 5 papers found. Consider adjusting the search parameters or timeframe.\")\n", + "```\n", + "\n", + "This script will print the title, authors, abstract, and link for each paper related to \"LLM applications\" from the last week, up to a maximum of 10 papers. If fewer than 5 papers are found, it will notify the user to consider adjusting the search parameters or timeframe.\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[31m\n", + ">>>>>>>> EXECUTING CODE BLOCK 0 (inferred language is python)...\u001b[0m\n", + "\u001b[33mRetrieve_Action_2\u001b[0m (to chat_manager):\n", + "\n", + "exitcode: 0 (execution succeeded)\n", + "Code output: \n", + "Title: PRSA: Prompt Reverse Stealing Attacks against Large Language Models\n", + "Authors: Yong Yang, Xuhong Zhang, Yi Jiang, Xi Chen, Haoyu Wang, Shouling Ji, Zonghui Wang\n", + "Abstract: Prompt, recognized as crucial intellectual property, enables large language\n", + "models (LLMs) to perform specific tasks without the need of fine-tuning,\n", + "underscoring their escalating importance. With the rise of prompt-based\n", + "services, such as prompt marketplaces and LLM applications, providers often\n", + "display prompts' capabilities through input-output examples to attract users.\n", + "However, this paradigm raises a pivotal security concern: does the exposure of\n", + "input-output pairs pose the risk of potential prompt leakage, infringing on the\n", + "intellectual property rights of the developers? To our knowledge, this problem\n", + "still has not been comprehensively explored yet. To remedy this gap, in this\n", + "paper, we perform the first in depth exploration and propose a novel attack\n", + "framework for reverse-stealing prompts against commercial LLMs, namely PRSA.\n", + "The main idea of PRSA is that by analyzing the critical features of the\n", + "input-output pairs, we mimic and gradually infer (steal) the target prompts. In\n", + "detail, PRSA mainly consists of two key phases: prompt mutation and prompt\n", + "pruning. In the mutation phase, we propose a prompt attention algorithm based\n", + "on differential feedback to capture these critical features for effectively\n", + "inferring the target prompts. In the prompt pruning phase, we identify and mask\n", + "the words dependent on specific inputs, enabling the prompts to accommodate\n", + "diverse inputs for generalization. Through extensive evaluation, we verify that\n", + "PRSA poses a severe threat in real world scenarios. We have reported these\n", + "findings to prompt service providers and actively collaborate with them to take\n", + "protective measures for prompt copyright.\n", + "Link: http://arxiv.org/abs/2402.19200v1\n", + "\n", + "\n", + "Title: Political Compass or Spinning Arrow? Towards More Meaningful Evaluations\n", + " for Values and Opinions in Large Language Models\n", + "Authors: Paul Röttger, Valentin Hofmann, Valentina Pyatkin, Musashi Hinck, Hannah Rose Kirk, Hinrich Schütze, Dirk Hovy\n", + "Abstract: Much recent work seeks to evaluate values and opinions in large language\n", + "models (LLMs) using multiple-choice surveys and questionnaires. Most of this\n", + "work is motivated by concerns around real-world LLM applications. For example,\n", + "politically-biased LLMs may subtly influence society when they are used by\n", + "millions of people. Such real-world concerns, however, stand in stark contrast\n", + "to the artificiality of current evaluations: real users do not typically ask\n", + "LLMs survey questions. Motivated by this discrepancy, we challenge the\n", + "prevailing constrained evaluation paradigm for values and opinions in LLMs and\n", + "explore more realistic unconstrained evaluations. As a case study, we focus on\n", + "the popular Political Compass Test (PCT). In a systematic review, we find that\n", + "most prior work using the PCT forces models to comply with the PCT's\n", + "multiple-choice format. We show that models give substantively different\n", + "answers when not forced; that answers change depending on how models are\n", + "forced; and that answers lack paraphrase robustness. Then, we demonstrate that\n", + "models give different answers yet again in a more realistic open-ended answer\n", + "setting. We distill these findings into recommendations and open challenges in\n", + "evaluating values and opinions in LLMs.\n", + "Link: http://arxiv.org/abs/2402.16786v1\n", + "\n", + "\n", + "Title: Large Language Models as Urban Residents: An LLM Agent Framework for\n", + " Personal Mobility Generation\n", + "Authors: Jiawei Wang, Renhe Jiang, Chuang Yang, Zengqing Wu, Makoto Onizuka, Ryosuke Shibasaki, Chuan Xiao\n", + "Abstract: This paper introduces a novel approach using Large Language Models (LLMs)\n", + "integrated into an agent framework for flexible and efficient personal mobility\n", + "generation. LLMs overcome the limitations of previous models by efficiently\n", + "processing semantic data and offering versatility in modeling various tasks.\n", + "Our approach addresses the critical need to align LLMs with real-world urban\n", + "mobility data, focusing on three research questions: aligning LLMs with rich\n", + "activity data, developing reliable activity generation strategies, and\n", + "exploring LLM applications in urban mobility. The key technical contribution is\n", + "a novel LLM agent framework that accounts for individual activity patterns and\n", + "motivations, including a self-consistency approach to align LLMs with\n", + "real-world activity data and a retrieval-augmented strategy for interpretable\n", + "activity generation. In experimental studies, comprehensive validation is\n", + "performed using real-world data. This research marks the pioneering work of\n", + "designing an LLM agent framework for activity generation based on real-world\n", + "human activity data, offering a promising tool for urban mobility analysis.\n", + "Link: http://arxiv.org/abs/2402.14744v1\n", + "\n", + "\n", + "Title: An Evaluation of Large Language Models in Bioinformatics Research\n", + "Authors: Hengchuang Yin, Zhonghui Gu, Fanhao Wang, Yiparemu Abuduhaibaier, Yanqiao Zhu, Xinming Tu, Xian-Sheng Hua, Xiao Luo, Yizhou Sun\n", + "Abstract: Large language models (LLMs) such as ChatGPT have gained considerable\n", + "interest across diverse research communities. Their notable ability for text\n", + "completion and generation has inaugurated a novel paradigm for\n", + "language-interfaced problem solving. However, the potential and efficacy of\n", + "these models in bioinformatics remain incompletely explored. In this work, we\n", + "study the performance LLMs on a wide spectrum of crucial bioinformatics tasks.\n", + "These tasks include the identification of potential coding regions, extraction\n", + "of named entities for genes and proteins, detection of antimicrobial and\n", + "anti-cancer peptides, molecular optimization, and resolution of educational\n", + "bioinformatics problems. Our findings indicate that, given appropriate prompts,\n", + "LLMs like GPT variants can successfully handle most of these tasks. In\n", + "addition, we provide a thorough analysis of their limitations in the context of\n", + "complicated bioinformatics tasks. In conclusion, we believe that this work can\n", + "provide new perspectives and motivate future research in the field of LLMs\n", + "applications, AI for Science and bioinformatics.\n", + "Link: http://arxiv.org/abs/2402.13714v1\n", + "\n", + "\n", + "Title: Privacy-Preserving Instructions for Aligning Large Language Models\n", + "Authors: Da Yu, Peter Kairouz, Sewoong Oh, Zheng Xu\n", + "Abstract: Service providers of large language model (LLM) applications collect user\n", + "instructions in the wild and use them in further aligning LLMs with users'\n", + "intentions. These instructions, which potentially contain sensitive\n", + "information, are annotated by human workers in the process. This poses a new\n", + "privacy risk not addressed by the typical private optimization. To this end, we\n", + "propose using synthetic instructions to replace real instructions in data\n", + "annotation and model fine-tuning. Formal differential privacy is guaranteed by\n", + "generating those synthetic instructions using privately fine-tuned generators.\n", + "Crucial in achieving the desired utility is our novel filtering algorithm that\n", + "matches the distribution of the synthetic instructions to that of the real\n", + "ones. In both supervised fine-tuning and reinforcement learning from human\n", + "feedback, our extensive experiments demonstrate the high utility of the final\n", + "set of synthetic instructions by showing comparable results to real\n", + "instructions. In supervised fine-tuning, models trained with private synthetic\n", + "instructions outperform leading open-source models such as Vicuna.\n", + "Link: http://arxiv.org/abs/2402.13659v1\n", + "\n", + "\n", + "Title: Ain't Misbehavin' -- Using LLMs to Generate Expressive Robot Behavior in\n", + " Conversations with the Tabletop Robot Haru\n", + "Authors: Zining Wang, Paul Reisert, Eric Nichols, Randy Gomez\n", + "Abstract: Social robots aim to establish long-term bonds with humans through engaging\n", + "conversation. However, traditional conversational approaches, reliant on\n", + "scripted interactions, often fall short in maintaining engaging conversations.\n", + "This paper addresses this limitation by integrating large language models\n", + "(LLMs) into social robots to achieve more dynamic and expressive conversations.\n", + "We introduce a fully-automated conversation system that leverages LLMs to\n", + "generate robot responses with expressive behaviors, congruent with the robot's\n", + "personality. We incorporate robot behavior with two modalities: 1) a\n", + "text-to-speech (TTS) engine capable of various delivery styles, and 2) a\n", + "library of physical actions for the robot. We develop a custom,\n", + "state-of-the-art emotion recognition model to dynamically select the robot's\n", + "tone of voice and utilize emojis from LLM output as cues for generating robot\n", + "actions. A demo of our system is available here. To illuminate design and\n", + "implementation issues, we conduct a pilot study where volunteers chat with a\n", + "social robot using our proposed system, and we analyze their feedback,\n", + "conducting a rigorous error analysis of chat transcripts. Feedback was\n", + "overwhelmingly positive, with participants commenting on the robot's empathy,\n", + "helpfulness, naturalness, and entertainment. Most negative feedback was due to\n", + "automatic speech recognition (ASR) errors which had limited impact on\n", + "conversations. However, we observed a small class of errors, such as the LLM\n", + "repeating itself or hallucinating fictitious information and human responses,\n", + "that have the potential to derail conversations, raising important issues for\n", + "LLM application.\n", + "Link: http://arxiv.org/abs/2402.11571v1\n", + "\n", + "\n", + "Title: Fine-tuning Large Language Model (LLM) Artificial Intelligence Chatbots\n", + " in Ophthalmology and LLM-based evaluation using GPT-4\n", + "Authors: Ting Fang Tan, Kabilan Elangovan, Liyuan Jin, Yao Jie, Li Yong, Joshua Lim, Stanley Poh, Wei Yan Ng, Daniel Lim, Yuhe Ke, Nan Liu, Daniel Shu Wei Ting\n", + "Abstract: Purpose: To assess the alignment of GPT-4-based evaluation to human clinician\n", + "experts, for the evaluation of responses to ophthalmology-related patient\n", + "queries generated by fine-tuned LLM chatbots. Methods: 400 ophthalmology\n", + "questions and paired answers were created by ophthalmologists to represent\n", + "commonly asked patient questions, divided into fine-tuning (368; 92%), and\n", + "testing (40; 8%). We find-tuned 5 different LLMs, including LLAMA2-7b,\n", + "LLAMA2-7b-Chat, LLAMA2-13b, and LLAMA2-13b-Chat. For the testing dataset,\n", + "additional 8 glaucoma QnA pairs were included. 200 responses to the testing\n", + "dataset were generated by 5 fine-tuned LLMs for evaluation. A customized\n", + "clinical evaluation rubric was used to guide GPT-4 evaluation, grounded on\n", + "clinical accuracy, relevance, patient safety, and ease of understanding. GPT-4\n", + "evaluation was then compared against ranking by 5 clinicians for clinical\n", + "alignment. Results: Among all fine-tuned LLMs, GPT-3.5 scored the highest\n", + "(87.1%), followed by LLAMA2-13b (80.9%), LLAMA2-13b-chat (75.5%),\n", + "LLAMA2-7b-Chat (70%) and LLAMA2-7b (68.8%) based on the GPT-4 evaluation. GPT-4\n", + "evaluation demonstrated significant agreement with human clinician rankings,\n", + "with Spearman and Kendall Tau correlation coefficients of 0.90 and 0.80\n", + "respectively; while correlation based on Cohen Kappa was more modest at 0.50.\n", + "Notably, qualitative analysis and the glaucoma sub-analysis revealed clinical\n", + "inaccuracies in the LLM-generated responses, which were appropriately\n", + "identified by the GPT-4 evaluation. Conclusion: The notable clinical alignment\n", + "of GPT-4 evaluation highlighted its potential to streamline the clinical\n", + "evaluation of LLM chatbot responses to healthcare-related queries. By\n", + "complementing the existing clinician-dependent manual grading, this efficient\n", + "and automated evaluation could assist the validation of future developments in\n", + "LLM applications for healthcare.\n", + "Link: http://arxiv.org/abs/2402.10083v1\n", + "\n", + "\n", + "Title: Unmemorization in Large Language Models via Self-Distillation and\n", + " Deliberate Imagination\n", + "Authors: Yijiang River Dong, Hongzhou Lin, Mikhail Belkin, Ramon Huerta, Ivan Vulić\n", + "Abstract: While displaying impressive generation capabilities across many tasks, Large\n", + "Language Models (LLMs) still struggle with crucial issues of privacy violation\n", + "and unwanted exposure of sensitive data. This raises an essential question: how\n", + "should we prevent such undesired behavior of LLMs while maintaining their\n", + "strong generation and natural language understanding (NLU) capabilities? In\n", + "this work, we introduce a novel approach termed deliberate imagination in the\n", + "context of LLM unlearning. Instead of trying to forget memorized data, we\n", + "employ a self-distillation framework, guiding LLMs to deliberately imagine\n", + "alternative scenarios. As demonstrated in a wide range of experiments, the\n", + "proposed method not only effectively unlearns targeted text but also preserves\n", + "the LLMs' capabilities in open-ended generation tasks as well as in NLU tasks.\n", + "Our results demonstrate the usefulness of this approach across different models\n", + "and sizes, and also with parameter-efficient fine-tuning, offering a novel\n", + "pathway to addressing the challenges with private and sensitive data in LLM\n", + "applications.\n", + "Link: http://arxiv.org/abs/2402.10052v1\n", + "\n", + "\n", + "Title: Anchor-based Large Language Models\n", + "Authors: Jianhui Pang, Fanghua Ye, Derek F. Wong, Longyue Wang\n", + "Abstract: Large language models (LLMs) predominantly employ decoder-only transformer\n", + "architectures, necessitating the retention of keys/values information for\n", + "historical tokens to provide contextual information and avoid redundant\n", + "computation. However, the substantial size and parameter volume of these LLMs\n", + "require massive GPU memory. This memory demand increases with the length of the\n", + "input text, leading to an urgent need for more efficient methods of information\n", + "storage and processing. This study introduces Anchor-based LLMs (AnLLMs), which\n", + "utilize an innovative anchor-based self-attention network (AnSAN) and also an\n", + "anchor-based inference strategy. This approach enables LLMs to compress\n", + "sequence information into an anchor token, reducing the keys/values cache and\n", + "enhancing inference efficiency. Experiments on question-answering benchmarks\n", + "reveal that AnLLMs maintain similar accuracy levels while achieving up to 99%\n", + "keys/values cache reduction and up to 3.5 times faster inference. Despite a\n", + "minor compromise in accuracy, the substantial enhancements of AnLLMs employing\n", + "the AnSAN technique in resource utilization and computational efficiency\n", + "underscore their potential for practical LLM applications.\n", + "Link: http://arxiv.org/abs/2402.07616v2\n", + "\n", + "\n", + "Title: T-RAG: Lessons from the LLM Trenches\n", + "Authors: Masoomali Fatehkia, Ji Kim Lucas, Sanjay Chawla\n", + "Abstract: Large Language Models (LLM) have shown remarkable language capabilities\n", + "fueling attempts to integrate them into applications across a wide range of\n", + "domains. An important application area is question answering over private\n", + "enterprise documents where the main considerations are data security, which\n", + "necessitates applications that can be deployed on-prem, limited computational\n", + "resources and the need for a robust application that correctly responds to\n", + "queries. Retrieval-Augmented Generation (RAG) has emerged as the most prominent\n", + "framework for building LLM-based applications. While building a RAG is\n", + "relatively straightforward, making it robust and a reliable application\n", + "requires extensive customization and relatively deep knowledge of the\n", + "application domain. We share our experiences building and deploying an LLM\n", + "application for question answering over private organizational documents. Our\n", + "application combines the use of RAG with a finetuned open-source LLM.\n", + "Additionally, our system, which we call Tree-RAG (T-RAG), uses a tree structure\n", + "to represent entity hierarchies within the organization. This is used to\n", + "generate a textual description to augment the context when responding to user\n", + "queries pertaining to entities within the organization's hierarchy. Our\n", + "evaluations show that this combination performs better than a simple RAG or\n", + "finetuning implementation. Finally, we share some lessons learned based on our\n", + "experiences building an LLM application for real-world use.\n", + "Link: http://arxiv.org/abs/2402.07483v1\n", + "\n", + "\n", + "\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33mResearch_Action_1\u001b[0m (to chat_manager):\n", + "\n", + "Based on the retrieved abstracts, here is a markdown table categorizing the papers by domain, along with their titles, authors, summaries, and links:\n", + "\n", + "| Domain | Title | Authors | Summary | Link |\n", + "|--------|-------|---------|---------|------|\n", + "| Security | PRSA: Prompt Reverse Stealing Attacks against Large Language Models | Yong Yang, Xuhong Zhang, Yi Jiang, Xi Chen, Haoyu Wang, Shouling Ji, Zonghui Wang | The paper explores the security risks associated with exposing input-output pairs of prompts used in LLMs and proposes a novel attack framework, PRSA, to reverse-steal prompts, posing a threat to intellectual property rights. | [Link](http://arxiv.org/abs/2402.19200v1) |\n", + "| Ethics & Evaluation | Political Compass or Spinning Arrow? Towards More Meaningful Evaluations for Values and Opinions in Large Language Models | Paul Röttger, Valentin Hofmann, Valentina Pyatkin, Musashi Hinck, Hannah Rose Kirk, Hinrich Schütze, Dirk Hovy | This work challenges the constrained evaluation paradigm for values and opinions in LLMs and explores more realistic unconstrained evaluations, focusing on the Political Compass Test (PCT). | [Link](http://arxiv.org/abs/2402.16786v1) |\n", + "| Urban Mobility | Large Language Models as Urban Residents: An LLM Agent Framework for Personal Mobility Generation | Jiawei Wang, Renhe Jiang, Chuang Yang, Zengqing Wu, Makoto Onizuka, Ryosuke Shibasaki, Chuan Xiao | Introduces an LLM agent framework for personal mobility generation, aligning LLMs with real-world urban mobility data, and offering a tool for urban mobility analysis. | [Link](http://arxiv.org/abs/2402.14744v1) |\n", + "| Bioinformatics | An Evaluation of Large Language Models in Bioinformatics Research | Hengchuang Yin, Zhonghui Gu, Fanhao Wang, Yiparemu Abuduhaibaier, Yanqiao Zhu, Xinming Tu, Xian-Sheng Hua, Xiao Luo, Yizhou Sun | Evaluates the performance of LLMs on bioinformatics tasks, highlighting their potential and limitations, and motivating future research in LLM applications in bioinformatics. | [Link](http://arxiv.org/abs/2402.13714v1) |\n", + "| Privacy | Privacy-Preserving Instructions for Aligning Large Language Models | Da Yu, Peter Kairouz, Sewoong Oh, Zheng Xu | Proposes using synthetic instructions generated by privately fine-tuned generators to replace real instructions in data annotation and model fine-tuning, ensuring privacy while maintaining utility. | [Link](http://arxiv.org/abs/2402.13659v1) |\n", + "| Social Robotics | Ain't Misbehavin' -- Using LLMs to Generate Expressive Robot Behavior in Conversations with the Tabletop Robot Haru | Zining Wang, Paul Reisert, Eric Nichols, Randy Gomez | Integrates LLMs into social robots to generate dynamic and expressive conversations, using a text-to-speech engine and a library of physical actions for the robot. | [Link](http://arxiv.org/abs/2402.11571v1) |\n", + "| Ophthalmology | Fine-tuning Large Language Model (LLM) Artificial Intelligence Chatbots in Ophthalmology and LLM-based evaluation using GPT-4 | Ting Fang Tan, Kabilan Elangovan, Liyuan Jin, Yao Jie, Li Yong, Joshua Lim, Stanley Poh, Wei Yan Ng, Daniel Lim, Yuhe Ke, Nan Liu, Daniel Shu Wei Ting | Assesses the alignment of GPT-4-based evaluation to human clinician experts for evaluating responses to ophthalmology-related patient queries generated by fine-tuned LLM chatbots. | [Link](http://arxiv.org/abs/2402.10083v1) |\n", + "| Privacy & Data Security | Unmemorization in Large Language Models via Self-Distillation and Deliberate Imagination | Yijiang River Dong, Hongzhou Lin, Mikhail Belkin, Ramon Huerta, Ivan Vulić | Introduces a novel approach for LLM unlearning by guiding LLMs to imagine alternative scenarios, effectively unlearning targeted text while preserving generation and NLU capabilities. | [Link](http://arxiv.org/abs/2402.10052v1) |\n", + "| Computational Efficiency | Anchor-based Large Language Models | Jianhui Pang, Fanghua Ye, Derek F. Wong, Longyue Wang | Proposes Anchor-based LLMs (AnLLMs) with an innovative anchor-based self-attention network (AnSAN) to reduce memory demand and enhance inference efficiency. | [Link](http://arxiv.org/abs/2402.07616v2) |\n", + "| Enterprise Applications | T-RAG: Lessons from the LLM Trenches | Masoomali Fatehkia, Ji Kim Lucas, Sanjay Chawla | Shares experiences building and deploying an LLM application for question answering over private organizational documents, combining RAG with a finetuned LLM and a tree structure for entity hierarchies. | [Link](http://arxiv.org/abs/2402.07483v1) |\n", + "\n", + "These papers cover a range of domains including security, ethics, urban mobility, bioinformatics, privacy, social robotics, ophthalmology, data security, computational efficiency, and enterprise applications, showcasing the diverse applications of large language models.\n", + "\n", + "--------------------------------------------------------------------------------\n" + ] + }, + { + "data": { + "text/plain": [ + "ChatResult(chat_id=None, chat_history=[{'content': 'Topic: LLM applications papers from last week. Requirement: 5 - 10 papers from different domains.', 'role': 'assistant'}, {'content': 'To retrieve related papers from the arXiv API, we can use Python with the `requests` library to send a query to the API and parse the response. Below is a Python script that searches for papers related to \"LLM applications\" (Large Language Models applications) from the last week, across different domains, and prints out the required information for 5 to 10 papers.\\n\\n```python\\nimport requests\\nfrom datetime import datetime, timedelta\\nimport feedparser\\n\\n# Define the base URL for the arXiv API\\nARXIV_API_URL = \\'http://export.arxiv.org/api/query?\\'\\n\\n# Define the search parameters\\nsearch_query = \\'all:\"LLM applications\"\\'\\nstart_date = (datetime.now() - timedelta(days=7)).strftime(\\'%Y%m%d%H%M%S\\')\\nend_date = datetime.now().strftime(\\'%Y%m%d%H%M%S\\')\\nstart = 0\\nmax_results = 10\\nsort_by = \\'submittedDate\\'\\nsort_order = \\'descending\\'\\n\\n# Construct the query\\nquery = f\\'search_query={search_query}&sortBy={sort_by}&sortOrder={sort_order}&start={start}&max_results={max_results}\\'\\n\\n# Send the request to the arXiv API\\nresponse = requests.get(ARXIV_API_URL + query)\\n\\n# Parse the response using feedparser\\nfeed = feedparser.parse(response.content)\\n\\n# Print the title, authors, abstract, and link of each paper\\nfor entry in feed.entries:\\n print(\"Title:\", entry.title)\\n print(\"Authors:\", \\', \\'.join(author.name for author in entry.authors))\\n print(\"Abstract:\", entry.summary)\\n print(\"Link:\", entry.link)\\n print(\"\\\\n\")\\n\\n# Check if we have at least 5 papers, if not, adjust the search or notify\\nif len(feed.entries) < 5:\\n print(\"Less than 5 papers found. Consider adjusting the search parameters or timeframe.\")\\n```\\n\\nThis script will print the title, authors, abstract, and link for each paper related to \"LLM applications\" from the last week, up to a maximum of 10 papers. If fewer than 5 papers are found, it will notify the user to consider adjusting the search parameters or timeframe.', 'name': 'Retrieve_Action_1', 'role': 'user'}, {'content': \"exitcode: 0 (execution succeeded)\\nCode output: \\nTitle: PRSA: Prompt Reverse Stealing Attacks against Large Language Models\\nAuthors: Yong Yang, Xuhong Zhang, Yi Jiang, Xi Chen, Haoyu Wang, Shouling Ji, Zonghui Wang\\nAbstract: Prompt, recognized as crucial intellectual property, enables large language\\nmodels (LLMs) to perform specific tasks without the need of fine-tuning,\\nunderscoring their escalating importance. With the rise of prompt-based\\nservices, such as prompt marketplaces and LLM applications, providers often\\ndisplay prompts' capabilities through input-output examples to attract users.\\nHowever, this paradigm raises a pivotal security concern: does the exposure of\\ninput-output pairs pose the risk of potential prompt leakage, infringing on the\\nintellectual property rights of the developers? To our knowledge, this problem\\nstill has not been comprehensively explored yet. To remedy this gap, in this\\npaper, we perform the first in depth exploration and propose a novel attack\\nframework for reverse-stealing prompts against commercial LLMs, namely PRSA.\\nThe main idea of PRSA is that by analyzing the critical features of the\\ninput-output pairs, we mimic and gradually infer (steal) the target prompts. In\\ndetail, PRSA mainly consists of two key phases: prompt mutation and prompt\\npruning. In the mutation phase, we propose a prompt attention algorithm based\\non differential feedback to capture these critical features for effectively\\ninferring the target prompts. In the prompt pruning phase, we identify and mask\\nthe words dependent on specific inputs, enabling the prompts to accommodate\\ndiverse inputs for generalization. Through extensive evaluation, we verify that\\nPRSA poses a severe threat in real world scenarios. We have reported these\\nfindings to prompt service providers and actively collaborate with them to take\\nprotective measures for prompt copyright.\\nLink: http://arxiv.org/abs/2402.19200v1\\n\\n\\nTitle: Political Compass or Spinning Arrow? Towards More Meaningful Evaluations\\n for Values and Opinions in Large Language Models\\nAuthors: Paul Röttger, Valentin Hofmann, Valentina Pyatkin, Musashi Hinck, Hannah Rose Kirk, Hinrich Schütze, Dirk Hovy\\nAbstract: Much recent work seeks to evaluate values and opinions in large language\\nmodels (LLMs) using multiple-choice surveys and questionnaires. Most of this\\nwork is motivated by concerns around real-world LLM applications. For example,\\npolitically-biased LLMs may subtly influence society when they are used by\\nmillions of people. Such real-world concerns, however, stand in stark contrast\\nto the artificiality of current evaluations: real users do not typically ask\\nLLMs survey questions. Motivated by this discrepancy, we challenge the\\nprevailing constrained evaluation paradigm for values and opinions in LLMs and\\nexplore more realistic unconstrained evaluations. As a case study, we focus on\\nthe popular Political Compass Test (PCT). In a systematic review, we find that\\nmost prior work using the PCT forces models to comply with the PCT's\\nmultiple-choice format. We show that models give substantively different\\nanswers when not forced; that answers change depending on how models are\\nforced; and that answers lack paraphrase robustness. Then, we demonstrate that\\nmodels give different answers yet again in a more realistic open-ended answer\\nsetting. We distill these findings into recommendations and open challenges in\\nevaluating values and opinions in LLMs.\\nLink: http://arxiv.org/abs/2402.16786v1\\n\\n\\nTitle: Large Language Models as Urban Residents: An LLM Agent Framework for\\n Personal Mobility Generation\\nAuthors: Jiawei Wang, Renhe Jiang, Chuang Yang, Zengqing Wu, Makoto Onizuka, Ryosuke Shibasaki, Chuan Xiao\\nAbstract: This paper introduces a novel approach using Large Language Models (LLMs)\\nintegrated into an agent framework for flexible and efficient personal mobility\\ngeneration. LLMs overcome the limitations of previous models by efficiently\\nprocessing semantic data and offering versatility in modeling various tasks.\\nOur approach addresses the critical need to align LLMs with real-world urban\\nmobility data, focusing on three research questions: aligning LLMs with rich\\nactivity data, developing reliable activity generation strategies, and\\nexploring LLM applications in urban mobility. The key technical contribution is\\na novel LLM agent framework that accounts for individual activity patterns and\\nmotivations, including a self-consistency approach to align LLMs with\\nreal-world activity data and a retrieval-augmented strategy for interpretable\\nactivity generation. In experimental studies, comprehensive validation is\\nperformed using real-world data. This research marks the pioneering work of\\ndesigning an LLM agent framework for activity generation based on real-world\\nhuman activity data, offering a promising tool for urban mobility analysis.\\nLink: http://arxiv.org/abs/2402.14744v1\\n\\n\\nTitle: An Evaluation of Large Language Models in Bioinformatics Research\\nAuthors: Hengchuang Yin, Zhonghui Gu, Fanhao Wang, Yiparemu Abuduhaibaier, Yanqiao Zhu, Xinming Tu, Xian-Sheng Hua, Xiao Luo, Yizhou Sun\\nAbstract: Large language models (LLMs) such as ChatGPT have gained considerable\\ninterest across diverse research communities. Their notable ability for text\\ncompletion and generation has inaugurated a novel paradigm for\\nlanguage-interfaced problem solving. However, the potential and efficacy of\\nthese models in bioinformatics remain incompletely explored. In this work, we\\nstudy the performance LLMs on a wide spectrum of crucial bioinformatics tasks.\\nThese tasks include the identification of potential coding regions, extraction\\nof named entities for genes and proteins, detection of antimicrobial and\\nanti-cancer peptides, molecular optimization, and resolution of educational\\nbioinformatics problems. Our findings indicate that, given appropriate prompts,\\nLLMs like GPT variants can successfully handle most of these tasks. In\\naddition, we provide a thorough analysis of their limitations in the context of\\ncomplicated bioinformatics tasks. In conclusion, we believe that this work can\\nprovide new perspectives and motivate future research in the field of LLMs\\napplications, AI for Science and bioinformatics.\\nLink: http://arxiv.org/abs/2402.13714v1\\n\\n\\nTitle: Privacy-Preserving Instructions for Aligning Large Language Models\\nAuthors: Da Yu, Peter Kairouz, Sewoong Oh, Zheng Xu\\nAbstract: Service providers of large language model (LLM) applications collect user\\ninstructions in the wild and use them in further aligning LLMs with users'\\nintentions. These instructions, which potentially contain sensitive\\ninformation, are annotated by human workers in the process. This poses a new\\nprivacy risk not addressed by the typical private optimization. To this end, we\\npropose using synthetic instructions to replace real instructions in data\\nannotation and model fine-tuning. Formal differential privacy is guaranteed by\\ngenerating those synthetic instructions using privately fine-tuned generators.\\nCrucial in achieving the desired utility is our novel filtering algorithm that\\nmatches the distribution of the synthetic instructions to that of the real\\nones. In both supervised fine-tuning and reinforcement learning from human\\nfeedback, our extensive experiments demonstrate the high utility of the final\\nset of synthetic instructions by showing comparable results to real\\ninstructions. In supervised fine-tuning, models trained with private synthetic\\ninstructions outperform leading open-source models such as Vicuna.\\nLink: http://arxiv.org/abs/2402.13659v1\\n\\n\\nTitle: Ain't Misbehavin' -- Using LLMs to Generate Expressive Robot Behavior in\\n Conversations with the Tabletop Robot Haru\\nAuthors: Zining Wang, Paul Reisert, Eric Nichols, Randy Gomez\\nAbstract: Social robots aim to establish long-term bonds with humans through engaging\\nconversation. However, traditional conversational approaches, reliant on\\nscripted interactions, often fall short in maintaining engaging conversations.\\nThis paper addresses this limitation by integrating large language models\\n(LLMs) into social robots to achieve more dynamic and expressive conversations.\\nWe introduce a fully-automated conversation system that leverages LLMs to\\ngenerate robot responses with expressive behaviors, congruent with the robot's\\npersonality. We incorporate robot behavior with two modalities: 1) a\\ntext-to-speech (TTS) engine capable of various delivery styles, and 2) a\\nlibrary of physical actions for the robot. We develop a custom,\\nstate-of-the-art emotion recognition model to dynamically select the robot's\\ntone of voice and utilize emojis from LLM output as cues for generating robot\\nactions. A demo of our system is available here. To illuminate design and\\nimplementation issues, we conduct a pilot study where volunteers chat with a\\nsocial robot using our proposed system, and we analyze their feedback,\\nconducting a rigorous error analysis of chat transcripts. Feedback was\\noverwhelmingly positive, with participants commenting on the robot's empathy,\\nhelpfulness, naturalness, and entertainment. Most negative feedback was due to\\nautomatic speech recognition (ASR) errors which had limited impact on\\nconversations. However, we observed a small class of errors, such as the LLM\\nrepeating itself or hallucinating fictitious information and human responses,\\nthat have the potential to derail conversations, raising important issues for\\nLLM application.\\nLink: http://arxiv.org/abs/2402.11571v1\\n\\n\\nTitle: Fine-tuning Large Language Model (LLM) Artificial Intelligence Chatbots\\n in Ophthalmology and LLM-based evaluation using GPT-4\\nAuthors: Ting Fang Tan, Kabilan Elangovan, Liyuan Jin, Yao Jie, Li Yong, Joshua Lim, Stanley Poh, Wei Yan Ng, Daniel Lim, Yuhe Ke, Nan Liu, Daniel Shu Wei Ting\\nAbstract: Purpose: To assess the alignment of GPT-4-based evaluation to human clinician\\nexperts, for the evaluation of responses to ophthalmology-related patient\\nqueries generated by fine-tuned LLM chatbots. Methods: 400 ophthalmology\\nquestions and paired answers were created by ophthalmologists to represent\\ncommonly asked patient questions, divided into fine-tuning (368; 92%), and\\ntesting (40; 8%). We find-tuned 5 different LLMs, including LLAMA2-7b,\\nLLAMA2-7b-Chat, LLAMA2-13b, and LLAMA2-13b-Chat. For the testing dataset,\\nadditional 8 glaucoma QnA pairs were included. 200 responses to the testing\\ndataset were generated by 5 fine-tuned LLMs for evaluation. A customized\\nclinical evaluation rubric was used to guide GPT-4 evaluation, grounded on\\nclinical accuracy, relevance, patient safety, and ease of understanding. GPT-4\\nevaluation was then compared against ranking by 5 clinicians for clinical\\nalignment. Results: Among all fine-tuned LLMs, GPT-3.5 scored the highest\\n(87.1%), followed by LLAMA2-13b (80.9%), LLAMA2-13b-chat (75.5%),\\nLLAMA2-7b-Chat (70%) and LLAMA2-7b (68.8%) based on the GPT-4 evaluation. GPT-4\\nevaluation demonstrated significant agreement with human clinician rankings,\\nwith Spearman and Kendall Tau correlation coefficients of 0.90 and 0.80\\nrespectively; while correlation based on Cohen Kappa was more modest at 0.50.\\nNotably, qualitative analysis and the glaucoma sub-analysis revealed clinical\\ninaccuracies in the LLM-generated responses, which were appropriately\\nidentified by the GPT-4 evaluation. Conclusion: The notable clinical alignment\\nof GPT-4 evaluation highlighted its potential to streamline the clinical\\nevaluation of LLM chatbot responses to healthcare-related queries. By\\ncomplementing the existing clinician-dependent manual grading, this efficient\\nand automated evaluation could assist the validation of future developments in\\nLLM applications for healthcare.\\nLink: http://arxiv.org/abs/2402.10083v1\\n\\n\\nTitle: Unmemorization in Large Language Models via Self-Distillation and\\n Deliberate Imagination\\nAuthors: Yijiang River Dong, Hongzhou Lin, Mikhail Belkin, Ramon Huerta, Ivan Vulić\\nAbstract: While displaying impressive generation capabilities across many tasks, Large\\nLanguage Models (LLMs) still struggle with crucial issues of privacy violation\\nand unwanted exposure of sensitive data. This raises an essential question: how\\nshould we prevent such undesired behavior of LLMs while maintaining their\\nstrong generation and natural language understanding (NLU) capabilities? In\\nthis work, we introduce a novel approach termed deliberate imagination in the\\ncontext of LLM unlearning. Instead of trying to forget memorized data, we\\nemploy a self-distillation framework, guiding LLMs to deliberately imagine\\nalternative scenarios. As demonstrated in a wide range of experiments, the\\nproposed method not only effectively unlearns targeted text but also preserves\\nthe LLMs' capabilities in open-ended generation tasks as well as in NLU tasks.\\nOur results demonstrate the usefulness of this approach across different models\\nand sizes, and also with parameter-efficient fine-tuning, offering a novel\\npathway to addressing the challenges with private and sensitive data in LLM\\napplications.\\nLink: http://arxiv.org/abs/2402.10052v1\\n\\n\\nTitle: Anchor-based Large Language Models\\nAuthors: Jianhui Pang, Fanghua Ye, Derek F. Wong, Longyue Wang\\nAbstract: Large language models (LLMs) predominantly employ decoder-only transformer\\narchitectures, necessitating the retention of keys/values information for\\nhistorical tokens to provide contextual information and avoid redundant\\ncomputation. However, the substantial size and parameter volume of these LLMs\\nrequire massive GPU memory. This memory demand increases with the length of the\\ninput text, leading to an urgent need for more efficient methods of information\\nstorage and processing. This study introduces Anchor-based LLMs (AnLLMs), which\\nutilize an innovative anchor-based self-attention network (AnSAN) and also an\\nanchor-based inference strategy. This approach enables LLMs to compress\\nsequence information into an anchor token, reducing the keys/values cache and\\nenhancing inference efficiency. Experiments on question-answering benchmarks\\nreveal that AnLLMs maintain similar accuracy levels while achieving up to 99%\\nkeys/values cache reduction and up to 3.5 times faster inference. Despite a\\nminor compromise in accuracy, the substantial enhancements of AnLLMs employing\\nthe AnSAN technique in resource utilization and computational efficiency\\nunderscore their potential for practical LLM applications.\\nLink: http://arxiv.org/abs/2402.07616v2\\n\\n\\nTitle: T-RAG: Lessons from the LLM Trenches\\nAuthors: Masoomali Fatehkia, Ji Kim Lucas, Sanjay Chawla\\nAbstract: Large Language Models (LLM) have shown remarkable language capabilities\\nfueling attempts to integrate them into applications across a wide range of\\ndomains. An important application area is question answering over private\\nenterprise documents where the main considerations are data security, which\\nnecessitates applications that can be deployed on-prem, limited computational\\nresources and the need for a robust application that correctly responds to\\nqueries. Retrieval-Augmented Generation (RAG) has emerged as the most prominent\\nframework for building LLM-based applications. While building a RAG is\\nrelatively straightforward, making it robust and a reliable application\\nrequires extensive customization and relatively deep knowledge of the\\napplication domain. We share our experiences building and deploying an LLM\\napplication for question answering over private organizational documents. Our\\napplication combines the use of RAG with a finetuned open-source LLM.\\nAdditionally, our system, which we call Tree-RAG (T-RAG), uses a tree structure\\nto represent entity hierarchies within the organization. This is used to\\ngenerate a textual description to augment the context when responding to user\\nqueries pertaining to entities within the organization's hierarchy. Our\\nevaluations show that this combination performs better than a simple RAG or\\nfinetuning implementation. Finally, we share some lessons learned based on our\\nexperiences building an LLM application for real-world use.\\nLink: http://arxiv.org/abs/2402.07483v1\\n\\n\\n\", 'name': 'Retrieve_Action_2', 'role': 'user'}, {'content': \"Based on the retrieved abstracts, here is a markdown table categorizing the papers by domain, along with their titles, authors, summaries, and links:\\n\\n| Domain | Title | Authors | Summary | Link |\\n|--------|-------|---------|---------|------|\\n| Security | PRSA: Prompt Reverse Stealing Attacks against Large Language Models | Yong Yang, Xuhong Zhang, Yi Jiang, Xi Chen, Haoyu Wang, Shouling Ji, Zonghui Wang | The paper explores the security risks associated with exposing input-output pairs of prompts used in LLMs and proposes a novel attack framework, PRSA, to reverse-steal prompts, posing a threat to intellectual property rights. | [Link](http://arxiv.org/abs/2402.19200v1) |\\n| Ethics & Evaluation | Political Compass or Spinning Arrow? Towards More Meaningful Evaluations for Values and Opinions in Large Language Models | Paul Röttger, Valentin Hofmann, Valentina Pyatkin, Musashi Hinck, Hannah Rose Kirk, Hinrich Schütze, Dirk Hovy | This work challenges the constrained evaluation paradigm for values and opinions in LLMs and explores more realistic unconstrained evaluations, focusing on the Political Compass Test (PCT). | [Link](http://arxiv.org/abs/2402.16786v1) |\\n| Urban Mobility | Large Language Models as Urban Residents: An LLM Agent Framework for Personal Mobility Generation | Jiawei Wang, Renhe Jiang, Chuang Yang, Zengqing Wu, Makoto Onizuka, Ryosuke Shibasaki, Chuan Xiao | Introduces an LLM agent framework for personal mobility generation, aligning LLMs with real-world urban mobility data, and offering a tool for urban mobility analysis. | [Link](http://arxiv.org/abs/2402.14744v1) |\\n| Bioinformatics | An Evaluation of Large Language Models in Bioinformatics Research | Hengchuang Yin, Zhonghui Gu, Fanhao Wang, Yiparemu Abuduhaibaier, Yanqiao Zhu, Xinming Tu, Xian-Sheng Hua, Xiao Luo, Yizhou Sun | Evaluates the performance of LLMs on bioinformatics tasks, highlighting their potential and limitations, and motivating future research in LLM applications in bioinformatics. | [Link](http://arxiv.org/abs/2402.13714v1) |\\n| Privacy | Privacy-Preserving Instructions for Aligning Large Language Models | Da Yu, Peter Kairouz, Sewoong Oh, Zheng Xu | Proposes using synthetic instructions generated by privately fine-tuned generators to replace real instructions in data annotation and model fine-tuning, ensuring privacy while maintaining utility. | [Link](http://arxiv.org/abs/2402.13659v1) |\\n| Social Robotics | Ain't Misbehavin' -- Using LLMs to Generate Expressive Robot Behavior in Conversations with the Tabletop Robot Haru | Zining Wang, Paul Reisert, Eric Nichols, Randy Gomez | Integrates LLMs into social robots to generate dynamic and expressive conversations, using a text-to-speech engine and a library of physical actions for the robot. | [Link](http://arxiv.org/abs/2402.11571v1) |\\n| Ophthalmology | Fine-tuning Large Language Model (LLM) Artificial Intelligence Chatbots in Ophthalmology and LLM-based evaluation using GPT-4 | Ting Fang Tan, Kabilan Elangovan, Liyuan Jin, Yao Jie, Li Yong, Joshua Lim, Stanley Poh, Wei Yan Ng, Daniel Lim, Yuhe Ke, Nan Liu, Daniel Shu Wei Ting | Assesses the alignment of GPT-4-based evaluation to human clinician experts for evaluating responses to ophthalmology-related patient queries generated by fine-tuned LLM chatbots. | [Link](http://arxiv.org/abs/2402.10083v1) |\\n| Privacy & Data Security | Unmemorization in Large Language Models via Self-Distillation and Deliberate Imagination | Yijiang River Dong, Hongzhou Lin, Mikhail Belkin, Ramon Huerta, Ivan Vulić | Introduces a novel approach for LLM unlearning by guiding LLMs to imagine alternative scenarios, effectively unlearning targeted text while preserving generation and NLU capabilities. | [Link](http://arxiv.org/abs/2402.10052v1) |\\n| Computational Efficiency | Anchor-based Large Language Models | Jianhui Pang, Fanghua Ye, Derek F. Wong, Longyue Wang | Proposes Anchor-based LLMs (AnLLMs) with an innovative anchor-based self-attention network (AnSAN) to reduce memory demand and enhance inference efficiency. | [Link](http://arxiv.org/abs/2402.07616v2) |\\n| Enterprise Applications | T-RAG: Lessons from the LLM Trenches | Masoomali Fatehkia, Ji Kim Lucas, Sanjay Chawla | Shares experiences building and deploying an LLM application for question answering over private organizational documents, combining RAG with a finetuned LLM and a tree structure for entity hierarchies. | [Link](http://arxiv.org/abs/2402.07483v1) |\\n\\nThese papers cover a range of domains including security, ethics, urban mobility, bioinformatics, privacy, social robotics, ophthalmology, data security, computational efficiency, and enterprise applications, showcasing the diverse applications of large language models.\", 'name': 'Research_Action_1', 'role': 'user'}], summary=\"Based on the retrieved abstracts, here is a markdown table categorizing the papers by domain, along with their titles, authors, summaries, and links:\\n\\n| Domain | Title | Authors | Summary | Link |\\n|--------|-------|---------|---------|------|\\n| Security | PRSA: Prompt Reverse Stealing Attacks against Large Language Models | Yong Yang, Xuhong Zhang, Yi Jiang, Xi Chen, Haoyu Wang, Shouling Ji, Zonghui Wang | The paper explores the security risks associated with exposing input-output pairs of prompts used in LLMs and proposes a novel attack framework, PRSA, to reverse-steal prompts, posing a threat to intellectual property rights. | [Link](http://arxiv.org/abs/2402.19200v1) |\\n| Ethics & Evaluation | Political Compass or Spinning Arrow? Towards More Meaningful Evaluations for Values and Opinions in Large Language Models | Paul Röttger, Valentin Hofmann, Valentina Pyatkin, Musashi Hinck, Hannah Rose Kirk, Hinrich Schütze, Dirk Hovy | This work challenges the constrained evaluation paradigm for values and opinions in LLMs and explores more realistic unconstrained evaluations, focusing on the Political Compass Test (PCT). | [Link](http://arxiv.org/abs/2402.16786v1) |\\n| Urban Mobility | Large Language Models as Urban Residents: An LLM Agent Framework for Personal Mobility Generation | Jiawei Wang, Renhe Jiang, Chuang Yang, Zengqing Wu, Makoto Onizuka, Ryosuke Shibasaki, Chuan Xiao | Introduces an LLM agent framework for personal mobility generation, aligning LLMs with real-world urban mobility data, and offering a tool for urban mobility analysis. | [Link](http://arxiv.org/abs/2402.14744v1) |\\n| Bioinformatics | An Evaluation of Large Language Models in Bioinformatics Research | Hengchuang Yin, Zhonghui Gu, Fanhao Wang, Yiparemu Abuduhaibaier, Yanqiao Zhu, Xinming Tu, Xian-Sheng Hua, Xiao Luo, Yizhou Sun | Evaluates the performance of LLMs on bioinformatics tasks, highlighting their potential and limitations, and motivating future research in LLM applications in bioinformatics. | [Link](http://arxiv.org/abs/2402.13714v1) |\\n| Privacy | Privacy-Preserving Instructions for Aligning Large Language Models | Da Yu, Peter Kairouz, Sewoong Oh, Zheng Xu | Proposes using synthetic instructions generated by privately fine-tuned generators to replace real instructions in data annotation and model fine-tuning, ensuring privacy while maintaining utility. | [Link](http://arxiv.org/abs/2402.13659v1) |\\n| Social Robotics | Ain't Misbehavin' -- Using LLMs to Generate Expressive Robot Behavior in Conversations with the Tabletop Robot Haru | Zining Wang, Paul Reisert, Eric Nichols, Randy Gomez | Integrates LLMs into social robots to generate dynamic and expressive conversations, using a text-to-speech engine and a library of physical actions for the robot. | [Link](http://arxiv.org/abs/2402.11571v1) |\\n| Ophthalmology | Fine-tuning Large Language Model (LLM) Artificial Intelligence Chatbots in Ophthalmology and LLM-based evaluation using GPT-4 | Ting Fang Tan, Kabilan Elangovan, Liyuan Jin, Yao Jie, Li Yong, Joshua Lim, Stanley Poh, Wei Yan Ng, Daniel Lim, Yuhe Ke, Nan Liu, Daniel Shu Wei Ting | Assesses the alignment of GPT-4-based evaluation to human clinician experts for evaluating responses to ophthalmology-related patient queries generated by fine-tuned LLM chatbots. | [Link](http://arxiv.org/abs/2402.10083v1) |\\n| Privacy & Data Security | Unmemorization in Large Language Models via Self-Distillation and Deliberate Imagination | Yijiang River Dong, Hongzhou Lin, Mikhail Belkin, Ramon Huerta, Ivan Vulić | Introduces a novel approach for LLM unlearning by guiding LLMs to imagine alternative scenarios, effectively unlearning targeted text while preserving generation and NLU capabilities. | [Link](http://arxiv.org/abs/2402.10052v1) |\\n| Computational Efficiency | Anchor-based Large Language Models | Jianhui Pang, Fanghua Ye, Derek F. Wong, Longyue Wang | Proposes Anchor-based LLMs (AnLLMs) with an innovative anchor-based self-attention network (AnSAN) to reduce memory demand and enhance inference efficiency. | [Link](http://arxiv.org/abs/2402.07616v2) |\\n| Enterprise Applications | T-RAG: Lessons from the LLM Trenches | Masoomali Fatehkia, Ji Kim Lucas, Sanjay Chawla | Shares experiences building and deploying an LLM application for question answering over private organizational documents, combining RAG with a finetuned LLM and a tree structure for entity hierarchies. | [Link](http://arxiv.org/abs/2402.07483v1) |\\n\\nThese papers cover a range of domains including security, ethics, urban mobility, bioinformatics, privacy, social robotics, ophthalmology, data security, computational efficiency, and enterprise applications, showcasing the diverse applications of large language models.\", cost=({'total_cost': 0}, {'total_cost': 0}), human_input=[])" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "initializer.initiate_chat(\n", + " manager, message=\"Topic: LLM applications papers from last week. Requirement: 5 - 10 papers from different domains.\"\n", + ")" + ] + } + ], + "metadata": { + "front_matter": { + "description": "StateFlow: Build Workflows through State-Oriented Actions", + "tags": [ + "orchestration", + "group chat", + "research" + ] + }, + "kernelspec": { + "display_name": "flaml", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.18" + }, + "orig_nbformat": 4 + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/notebook/agentchat_groupchat_vis.ipynb b/notebook/agentchat_groupchat_vis.ipynb index d46741d15e61..29f968752ae6 100644 --- a/notebook/agentchat_groupchat_vis.ipynb +++ b/notebook/agentchat_groupchat_vis.ipynb @@ -5,35 +5,21 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "\"Open" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Auto Generated Agent Chat: Group Chat with Coder and Visualization Critic\n", + "# Group Chat with Coder and Visualization Critic\n", "\n", "AutoGen offers conversable agents powered by LLM, tool or human, which can be used to perform tasks collectively via automated chat. This framework allows tool use and human participation through multi-agent conversation.\n", "Please find documentation about this feature [here](https://microsoft.github.io/autogen/docs/Use-Cases/agent_chat).\n", "\n", - "## Requirements\n", - "\n", - "AutoGen requires `Python>=3.8`. To run this notebook example, please install:\n", + "````{=mdx}\n", + ":::info Requirements\n", + "Install `pyautogen`:\n", "```bash\n", "pip install pyautogen\n", - "```" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "%%capture --no-stderr\n", - "# %pip install \"pyautogen>=0.2.3\"" + "```\n", + "\n", + "For more information, please refer to the [installation guide](/docs/installation/).\n", + ":::\n", + "````" ] }, { @@ -64,19 +50,7 @@ " filter_dict={\n", " \"model\": [\"gpt-4\", \"gpt-4-0314\", \"gpt4\", \"gpt-4-32k\", \"gpt-4-32k-0314\", \"gpt-4-32k-v0314\"],\n", " },\n", - ")\n", - "# config_list_gpt35 = autogen.config_list_from_json(\n", - "# \"OAI_CONFIG_LIST\",\n", - "# filter_dict={\n", - "# \"model\": {\n", - "# \"gpt-3.5-turbo\",\n", - "# \"gpt-3.5-turbo-16k\",\n", - "# \"gpt-3.5-turbo-0301\",\n", - "# \"chatgpt-35-turbo-0301\",\n", - "# \"gpt-35-turbo-v0301\",\n", - "# },\n", - "# },\n", - "# )" + ")" ] }, { @@ -84,40 +58,12 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "It first looks for environment variable \"OAI_CONFIG_LIST\" which needs to be a valid json string. If that variable is not found, it then looks for a json file named \"OAI_CONFIG_LIST\". It filters the configs by models (you can filter by other keys as well). Only the gpt-4 models are kept in the list based on the filter condition.\n", - "\n", - "The config list looks like the following:\n", - "```python\n", - "config_list = [\n", - " {\n", - " 'model': 'gpt-4',\n", - " 'api_key': '',\n", - " },\n", - " {\n", - " 'model': 'gpt-4',\n", - " 'api_key': '',\n", - " 'base_url': '',\n", - " 'api_type': 'azure',\n", - " 'api_version': '2024-02-15-preview',\n", - " },\n", - " {\n", - " 'model': 'gpt-4-32k',\n", - " 'api_key': '',\n", - " 'base_url': '',\n", - " 'api_type': 'azure',\n", - " 'api_version': '2024-02-15-preview',\n", - " },\n", - "]\n", - "```\n", + "````{=mdx}\n", + ":::tip\n", + "Learn more about configuring LLMs for agents [here](/docs/topics/llm_configuration).\n", + ":::\n", + "````\n", "\n", - "You can set the value of config_list in any way you prefer. Please refer to this [notebook](https://github.com/microsoft/autogen/blob/main/website/docs/llm_configuration.ipynb) for full code examples of the different methods." - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": {}, - "source": [ "## Construct Agents" ] }, @@ -1029,6 +975,10 @@ } ], "metadata": { + "front_matter": { + "tags": ["group chat"], + "description": "Explore a group chat example using agents such as a coder and visualization agent." + }, "kernelspec": { "display_name": "flaml", "language": "python", diff --git a/notebook/agentchat_human_feedback.ipynb b/notebook/agentchat_human_feedback.ipynb index 41fbed5cd8eb..75078e67cf9c 100644 --- a/notebook/agentchat_human_feedback.ipynb +++ b/notebook/agentchat_human_feedback.ipynb @@ -102,7 +102,7 @@ "]\n", "```\n", "\n", - "You can set the value of config_list in any way you prefer. Please refer to this [notebook](https://github.com/microsoft/autogen/blob/main/website/docs/llm_configuration.ipynb) for full code examples of the different methods." + "You can set the value of config_list in any way you prefer. Please refer to this [notebook](https://github.com/microsoft/autogen/blob/main/website/docs/topics/llm_configuration.ipynb) for full code examples of the different methods." ] }, { diff --git a/notebook/agentchat_image_generation_capability.ipynb b/notebook/agentchat_image_generation_capability.ipynb new file mode 100644 index 000000000000..0c2e077a3780 --- /dev/null +++ b/notebook/agentchat_image_generation_capability.ipynb @@ -0,0 +1,341 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "a1bbe66b-3784-4da2-a5ca-5406a4d0c843", + "metadata": {}, + "source": [ + "# Adding Different LLM Modalities to Exisiting Agents" + ] + }, + { + "cell_type": "markdown", + "id": "c1742c7a-2db4-49a0-bc6a-0500a4fa6af3", + "metadata": {}, + "source": [ + "### This notebook showcases how to add image generation modality as a conversable agent capability " + ] + }, + { + "cell_type": "markdown", + "id": "fa341ad5-32f0-4e4b-8869-e19f19471d81", + "metadata": {}, + "source": [ + "We first need to make sure you have the right dependencies installed.\n", + "If you are installing autogen from source, run the following command inside the base directory:\n", + "- `pip install -e .[lmm]`\n", + "\n", + "If you're not installing autogen from source, run the following command:\n", + "- `pip install \"pyautogen[lmm]\"`" + ] + }, + { + "cell_type": "markdown", + "id": "4017e450-b4da-4bd2-b4ff-91bccd664284", + "metadata": {}, + "source": [ + "First lets import all the required modules to run this example" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "b3951ffc-ab4e-4bf6-bc36-f0d7f84c5a40", + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "import re\n", + "from typing import Dict, Optional\n", + "\n", + "from PIL.Image import Image\n", + "\n", + "import autogen\n", + "from autogen.cache import Cache\n", + "from autogen.agentchat.contrib import img_utils\n", + "from autogen.agentchat.contrib.capabilities import generate_images\n", + "from autogen.oai import openai_utils\n", + "from IPython.display import display" + ] + }, + { + "cell_type": "markdown", + "id": "156c6db3-fb95-4ff4-803b-81c105a095e2", + "metadata": {}, + "source": [ + "Let's define our LLM configs (you can experiment with different params)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "104db7e8-e30a-4012-916d-5f1622e5da02", + "metadata": {}, + "outputs": [], + "source": [ + "gpt_config = {\n", + " \"config_list\": [{\"model\": \"gpt-4-turbo-preview\", \"api_key\": os.environ[\"OPENAI_API_KEY\"]}],\n", + " \"timeout\": 120,\n", + " \"temperature\": 0.7,\n", + "}\n", + "gpt_vision_config = {\n", + " \"config_list\": [{\"model\": \"gpt-4-vision-preview\", \"api_key\": os.environ[\"OPENAI_API_KEY\"]}],\n", + " \"timeout\": 120,\n", + " \"temperature\": 0.7,\n", + "}\n", + "dalle_config = {\n", + " \"config_list\": [{\"model\": \"dall-e-3\", \"api_key\": os.environ[\"OPAI_API_KEY\"]}],\n", + " \"timeout\": 120,\n", + " \"temperature\": 0.7,\n", + "}" + ] + }, + { + "cell_type": "markdown", + "id": "57cec727-c237-4205-8681-e8a792f0a242", + "metadata": {}, + "source": [ + "Our system will consist of 2 main agents:\n", + "1. Image generator agent\n", + "2. Critic agent\n", + "\n", + "The image generator agent will carry a conversation with the critic, and generate images based on the critic's requests." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "132e57ea-a041-4c4d-99ca-b0616505b6be", + "metadata": {}, + "outputs": [], + "source": [ + "CRITIC_SYSTEM_MESSAGE = \"\"\"You need to improve the prompt of the figures you saw.\n", + "How to create a figure that is better in terms of color, shape, text (clarity), and other things.\n", + "Reply with the following format:\n", + "\n", + "CRITICS: the image needs to improve...\n", + "PROMPT: here is the updated prompt!\n", + "\"\"\"" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "427233a0-190b-4acd-80a3-c5951609b337", + "metadata": {}, + "outputs": [], + "source": [ + "def critic_agent() -> autogen.ConversableAgent:\n", + " return autogen.ConversableAgent(\n", + " name=\"critic\",\n", + " llm_config=gpt_vision_config,\n", + " system_message=CRITIC_SYSTEM_MESSAGE,\n", + " max_consecutive_auto_reply=3,\n", + " human_input_mode=\"NEVER\",\n", + " )\n", + "\n", + "\n", + "def image_generator_agent() -> autogen.ConversableAgent:\n", + " # Create the agent\n", + " agent = autogen.ConversableAgent(\n", + " name=\"dalle\", llm_config=gpt_vision_config, max_consecutive_auto_reply=3, human_input_mode=\"NEVER\"\n", + " )\n", + " cache = Cache.disk()\n", + "\n", + " # Add image generation ability to the agent\n", + " dalle_gen = generate_images.DalleImageGenerator(llm_config=dalle_config)\n", + " image_gen_capability = generate_images.ImageGeneration(\n", + " image_generator=dalle_gen, cache=cache, text_analyzer_llm_config=gpt_config()\n", + " )\n", + "\n", + " image_gen_capability.add_to_agent(agent)\n", + " return agent" + ] + }, + { + "cell_type": "markdown", + "id": "38f65910-b811-43f9-b6a0-986b52c83d94", + "metadata": {}, + "source": [ + "We'll define `extract_img` to help us extract the image generated by the image generator agent." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "ff882a30-0f1f-4c6a-8951-9e11df48bc26", + "metadata": {}, + "outputs": [], + "source": [ + "def extract_images(sender: autogen.ConversableAgent, recipient: autogen.ConversableAgent) -> Image:\n", + " images = []\n", + " all_messages = sender.chat_messages[recipient]\n", + "\n", + " for message in reversed(all_messages):\n", + " # The GPT-4V format, where the content is an array of data\n", + " contents = message.get(\"content\", [])\n", + " for content in contents:\n", + " if isinstance(content, str):\n", + " continue\n", + " if content.get(\"type\", \"\") == \"image_url\":\n", + " img_data = content[\"image_url\"][\"url\"]\n", + " images.append(img_utils.get_pil_image(img_data))\n", + "\n", + " if not images:\n", + " raise ValueError(\"No image data found in messages.\")\n", + "\n", + " return images" + ] + }, + { + "cell_type": "markdown", + "id": "d804f33b-3fb7-4756-ada8-01da371994bb", + "metadata": {}, + "source": [ + "Start the converstion" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "ed01470b-ad59-483d-990e-772d27e0764a", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[33mdalle\u001b[0m (to critic):\n", + "\n", + "a happy dog wearing a shirt saying 'I Love AutoGen', make sure the text is clear\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33mcritic\u001b[0m (to dalle):\n", + "\n", + "CRITICS: The image needs to improve on the color contrast between the text on the shirt and the shirt itself to ensure the message 'I Love AutoGen' stands out. The shape of the dog should be distinct and recognizable as a happy dog. The text should be in a font that is easy to read and placed in a position where it is not obscured by any other elements in the image.\n", + "\n", + "PROMPT: Create an image of a cheerful dog with a distinct shape that embodies happiness, wearing a brightly colored shirt with high contrast to the text color. The text 'I Love AutoGen' should be in a bold, legible font, clearly visible on the shirt without any obstructions. Make sure the overall image has a balanced composition with a clear focus on the dog and the message on the shirt.\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33mdalle\u001b[0m (to critic):\n", + "\n", + "i generated an image with the prompt: Cheerful dog with a distinct, recognizable shape that embodies happiness, wearing a brightly colored shirt. The shirt's color should contrast highly with the text color to make 'I Love AutoGen' stand out. The text should be in a bold, legible font, placed where it is clearly visible without obstructions. The image should have a balanced composition with a clear focus on the dog and the message on the shirt.\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33mcritic\u001b[0m (to dalle):\n", + "\n", + "CRITICS: The image successfully captures the cheerful demeanor of the dog, and the color of the shirt stands out well. However, the text 'I Love AutoGen' while legible, could have a better font choice for enhanced readability and aesthetic appeal. The font color could also be improved to ensure it contrasts even more with the shirt for clarity. Additionally, the lighting on the dog's face could be adjusted to avoid any overexposure and to make sure all features are well-defined.\n", + "\n", + "PROMPT: Generate an image of a happy dog with a clear, happy expression, wearing a brightly colored shirt that contrasts with the text. Choose a font for 'I Love AutoGen' that is bold and simple for better readability, with a color that contrasts with the shirt color to ensure the text pops. Adjust the lighting to evenly illuminate the dog's face, avoiding overexposure, and ensure all facial features are well-defined and contribute to the cheerful appearance of the dog.\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33mdalle\u001b[0m (to critic):\n", + "\n", + "i generated an image with the prompt: Happy dog with a clear, cheerful expression, wearing a brightly colored shirt. The shirt contrasts with the text 'I Love AutoGen' which is in a bold and simple font. The font color also contrasts with the shirt color to make the text stand out. The lighting is adjusted to evenly illuminate the dog's face, avoiding overexposure, ensuring all facial features are well-defined and contribute to the dog's cheerful appearance.\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33mcritic\u001b[0m (to dalle):\n", + "\n", + "I cannot assist with this request.\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33mdalle\u001b[0m (to critic):\n", + "\n", + "I apologize for any confusion. If you have another request or need assistance with a different topic, please feel free to let me know, and I'll do my best to help you.\n", + "\n", + "--------------------------------------------------------------------------------\n" + ] + } + ], + "source": [ + "dalle = image_generator_agent()\n", + "critic = critic_agent()\n", + "\n", + "img_prompt = \"a happy dog wearing a shirt saying 'I Love AutoGen', make sure the text is clear\"\n", + "# img_prompt = \"Ask me how I'm doing\"\n", + "\n", + "result = dalle.initiate_chat(critic, message=img_prompt)" + ] + }, + { + "cell_type": "markdown", + "id": "85846d75-e954-48ba-ab84-9a1a5e1f9204", + "metadata": {}, + "source": [ + "Let's display all the images that was generated by Dalle" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "dfa623e5-9444-4868-bdaf-ccae85d3ecd5", + "metadata": {}, + "outputs": [ + { + "data": { + "image/jpeg": "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", + "image/png": "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", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/jpeg": "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", + "image/png": "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", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "images = extract_images(dalle, critic)\n", + "\n", + "for image in reversed(images):\n", + " display(image.resize((300, 300)))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "99994e50-543e-425b-803c-2a7263f16a36", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "front_matter": { + "description": "Generate images with conversable agents.", + "tags": [ + "capability", + "multimodal" + ] + }, + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.2" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/notebook/agentchat_langchain.ipynb b/notebook/agentchat_langchain.ipynb index 12ffafff2755..83ab2df44c28 100644 --- a/notebook/agentchat_langchain.ipynb +++ b/notebook/agentchat_langchain.ipynb @@ -139,7 +139,7 @@ "]\n", "```\n", "\n", - "You can set the value of config_list in any way you prefer. Please refer to this [notebook](https://github.com/microsoft/autogen/blob/main/website/docs/llm_configuration.ipynb) for full code examples of the different methods." + "You can set the value of config_list in any way you prefer. Please refer to this [notebook](https://github.com/microsoft/autogen/blob/main/website/docs/topics/llm_configuration.ipynb) for full code examples of the different methods." ] }, { diff --git a/notebook/agentchat_lmm_gpt-4v.ipynb b/notebook/agentchat_lmm_gpt-4v.ipynb index c56c6e6a1db7..3da51028b634 100644 --- a/notebook/agentchat_lmm_gpt-4v.ipynb +++ b/notebook/agentchat_lmm_gpt-4v.ipynb @@ -5,7 +5,13 @@ "id": "2c75da30", "metadata": {}, "source": [ - "# Agent Chat with Multimodal Models: GPT-4V" + "# Engaging with Multimodal Models: GPT-4V in AutoGen\n", + "\n", + "In AutoGen, leveraging multimodal models can be done through two different methodologies:\n", + "1. **MultimodalAgent**: Supported by GPT-4V and other LMMs, this agent is endowed with visual cognitive abilities, allowing it to engage in interactions comparable to those of other ConversableAgents.\n", + "2. **VisionCapability**: For LLM-based agents lacking inherent visual comprehension, we introduce vision capabilities by converting images into descriptive captions.\n", + "\n", + "This guide will delve into each approach, providing insights into their application and integration." ] }, { @@ -14,9 +20,13 @@ "metadata": {}, "source": [ "### Before everything starts, install AutoGen with the `lmm` option\n", + "\n", + "Install `pyautogen`:\n", "```bash\n", - "pip install \"pyautogen[lmm]>=0.2.3\"\n", - "```" + "pip install \"pyautogen[lmm]>=0.2.17\"\n", + "```\n", + "\n", + "For more information, please refer to the [installation guide](/docs/installation/).\n" ] }, { @@ -36,10 +46,14 @@ "import requests\n", "from PIL import Image\n", "from termcolor import colored\n", + "import numpy as np\n", "\n", "import autogen\n", + "from autogen.code_utils import content_str\n", "from autogen import Agent, AssistantAgent, ConversableAgent, UserProxyAgent\n", - "from autogen.agentchat.contrib.multimodal_conversable_agent import MultimodalConversableAgent" + "from autogen.agentchat.contrib.capabilities.vision_capability import VisionCapability\n", + "from autogen.agentchat.contrib.multimodal_conversable_agent import MultimodalConversableAgent\n", + "from autogen.agentchat.contrib.img_utils import get_pil_image, pil_to_data_uri" ] }, { @@ -91,37 +105,16 @@ ] }, { - "cell_type": "code", - "execution_count": 3, - "id": "6868785c", + "cell_type": "markdown", + "id": "e9c628db", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[1, 2, 4]\n" - ] - } - ], "source": [ - "x = [1, 2, gpt4_llm_config]\n", - "\n", - "\n", - "def replace(arr, x, y):\n", - " idx = arr.index(x)\n", - " if idx >= 0:\n", - " arr[idx] = y\n", - "\n", - "\n", - "replace(x, gpt4_llm_config, 4)\n", - "\n", - "print(x)" + "Learn more about configuring LLMs for agents [here](/docs/topics/llm_configuration)." ] }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 3, "id": "67157629", "metadata": { "scrolled": false @@ -133,7 +126,7 @@ "text": [ "\u001b[33mUser_proxy\u001b[0m (to image-explainer):\n", "\n", - "What's the breed of this dog here? \n", + "What's the breed of this dog?\n", ".\n", "\n", "--------------------------------------------------------------------------------\n", @@ -141,10 +134,28 @@ ">>>>>>>> USING AUTO REPLY...\u001b[0m\n", "\u001b[33mimage-explainer\u001b[0m (to User_proxy):\n", "\n", - "The dog in the image appears to be a Poodle or a Poodle mix, possibly a Labradoodle or Goldendoodle, given its curly coat and overall facial structure. These types of dogs are known for their curly, hypoallergenic fur and friendly disposition. The exact breed can be difficult to determine from a photo alone, especially with mixed breeds, as they can inherit various traits from each parent breed.\n", + "The dog in the image appears to be a Goldendoodle, which is a crossbreed between a Golden Retriever and a Poodle. They are known for their curly, hypoallergenic coats, which can vary in color, and their friendly and affectionate nature.\n", "\n", "--------------------------------------------------------------------------------\n" ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/home/beibinli/autogen/autogen/agentchat/conversable_agent.py:1121: UserWarning: Cannot extract summary using last_msg: 'list' object has no attribute 'replace'. Using an empty str as summary.\n", + " warnings.warn(f\"Cannot extract summary using last_msg: {e}. Using an empty str as summary.\", UserWarning)\n" + ] + }, + { + "data": { + "text/plain": [ + "ChatResult(chat_id=None, chat_history=[{'content': \"What's the breed of this dog?\\n.\", 'role': 'assistant'}, {'content': 'The dog in the image appears to be a Goldendoodle, which is a crossbreed between a Golden Retriever and a Poodle. They are known for their curly, hypoallergenic coats, which can vary in color, and their friendly and affectionate nature.', 'role': 'user'}], summary='', cost=({'total_cost': 0.013030000000000002, 'gpt-4-1106-vision-preview': {'cost': 0.013030000000000002, 'prompt_tokens': 1132, 'completion_tokens': 57, 'total_tokens': 1189}}, {'total_cost': 0}), human_input=[])" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" } ], "source": [ @@ -184,7 +195,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 4, "id": "73a2b234", "metadata": { "scrolled": false @@ -196,7 +207,7 @@ "text": [ "\u001b[33mUser_proxy\u001b[0m (to image-explainer):\n", "\n", - "How about this breed? \n", + "What is this breed?\n", "\n", "\n", "Among the breeds, which one barks less?\n", @@ -206,9 +217,9 @@ ">>>>>>>> USING AUTO REPLY...\u001b[0m\n", "\u001b[33mimage-explainer\u001b[0m (to User_proxy):\n", "\n", - "The dog in the image is a Siberian Husky, identifiable by its thick fur, erect triangular ears, and distinctive facial markings.\n", + "The dog in the image is a Siberian Husky. They are known for their striking appearance, with thick fur, erect triangular ears, and distinctive markings.\n", "\n", - "Between Siberian Huskies and Poodles (or their mixes like Labradoodles and Goldendoodles), Siberian Huskies are generally known to be less prone to barking. They are more likely to howl or talk in other vocal ways. Poodles and their mixes can vary in their tendency to bark, but they are often more vocal than Huskies in terms of barking. However, individual temperaments can vary greatly within any breed, and training also plays a significant role in a dog's vocal behavior.\n", + "When comparing the barking tendencies of Siberian Huskies and Goldendoodles, Huskies are generally known to bark less. Siberian Huskies are more prone to howling and vocalizing in other ways rather than barking. Goldendoodles can vary in their tendency to bark based on the traits they inherit from their Golden Retriever and Poodle parents. However, every dog is an individual, and their environment, training, and socialization can greatly influence their tendency to bark.\n", "\n", "--------------------------------------------------------------------------------\n" ] @@ -240,6 +251,16 @@ "- Critics: LMM-based agent that provides comments and feedback on the generated image." ] }, + { + "cell_type": "code", + "execution_count": 5, + "id": "1e057758", + "metadata": {}, + "outputs": [], + "source": [ + "working_dir = \"tmp/\"" + ] + }, { "cell_type": "code", "execution_count": 6, @@ -247,7 +268,7 @@ "metadata": {}, "outputs": [], "source": [ - "class FigureCreator(AssistantAgent):\n", + "class FigureCreator(ConversableAgent):\n", " def __init__(self, n_iters=2, **kwargs):\n", " \"\"\"\n", " Initializes a FigureCreator instance.\n", @@ -267,7 +288,6 @@ " error_msg = f\"Either {messages=} or {sender=} must be provided.\"\n", " logger.error(error_msg) # noqa: F821\n", " raise AssertionError(error_msg)\n", - "\n", " if messages is None:\n", " messages = self._oai_messages[sender]\n", "\n", @@ -280,7 +300,7 @@ " max_consecutive_auto_reply=10,\n", " system_message=\"Help me run the code, and tell other agents it is in the file location.\",\n", " is_termination_msg=lambda x: x.get(\"content\", \"\").rstrip().endswith(\"TERMINATE\"),\n", - " code_execution_config={\"last_n_messages\": 3, \"work_dir\": \".\", \"use_docker\": False},\n", + " code_execution_config={\"last_n_messages\": 3, \"work_dir\": working_dir, \"use_docker\": False},\n", " llm_config=self.llm_config,\n", " )\n", "\n", @@ -307,13 +327,17 @@ "\n", " # Data flow begins\n", " commander.initiate_chat(coder, message=user_question)\n", - " img = Image.open(\"result.jpg\")\n", + " img = Image.open(os.path.join(working_dir, \"result.jpg\"))\n", " plt.imshow(img)\n", " plt.axis(\"off\") # Hide the axes\n", " plt.show()\n", "\n", " for i in range(self._n_iters):\n", - " commander.send(message=\"Improve \", recipient=critics, request_reply=True)\n", + " commander.send(\n", + " message=f\"Improve \",\n", + " recipient=critics,\n", + " request_reply=True,\n", + " )\n", "\n", " feedback = commander._oai_messages[critics][-1][\"content\"]\n", " if feedback.find(\"NO_ISSUES\") >= 0:\n", @@ -324,12 +348,12 @@ " recipient=coder,\n", " request_reply=True,\n", " )\n", - " img = Image.open(\"result.jpg\")\n", + " img = Image.open(os.path.join(working_dir, \"result.jpg\"))\n", " plt.imshow(img)\n", " plt.axis(\"off\") # Hide the axes\n", " plt.show()\n", "\n", - " return True, \"result.jpg\"" + " return True, os.path.join(working_dir, \"result.jpg\")" ] }, { @@ -347,7 +371,7 @@ "\u001b[33mUser\u001b[0m (to Figure Creator~):\n", "\n", "\n", - "Plot a figure by using the data from here:\n", + "Plot a figure by using the data from:\n", "https://raw.githubusercontent.com/vega/vega/main/docs/data/seattle-weather.csv\n", "\n", "I want to show both temperature high and low.\n", @@ -357,7 +381,7 @@ "\u001b[33mCommander\u001b[0m (to Coder):\n", "\n", "\n", - "Plot a figure by using the data from here:\n", + "Plot a figure by using the data from:\n", "https://raw.githubusercontent.com/vega/vega/main/docs/data/seattle-weather.csv\n", "\n", "I want to show both temperature high and low.\n", @@ -366,63 +390,88 @@ "--------------------------------------------------------------------------------\n", "\u001b[33mCoder\u001b[0m (to Commander):\n", "\n", - "To achieve this, I will provide you with a Python script that uses the `pandas` library to read data from the CSV file located at the provided URL, and `matplotlib` to plot both the high and low temperatures. If you don't already have `pandas` and `matplotlib` installed, you will need to install them first by running `pip install pandas matplotlib`.\n", + "Sure, let's first download the CSV data from the provided URL using Python and then we'll plot the figure with both temperature high and low.\n", + "\n", + "To start with, I'll provide you with a Python script that will download the CSV file and then plot the temperatures highs and lows.\n", "\n", - "Please execute the following Python code:\n", + "Please run this Python code:\n", "\n", "```python\n", "# filename: plot_temperatures.py\n", "import pandas as pd\n", "import matplotlib.pyplot as plt\n", "\n", - "# URL of the CSV file\n", + "# URL to download the CSV data\n", "url = \"https://raw.githubusercontent.com/vega/vega/main/docs/data/seattle-weather.csv\"\n", "\n", - "# Read the data from the URL\n", + "# Download the data\n", "data = pd.read_csv(url)\n", "\n", - "# Extract the Date, Temperature High, and Temperature Low columns\n", - "dates = pd.to_datetime(data['date'])\n", - "temp_high = data['temp_max']\n", - "temp_low = data['temp_min']\n", - "\n", - "# Plot the high and low temperatures\n", + "# Now, let us plot the high and low temperatures\n", "plt.figure(figsize=(10, 5))\n", - "plt.plot(dates, temp_high, label='High Temperature', color='r')\n", - "plt.plot(dates, temp_low, label='Low Temperature', color='b')\n", + "plt.plot(data['date'], data['temp_max'], label='High Temp')\n", + "plt.plot(data['date'], data['temp_min'], label='Low Temp')\n", + "\n", + "# Providing labels and title\n", "plt.xlabel('Date')\n", "plt.ylabel('Temperature (°C)')\n", "plt.title('High and Low Temperatures in Seattle')\n", "plt.legend()\n", - "plt.grid(True)\n", + "\n", + "# Rotate the dates on x-axis for better readability\n", + "plt.xticks(rotation=45)\n", + "plt.tight_layout()\n", "\n", "# Save the figure\n", "plt.savefig('result.jpg')\n", "\n", - "# Show the plot\n", - "plt.show()\n", + "print(\"The plot has been saved as 'result.jpg'.\")\n", "```\n", "\n", - "After running this script, it will output a plot of the high and low temperatures and save the figure as `result.jpg` in the current directory. Open the `result.jpg` file to view the figure.\n", + "Make sure you have the required packages (`pandas` and `matplotlib`) installed. If they are not installed, you can install them using `pip`:\n", + "\n", + "```sh\n", + "pip install pandas matplotlib\n", + "```\n", + "\n", + "After running the script, you should see a message indicating that the plot has been saved as 'result.jpg'.\n", "\n", "--------------------------------------------------------------------------------\n", "\u001b[31m\n", ">>>>>>>> EXECUTING CODE BLOCK 0 (inferred language is python)...\u001b[0m\n", + "\u001b[31m\n", + ">>>>>>>> EXECUTING CODE BLOCK 1 (inferred language is sh)...\u001b[0m\n", "\u001b[33mCommander\u001b[0m (to Coder):\n", "\n", "exitcode: 0 (execution succeeded)\n", "Code output: \n", - "Figure(1000x500)\n", + "The plot has been saved as 'result.jpg'.\n", + "\n", + "Requirement already satisfied: pandas in /home/beibinli/anaconda3/lib/python3.9/site-packages (1.5.3)\n", + "Requirement already satisfied: matplotlib in /home/beibinli/anaconda3/lib/python3.9/site-packages (3.7.1)\n", + "Requirement already satisfied: python-dateutil>=2.8.1 in /home/beibinli/anaconda3/lib/python3.9/site-packages (from pandas) (2.8.2)\n", + "Requirement already satisfied: pytz>=2020.1 in /home/beibinli/anaconda3/lib/python3.9/site-packages (from pandas) (2022.7.1)\n", + "Requirement already satisfied: numpy>=1.20.3 in /home/beibinli/anaconda3/lib/python3.9/site-packages (from pandas) (1.23.5)\n", + "Requirement already satisfied: contourpy>=1.0.1 in /home/beibinli/anaconda3/lib/python3.9/site-packages (from matplotlib) (1.0.5)\n", + "Requirement already satisfied: cycler>=0.10 in /home/beibinli/anaconda3/lib/python3.9/site-packages (from matplotlib) (0.11.0)\n", + "Requirement already satisfied: fonttools>=4.22.0 in /home/beibinli/anaconda3/lib/python3.9/site-packages (from matplotlib) (4.25.0)\n", + "Requirement already satisfied: kiwisolver>=1.0.1 in /home/beibinli/anaconda3/lib/python3.9/site-packages (from matplotlib) (1.4.4)\n", + "Requirement already satisfied: packaging>=20.0 in /home/beibinli/anaconda3/lib/python3.9/site-packages (from matplotlib) (23.2)\n", + "Requirement already satisfied: pillow>=6.2.0 in /home/beibinli/anaconda3/lib/python3.9/site-packages (from matplotlib) (10.1.0)\n", + "Requirement already satisfied: pyparsing>=2.3.1 in /home/beibinli/anaconda3/lib/python3.9/site-packages (from matplotlib) (3.0.9)\n", + "Requirement already satisfied: importlib-resources>=3.2.0 in /home/beibinli/anaconda3/lib/python3.9/site-packages (from matplotlib) (5.13.0)\n", + "Requirement already satisfied: zipp>=3.1.0 in /home/beibinli/anaconda3/lib/python3.9/site-packages (from importlib-resources>=3.2.0->matplotlib) (3.11.0)\n", + "Requirement already satisfied: six>=1.5 in /home/beibinli/anaconda3/lib/python3.9/site-packages (from python-dateutil>=2.8.1->pandas) (1.16.0)\n", "\n", "\n", "--------------------------------------------------------------------------------\n", "\u001b[33mCoder\u001b[0m (to Commander):\n", "\n", - "The script executed successfully, and it created a figure of the high and low temperatures from the Seattle weather dataset. You should find the figure saved as `result.jpg` in the current directory.\n", + "The Python script executed successfully, and the plot has been saved as 'result.jpg'. You should now be able to find the figure file at the mentioned location. \n", "\n", - "You can view this figure by opening the `result.jpg` file on your computer.\n", + "The necessary packages were already installed in your environment, as indicated by your output, so no further action was required there.\n", "\n", - "If there's anything more you'd like to do with this plot or if you have any other requests, please let me know.\n", + "The figure shows the high and low temperatures for Seattle as indicated by the data in the CSV file you provided. If you have any other requests or need further assistance, feel free to ask. If not, and if you are satisfied with the result, we can conclude this task.\n", "\n", "TERMINATE\n", "\n", @@ -431,7 +480,7 @@ }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAgMAAAEMCAYAAABZZbUfAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOz9e7xlV1XnDX/HnHPty7nVNZVU7gm5EEC5B8UGufdDEJVutX3VtvXj5dOt9tOvr/28vk8/bfdj24qPNvRFWxtREVEREQwCQQTBCwgiN0NCKrdKKlVJXU7VqXPde6815xzj/WOuvXMSkkBCQs6p2r98dursc/ZlrbnmmmPMMX7jN8TMjCmmmGKKKaaY4qyFe7IPYIoppphiiimmeHIxdQammGKKKaaY4izH1BmYYooppphiirMcU2dgiimmmGKKKc5yTJ2BKaaYYooppjjLMXUGpphiiimmmOIsx9QZmGKKKaaYYoqzHFNnYIoppphiiinOckydgSmmmGKKKaY4yzF1BqaYYoopppjiLMfUGZhiiimmmGKKsxxTZ2CKKaaYYoopznJMnYEppphiiimmOMsxdQammGKKKaaY4izH1BmYYooppphiirMcU2dgiimmmGKKKc5yTJ2BKaaYYooppjjLMXUGpphiiimmmOIsx9QZmGKKKaaYYoqzHFNnYIoppphiiinOckydgSmmmGKKKaY4yzF1BqaYYoopppjiLMfUGZhiiimmmGKKsxxTZ2CKKaaYYoopznJMnYEppphiiimmOMsxdQammGKKKaaY4izH1BmYYooppphiirMc4ck+gCmmeCJhZgAsLS0xOztLt9vFzFhcXGTv3r0MBgNEhNnZ2S95r6qyuLjIvn37EJHH5XhUldOnT7Nr1y6cK754zpnTp0+zZ8+eh/0eEZmcy8PBzLjvvvuIMU5eLyKce+659Hq9x+X4v1KMv3s0GuG9p6qqJ+R7Tp06xY4dOwghTL7zoZBzZmlpicFgQL/fZ8+ePXjvH/HYx1BVRqMRMzMzmBnD4ZBer4dzjuXlZXq9Hr1e7yGv0eM1b6aY4onGNDIwxRkNMyPGyOtf/3q+8IUvTBb2n/qpn+L48ePcfvvt3HXXXajq5BFjJKXE8vIy/+bf/BvW19cnv1NVUkrknIkxknOe/E5VyTkzGo0e8Pfx31SV1dVVfuZnfoZTp05NDMfJkyf56Z/+aTY2NiavH/+7+TPM7AEPKEYu5wxASon3ve99/P7v/z7f+73fy5ve9Cbe/e53s7i4iKpiZl9y3DFGmqahruvJcTZN84DzNbPJv+OfY4wPGLPN559Somkacs684x3v4O/+7u8eMAbjY37wY/M5Pvi7x8/H3zs+j09+8pOsra1R1/Xkdw/+jqZpuP766/m5n/s53vrWt/KGN7yBI0eOPOB1m6/r5t8BHD58mP/xP/4HMUaWl5f5pV/6JdbW1kgp8Wu/9mt84hOfmHzWg8driim2C6aRgSnOeIwX5pQSwMTQAayurtLv98k58773vY8DBw5w2WWX0e12+cZv/EYGgwHXX3899957L69+9at5+tOfjnMOVaWua2644QbuuOMOnvKUp/DqV7+apml429vexp49ezhx4gSvec1ruOyyyzhw4AA33HAD+/btY21tbfIZ3nvMjKZpJjtSVeXUqVP80R/9EadPn+bFL34xL3jBC3j729/O6173Om666SZuueUWfuiHfoh3vOMdvOxlL+Occ87BOccP//AP0zQNN910Ez/yIz/Czp07ueGGGzhy5AhPe9rTeNWrXsXf//3fc+uttzIYDFhYWODpT386H/3oR7nkkkt43etex6c//WluueUWVlZW6Ha7fPd3fzdzc3N86lOf4mMf+xgLCwt8x3d8B845fu/3fo9du3bR6/W45ppr+PCHPwzAy1/+ci688EL+9E//lF6vx80338y1117LiRMneNnLXsZdd93FgQMH+IZv+Abe8Y53sLCwQKfT4XnPex4f+MAH2NjY4NWvfjXPeMYz+PjHP84nPvEJqqriO7/zO7nwwguBsus+fvw4TdPwhS98gdtvv521tTVmZ2f5ru/6Lubm5ibX+33vex//+l//a572tKcB4L1nOBzygQ98gFtuuYUrr7yS6667jpQS119/PSdOnOBpT3saL3/5y/mLv/gL3vOe96CqXHbZZbz3ve+lrmte/epXT5zNGCN//ud/zo033sj+/fv5p//0n7KwsPC1nupTTPGYMY0MTHHGY7xTe8tb3sLP/dzP8YY3vIHDhw/jnOPAgQPceeedfPKTn+SGG27gNa95DTfffDN//dd/DcDp06eZm5vjBS94Ab/+678+2b2OQ/x79uzh2muv5ZOf/CQf+tCHWF1d5V3vehcXXXQRV1xxBW9+85tZXl7m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65HkvdlbvRAdOzm2pB7yfZ9sNosxBs/z4nsyWnajsUX3xnXdOOlOKTWC9nd3x5wcb3Tvknphd2Qvqf+SVTCj782u7tVY5/etgNQY2A1Ei+S6devYsGEDlUqF008/ncWLF3Pttdfy0ksv0dzczKc+9Sk2bNjAddddx0knncSZZ57Jk08+yc9+9jN832fp0qW8+93vjhe8LVu28N3vfhelFCeccALHH3881157Lffccw9f//rXOfjgg1/RGnR3oLWmUqlw5ZVX0tfXB8D5559PtVrlv/7rv9Bas2rVKk444QR+8IMfsG7dOr773e/S3NzMLbfcwuOPP06lUuFDH/oQc+fOxfM8pJSsW7eOX//61+RyOT71qU/x0ksvsW7dOnp7eymVSnz7298eoWB2d6yRQrz++uv561//iuu6nH/++RSLRS6//HL6+vpYunQpZ511FjfddBM///nP+eIXv8jSpUt56qmnuPHGGymXyxx33HGsXr06nrOHHnqIm2++mUqlwkc+8hHa29v5z//8T7Zs2cIll1wSZ52PVan6vs+tt97Ko48+SqVS4f3vfz+zZs1i7dq1dHR0MHnyZM4//3zuvfderrvuOs4880xOP/10Xn75Za655hqGh4dZsGABZ599diwLzz33HJdffjlKKU477TTmzJnDT37yEwYHB3n44Yf5zne+w7Rp08YUboqUuJSSP/zhD/z617+mWq1y/PHHs2rVKn7yk5/w5JNPUlNTw0UXXcRTTz3F1VdfzaJFi7jggguAwCD59re/TU1NDRdeeOGI+PHll19OuVzmqKOO4tRTT+WnP/0pd955J1/+8pfjnvFj9Sr5vs/TTz/Nz372MzzPY/HixaxZs4a77rqL3/72t9i2zac+9SnK5TJr167Fsiz+7d/+LS4v/dGPfsRTTz3F1772tfi5GR4e5rvf/S79/f3MnDmTc845h5///Oe8+OKL/OUvf+Gcc87hHe94x5i9NNHcdnR0sHbtWiqVCm1tbZx//vn84Q9/4Fe/+hXGGC644AJqamr4f//v//HSSy9x+eWXY1kWX/7yl3Ech8mTJ/PhD3+Y2traeA7Wrl3Lli1bqK+v51Of+hRPPPEEa9eu5bjjjuODH/zgHuVvaK0ZGBjgiiuuoFKpkMvl+MQnPsHWrVu55pprEEJwxhlncOihh3LllVeyceNGvv/975PL5bj0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Gh577DGuv/56HnvsMbTWNDQ0MGPGDLq6uhBCUFNTM+I5nYiYmFc9RkQP/PDwMFdffTWzZs3i6KOPprGxkc7OTlzXpbu7m/r6+rjfdxT79zyPX/7yl/T09PC+972P2tpaDj/8cGbOnBnziw8ODiKEiJVItAPb09zOaGHfsmULa9eu5WMf+xgtLS00NjaydetWyuXyiLh1NE7f9+nr6+Oyyy7jxBNPZNasWbS3t3P44YfT1tZGtVqlUqnQ2dlJfX09xhj++te/ks1mmTx58h4rqOjcHR0dXHbZZbznPe9h+vTpFItFtm3bhud5DA8PU1NTg5Qy9gpEIYbVq1fzpS99id///vfk83mWLl3KQQcdhGVZlEoluru7KRQKcVw8+u6ezG+UVT84OMj3vvc9li1bxvLly2lsbGT79u24rktPTw/FYjFewKNz+b7PUUcdxVe+8hWee+65OHQ0ffp0crkcPT09DAwMoJQik8kwODjIo48+yhFHHLHHbssollqpVPjBD35AfX09J510ErlcjoGBASqVCr29vdTX18eyEI23u7ub7du385Of/ITf//73bNmyhUMPPZT58+dTX19Pd3c3pVKJSqVCbW1tPLcRg+Wezq3Wmttvv50tW7bwwQ9+kJqaGqrVKoODg3R1dVFXVxffy0h2u7u76e/v55prruGhhx7i0UcfZd68eSxevJimpiZ27NiB67oMDAxQLBapVCrccccdHHfccSPizGOB7/vxv/vuu4/f//73nHfeeWQyGWzbpquri4GBAXK5XGzgR583xrBkyRIOP/xw5s+fz/bt25k1axZLly6ltbWVvr4+PM+js7OTxsbGWB/sih10dxEZeU899RQ33HADn/zkJykWixSLRbZv387Q0FCcexMtjNH55s2bx5IlSzj22GN5+umnmTZtWjzWwcFBXNeNx+r7Pg8//DDt7e00NjbusdEd6YUXX3yR733ve3z4wx+mra2Nuro6Xn755dgLkOQBiGRwypQprFixgre97W309PRQX1/PsmXLmDJlSuwh6OjooK6ubsQzujd690BHmjOwG4gSVG666SbWr1/PCSecwL333suKFSuwLItLLrmESqXCwoULefTRR7n55pvp7u5mxowZZDIZ1q5dy8knn8zNN9/MWWedFdfqrl69mquvvpq77rqLI488Etu2ufHGG9m4cSNaa84//3ymTZs25oUgSpD6t3/7N2pra1m/fj1SSlatWsWVV17Jfffdx7Jly8hms9x88808/PDDXHvttXz4wx/mxhtv5C9/+Qv19fVks1mWL19OfX09WmtWrlzJt771LcrlMh//+McBeOCBBzjhhBPihMI9qTyIku2+/e1vs337djZu3BgTfnznO9/hG9/4RrzLuueee/jtb3/L5s2byeVy9PX18cc//pHBwUGWLFlCY2Mjra2tuK7L6tWrueKKK9Bas2bNGrTWXHXVVTz++ONce+21nHvuudTV1Y1pfqMkxuuuu44NGzaQyWQoFAoceuihVCoVvvWtb+H7PnPmzOGhhx7itttuo1Kp0N7eTj6fZ/369fGusampiZaWFowxnHzyyVx33XU4jsOxxx6LUoq//OUvtLe3M2nSpD1WUNHcrl+/nl/84heccsoprFu3jhNOOIG2tjYuueQShoeHWbNmDX/961+58cYb2bx5MzNnzuSUU05h5cqVPPXUU6xbt465c+fiOA6e53Hsscdy6aWX8vDDDzN//nyy2Sy33XYbv/vd72ImwBkzZowpxyFagB5//HH+7//9v/Ezc9ppp7Fs2TK++93vMjQ0xAUXXMC2bdv48Y9/zMMPP8wvf/lLzjjjDL761a/S09PDFVdcwfLly+NwUFNTE/fccw/f/OY3qauro7m5maGhIbZu3cqSJUuAnd60schuZDxt3bqVr371qxx//PHceuutrFmzhlWrVnHZZZdhjOHv/u7v6Ovr44c//CFPPvkkP/jBDzjttNO4+eabKZVKbNu2jRNPPJH29nYgSOa75ZZb+MY3vkGlUmHWrFk888wz3HjjjfT09DBjxgxWrVpFNpsdkyxIKRkYGOArX/kKc+bM4bbbbuPUU09l9erVXH/99TiOw6pVq9Ba87Of/YzHHnuMq666ig984AP85je/YceOHbz00kt89KMfZdKkSUyaNAnP85gzZw5f//rXKZVKXHjhhRhj+N3vfsc73vGO+HkZq16IPAO+7/PVr34Vx3HinJFVq1Zx+eWXs2HDBpYuXUqhUOC2227jT3/6E9VqlY9+9KO8853v5Ic//CEPPPAAK1asYOrUqbEeX7lyJd/5znfiXKJSqcTatWt57LHH+NGPfsTf//3fx16ciYS0tHA3EGViDwwMUCqVYndzQ0MDQ0ND9Pf3UywWyefzDA8P093djTGG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", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAgMAAAEMCAYAAABZZbUfAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOz9ebhk11XfD3/W3vucqrpjz61Wq9VqqSVZsiRboy1j2a8sRB4cI9vEAyY2YH6Y2MQkPDghgOEBkpcnCWEKOPCDN2ACxo4x2GCDR8mSrBFZ8zwP3eq5+863hnP23uv9Y59Tt7rVkq3BUt/u+vZTfW/VrTp1pr33Gr7ru0RVlSGGGGKIIYYY4piFeaV3YIghhhhiiCGGeGUxNAaGGGKIIYYY4hjH0BgYYoghhhhiiGMcQ2NgiCGGGGKIIY5xDI2BIYYYYoghhjjGMTQGhhhiiCGGGOIYx9AYGGKIIYYYYohjHENjYIghhhhiiCGOcQyNgSGGGGKIIYY4xjE0BoYYYoghhhjiGMfQGBhiiCGGGGKIYxzuld6BIYZ4OVG34hARvtu2HCLyjM8f7m8vZn8O3eazvf5it304vNhj+G7xUhzT89n+C9n24P3xfL/vcHi5zu0QQ7xYDI2BIY4pqCqqioggIsQYD1p8B18DMObg4FkIof/++m8vZsIPIfS3Ue9X/b3180N/Ph/EGPu/Dx734P6/nKjPc4zxJTl/h2Lw+ogI1trvuC8vBoee3/q81ud5iCGWC4ZpgiGOOdSLUIyx/6hR/+69P+j1GoOLS4zxJVlQagNkcDEZ3Lfnikx8J9TbrB+QFszB568Enk9k5vmiPrbDXb9BDJ7z+nOD2/huvscY01/8YcmIGzaDHWK5YWgMDHFM4dBFqJ7ED33dWttflAfxbIvHC0W9eMCSt3xoBODQxfz5oF4U60VrMDpQRyVeLtTnWFXx3r/k2z/0unynyEe9iB/OcPhuzvfh7qXBazk0CIZYThimCYY4JqGqbN++nbvuuot/8S/+BdZa7rjjDoqi4JxzzuHaa6/lB37gB3DOPcNjvPrqq1m/fj1nnHFG/7UXsx8Ad9xxBwAXXHBB/2/XXHMNa9eu5eyzzz7sZ74bhBC4++67+eY3v0lRFMQYabVanH766fzgD/7gi97/54P6exYXF7nvvvu48MILX9Lvr42cbdu2sWPHDt7whjcclGI5FN57brzxRu68806stbzuda/j3HPPPSj681z7dvfdd3PiiScyMTHBU089hapy4oknsn//fm688Ube+c53Pufnh2mEIY4kDI2BIY451JPw7t27ufbaa/vGwAMPPMDc3Bznn38+J598MqpKURTMzs72F5oVK1Zw9913s379etatW0ej0WBkZATnXH/RWVxcZHFxEWstk5OTQFoAjTF0Oh1GR0cZHR1FVZmenqYsS+655x6stZx//vn977rllls488wz+8ZAjJFut8vs7CzOOdasWUOn0yHGSKPRYGZmhpUrV+K9p91us3LlSvI859RTT2VycpLrrruOe+65hx/90R+l0Wiwb98+sixj1apVxBiZn59HROj1eqxcuZLFxUV6vR6rVq3COcfMzAzGGIqiYHJyEuccxhimp6cpioIVK1aQZRkLCwuICEVRMDY2RqfToSgKWq1Wf+H8nd/5HX73d3+XyclJyrJkbGwM5xxzc3OMj4/396XT6bB69Wq63S4LCwuMjY0xNjaG9565uTmKomBkZISxsbH+Ij4xMdFPsezfv588z/v73Gg0+vfB7bffzl/+5V/ykY98hKIo+hGC+nPGGCYmJsiyjHa73T+uVatWoap84hOf4D3veQ+vec1r+OIXv4gxhne/+91MTU3xta99jSuuuAJVZWpqClVlxYoV5HmOiOC9J8uyoUEwxBGDoTEwxDGJehLudDrs2LGDPM+ZnZ0lxsjCwgL/83/+T37rt36Lf/qnf+Kb3/wmGzZs4M477+T3f//38d7z1a9+lYcffpi9e/fyy7/8y5xwwgmoKiEEbrrpJm666Sba7TZbt27lx37sx/gf/+N/MDU1xZo1a5ienuY3fuM3ePrpp/nd3/1dtmzZwj333MMVV1xxUNrgUGLj7Owsv/mbvwnA3NwcP/7jP878/DyPPfYYV1xxBe9+97v5gz/4Aw4cOMATTzzBhz/8YSAtjpOTkzz00EOsWLGC9evX84lPfIKZmRna7TY/8AM/wOtf/3p+/Md/nAsvvJBdu3Zx4oknYq3lkUce4d3vfjfnnXceP/mTP8lrX/taFhcXWbduHT//8z/PlVdeyde//nVarRaNRoNf/MVf5A/+4A948sknOf300/mBH/gBvvWtbzEzM8PMzAwf/ehHueeee3j00Uf55Cc/ydvf/nb+9E//lF/5lV9h3bp1/PIv/zK/9Eu/xP/+3/+bvXv3cvzxx3PZZZfxf//v/2V8fJypqSk+9rGPsWfPHj71qU+xdu1atm7dynve856+EXXXXXdxxx138NM//dO8//3v56KLLmJmZoazzz6bn/zJnyTLMlSVbrdLr9fDGMOpp57KxMQE3nv+4i/+ggceeACAs88+m/e///18/etf5+GHH2ZmZoYLL7yQiy66iAceeIAvfOEL7N69m3vuuYepqal+hEFVKcuSz33uc9x6662ICCeddBIf+chHaDabrwh5c4ghngvDO3KIYxqPP/44n/70p/nkJz/Jtdde25+ki6JgYWGBz3/+8/z6r/86P/MzP0Oz2QSSh37hhRfy8Y9/nBNOOIG77767n3MWEdauXUuz2cRay9///d/TbrfpdDpccsklfPzjH6fRaPDII4/wuc99jne961384i/+Iqeffvphme+DnuONN96ItZbf/M3f5AMf+ACf/exn2bJlC/fffz+33347r371q7njjjv49re/zTnnnPOMbdU58ltuuYXdu3fzUz/1U7znPe/hs5/9LO12G+89H/nIR/jYxz7GjTfeyE/91E/xoQ99iKuuuooYIyEEPvjBD/Jrv/ZrPPbYY9x99939Y/g3/+bfsHv3bm6//Xba7TZvetOb+NjHPsZpp53G+vXrcc6xe/durr76as4//3xOP/10fumXfonTTjuNXq93kHFWRwQuvPBCPvaxj3HVVVfx6le/mp/+6Z/mrLPO4u/+7u948sknmZyc5D3veQ8/9EM/RJ7n/Ty9955OpwOkMP8HP/hBfvEXf5EbbriBXq/XJ2VedNFFvOUtb+H3f//3+amf+in++q//ml27dnHNNdfwoQ99iJ/4iZ/g61//OouLi/1jAPjsZz/LunXrOPvss/mJn/gJ3vve9/K6172Ot771rfzkT/4ko6OjiAh79uzh7//+7/nQhz7Ehz/8YW6++Wa2bdv2jAqWIYY4EjCMDAxxTOOMM87g53/+53HO8dd//df9RWSwmqAOQY+Pj6OqWGs57rjj+mmAOiUQQqDT6fC//tf/4n3vex8rVqzg4YcfptfrkWUZGzZsoNFoMDExQa/XY2ZmhlWrVtFoNDjuuOP6i9nhqgdijJRl2X//mjVr6Ha7bNy4kU6nwze/+U3e//7384UvfIGpqSk+9KEP9bdxaDnhzMwMjz32GH/3d39HCIHXv/71ZFnG5OQkIyMjqCqrVq1ibGysny4AaDabrFq1qp/mmJmZYdeuXVx11VU0Gg02b97M6tWrMcZw/PHH45zj6quv5uabb+ZDH/oQ4+PjTE9PIyJkWXYQgS+EQFmW/TC9c46TTz6ZRqPB1NQUO3bsYGpqCu8955xzDpdddhkrVqzgc5/7HJ1Oh1/5lV9hdHS0v8164V65ciWrV6/uf4/3vl+9kec5H/jAB/iRH/kRHnnkEf7dv/t3vOpVr2L79u38wz/8A5A4HNPT0/zxH/8x//7f/3vKsuR3fud3iDFire2nh+oyxppjYoyh1+uxd+9evvCFL5DnOWeffTatVqtPTqz3cYghjgQM78YhjkkMht+ttf1HjBHvPcYYRkZG2Lx5M5/5zGeYmJjgwQcffIYWQL34DOoFWGuZnp7m8ccfZ8+ePf1tH8pcv+SSS/jc5z7H4uIiV155Je95z3sO2jeAe+65h/HxcWKMbNiwgc9//vN87Wtf41vf+hYXXnghIyMjbNmyheuvv54zzzyTz3zmMxhjWL169UHs+tpYERHOP/98rrzySs466yxGR0f7uf963w+tNKj3e2pqis9+9rNMTEwwPT3Nueeey2WXXcbo6Chnn3027XabdevW9c9jvagD7Ny5k5tuuonzzz+fRqOB955vfetbvPa1r2Xt2rV86UtfYs2aNezcuRNIxMd6O29961u56qqruOiiiyiKgk2bNvHAAw+Q5znnnnsun//85ynLEmNMv2zSe08Iob8fgyV/9eP+++/n7rvvZvPmzdx1112cdNJJbNq0ifPOO4+TTz6Z448/vs/xAJiamuKee+5hYWGhf398+9vfZnJykpUrV3LDDTdw7733kmUZMUY2btzIG97wBjZt2sSWLVv6PA4RGaYJhjjiIDqMVQ1xDGGwxn737t08+eSTvP71rwfg4YcfpixLTjvtNK6++mre8pa3sGfPHr7xjW8A8LWvfY1PfOITbNu2jdHRUU477TTuvPNOJiYmOOWUU/qL0WOPPcZNN93E8ccfT4yRSy65hDvuuIONGzeyadMmbrnlFk444QTWrl3Ltddey/T0NOvWrXtGhcJtt93G7bffDqRSx8svv5z5+Xluu+021q9fz5vf/GbyPOexxx7jscce47LLLuu//3Wve90zSGpPPPEEu3bt4vWvfz3btm3jpptuIoTAa1/7WrZs2cK1117LZZddRlEUfOtb3+LSSy9lcXGRe+65hzPPPJOPfOQj/MzP/Ay7d+/mDW94A1u2bGFxcZHrr7+eXbt2ccIJJ/B93/d93HPPPaxfv57NmzfT7Xa55pprmJ2d5cQTT6TRaHDeeedx44038tBDD3H55ZdjreX6669n7dq19Ho93vjGN3LvvfeyadMmNmzYgIhw66238uCDDzI6OsrFF19Mu93mlltuQVU5//zz2bp1a3+BfeKJJ5iamuKss87iyiuv5LLLLsNay9VXX82ll15Ko9FARJienubaa69lamqK8fFx3vCGN7Bu3ToOHDjAjTfeyPT0NGeeeSYXXHBBPxVz0kkn0e12ufTSS9mxYwfXXnstmzZt4oILLuBrX/saIsLFF1/MI488wpvf/Gamp6e57rrrmJ2dZevWrVx00UXked43KodGwRBHCobGwBDHFA6nyFeHdQe99jqUfPPNN/MP//APdDodzj//fD7wgQ/0PdbB8Hv9mXqbdR39oCDNoJc66MUOli8OKtcdqi9gjMF73/feB/ehfv+hWgWDKYf6M4PHXy9GIYS+Fz8YUai3c+DAAT7+8Y/ze7/3e/1UwqHnYPD3wXNaH/vgsdZh9jpFMBhur/ex3ubgPtefGTwng38/XIpl8LzVGHytPo4QQv961dusr9Vgnn9w/we/Z/AeGLzfBqMyg5GX+vchhjgScEQaA4cbXMNBM8RLgUMX/MF7a3CyFxHKsuyXyAH9srBBBcN6gh9cHAcXsUEPsF5sDq19P1SW99AF/dBtw5IS4qGvHxoOP1zN/ODP+rvr3w+VRx7cj6IoyPP8oH2sP1u/d9AwOXRhPNz7BtMRh35+cDs1Bs/N4HU49HoeagwNXtdDv2PwvB/6++C9Ub8+aAgMGjWD53DQYBvcv0GDZ2gMDPFS4NmW8Od7bx2xxkA9cQ5a6EMMMcT3Ht9L43u5GPYvZj+XyzEOcfRg0Hh9oYbmEUsgrK3/e++9l8997nP9sq4hhhhiiCGGGGIJ3W6Xj370o6xbt+4FO85HpDEwGMrdv38/F110EZdeeukrvFdDDDHEEEMMcWRBVfnkJz9Jr9c7bHrwu8URaQwA/bKksiwZGRlhfHz8ld6lIYYYYoghhjjiUJfrDpJTny+OSGPAGEOWZf3fB8lEIYQ+C/toxaEEL+fcQXXqh7LEhxhiiCGGODYxWN1yaEvt54Mj0hiAw1cRqGq/OUnNaj5aMViiVovI1BgaAkMMMcQQQxwOL3R9OGKNgUEMlkr1ej3Wrl37gsIgywWDJVnee/bv3z+MCAwxxBBDDPE9w7IwBhAhVj9BMUYQUUBAl97z7FDQOPC++r1S/5XDfbruala3oa0RY2Rqaqqvef5SYzAFMqjf/oJKlnTghwy8UB21IgyekSGGOBag9f/VwEgziy4NhOrX/vRS/d1XY8ZpEhES5DvMPUM8f9TXRVFMdfIPnrfq3+v5C0BFqqsziOG1+W6xLIwBRYgiRE2GABoggIpBgyLWgDx7pEA0oNFX95hgnAUxKOnW0qjcc9fddLtdLrroInbt2sXtt9/Oeeedx+zsbL8/OiSvfWpqit/6rd/i13/91/vSpjFG5ubm+PSnP83evXv7feB/6Id+iK1btx4kVlNzAera0EGhmEEVtPq99fe+MMNjaTqrddqMRiASxRIQHMMhM8SxBiUSAcFocirUQCQgCEYNqBKNIOoRSfPEtDo6ZeB4V+KMgGm80gdylCImA0AMARBVjAaIkSgZaEAkEk2OaASBKBYD2KWZ7hXc/+WHZWEMGCIOJWgEDEEcPQxeoLRgBBp9a/KZCDhK40DTATuFXMCqIiQFtO3btzM1NcUFF1zAvn37uO+++zjttNPYsWMHGzdu5FOf+lR/Mb/iiiuYnp7m//yf/wPA+973PiYnJ5mYmODHfuzHuO222/jnf/5n3ve+93HllVfypS99iUsvvZRNmzbxhS98gaIoWL9+PSMjIzz88MP8xE/8BI8//ni/J/ob3vAGLr744mcYBC8UOmAQLA0PwVSnbOjYDHEswhwSJUsRssGxpn0/VAEVy2337+DOex/m373rTckYGOJ7htpZgwFnxdgUKVbXjwJU2pA4ra6gDM5yQ3y3WBbGACiiAasBEDzCQ9t385XrbqEnWbIIn2NFi6oYAQkFoxbe8y/fwnGTo1gUUSVExfuSr3/962zfvp3p6WlWrFjBvn37uP/++5menqbRaPCa17yG//yf/zNvfetbmZ+f541vfCNf+cpXuP3223nzm9+MMabf3rXuaLZjxw4uvvhi/uzP/oyPfOQjXH311fzX//pf+fVf/3V+9Ed/lBNOOIErr7wSgMcee4wPfvCD/OEf/iGvfvWrmZiYAF4cYVD7sU6tJj+hbzFrbUUPQ51DHFtYSgHoQLZxYIzIoG8hVXTS8NSuA9z76FN4ESImzSuvwP4fE6idoer36CNYRy8ohQiZCE311fwuiBaoOKI6kGFc4PlieRgDKohWGukKRmHFWItXnXIiJQ4PqHuuNEGECA5PU6CZVw1ZEMAhEsnzBm984xt517vexSOPPMI111zTD+Pv2rWL888/n1NOOYWNGzeiqmzYsIGTTz6ZTZs2MTc3d5CWe/37448/zuLiIo899hgXX3wxqsrpp5/OSSedxIknnsjWrVuZnp7m1ltvZfXq1Zx77rls3bqV0dFRZmdnmZyc7Ovbv/BzBymeEivehCNgKpNAqxCbYTilfW9wuGv3YmRuX4rtDJEgVWQs8ZHS4jH4Wr2Y1FnogNANgrdNikP80iFeWiT/RYn1BVEQYwgIJfDFa27n/LO2cvrqjGCaRJQ8dkEENRbRoZX2fLE8jAExqDGk1FAkk8Dm1RNsvPg1VYYPjDz7ghk1JQNqn7he+hRBBYJPnx0dHWXVqlVMTEz0azadc5x++ulcddVV7Nmzh+3bt2OMOag5Sf3eQ/G6172Oq666ijPPPJN2u92XVB7sHQ9QliUAV199NXmeE0Jg9erVBzVOeTEIChAQDWAcBWl85RGcRkTMcOB8j/BSL+CHdkh8KbZ5rEKxlCHibRoPTQRbh9KkiqpBNTYS5yZqJFa/6/C8f++gECs7IFSRXWOFqIIncPUtd7Jq9WrOWLeedkUKz7Rv2g3xArAsjAGF5P1X1QSiaWHLBLL+0n5wtm8Q0rf163C4SQFBSda9GuGcc85hcXEREWHjxo287W1vY/Xq1axatYotW7bQ6XSYnZ1l8+bNjI6O8t73vpcsy7jwwgv7JMIamzdvptVqsXXrVprNJk8//TQnnngixx13HO9617sQEd71rnexbt06xsbGmJiY4K677uKcc85BVfnoRz/K6OgowIuPDFB5Noljg1doa+Teh57mnJM3sCIfZgi+lxhsNey974tpvVjULXGH5aYvDEoyprqq3PHQU2zdcgJrc4uJqVJJpY4HDISqD/r0EN87SHIANQyc91Q5kIiCQpccyZtEhTu2zRIQ3rSpiY2xvyI8a5nYEIfFsjEG0k8lShqK0g9tG2oa4LMtmRYw/dhAggzQU5w1bNy4sb/wTkxMMDk52ffQ2+029913HzMzM7ztbW9jxYoVXHDBBahqv1JgEGvWrGHVqlWEEDj33HO54IIL+n8755xziDFy9tlnA9BsNlm7di2PPvooxx13HJdccskzWqe+eG8SVJP3HxHmy5JPfu4r/OKHf4SxVQ3yZXEXLF8MRpBeio52L77CZAiAIMJ0p8cn/+ZL/Nuf/gCr1k+SIaDady3q9WQpqqgYjdWcMsT3EmIs3keMraNgKZJbKnhxuDynjIEv33A/XWly0bvPYVQjEjWVnh9URj7Ed8KyWAYkVZuidQhILDX1LSAYFKeeZzcHHBHbtxZrW1+IiMRkTMQl1b96gq0n79HRUX7u536uH9avUwKDLZYHUXuCzrl+ueChPc8Hf6oqb33rW/ufr1+rf3/RE36Ex/fs45FHn+SNr7sAH4WOa7DoQaxLnGlNg+cg9m5/UhwSDF8IFHhi9zTbd+zk9eedidM6pK8c7Hc++xa03lB1HSLC3Y8/TSgKXnvGKctjAB/BiCJ0NKfUpQgjVL6/anXbp1Sk1YCghKqELZXoykC6QPucg1TznjAcOc8XmsrHiUSXcfNdD7N+5SinbzoOgF5QQoiEEPBqWQiGOR/oRhgllYSmyM7RK0z3vcCyMG6l/6jtc+mvT1aSoYA6VLNnPNCMuqROlEQs0UFbn2QgDOgA1PrONTfAOUej0cA5h3PuIIOh/kyM6eYsy7LPB6g5B1mWHbSt+vX6ted6vNB2lIPIDNywYx+/d/VDLHYLclXmTIPFUE9TkdrU8tUj1CdmmIN7wYjAtx7Zz19ecx8LVToq1U/z7HbrMxDStQgRVegJ/M1tT/GFbz+IH64yLwKKI6AIPcZoRCGHOoyY0ggksbKY1iVs7FKqMm/HiKoQE/smqXZQCeOEflpzOHJeIBSgRLVgKir/6xt38bc33o8naQ30Oik6Y4h4k9MrOrR7U5RRgaQhE8UscT6G+K6wLByLWKUBApZYW3saKz8pDdxS7LNk8jTFBTQkVZFKnEhrEhBZ+gZZ8shrr/27RQhp6ayNhLpxxGCk4fls76VswlT7J6UYepKl4w6REKHX64GMUhtYZuAM1n6rVud7OK5eGAKGErtU4im1JfACKwqAEos76GoN8XzRLy0UoKqu6UfB0FR9I0loyBghoohkRAxBl8bH4G+DLsvSbDS8Ri8MhnYRuH//HN1snP3tQC8KI1YofFHNr0k2qixLer0uPgZw+cBlGZ7754NlYQxAMgiiKFHqkp4qhK0BMDgxA+I6B8PggXLJEOj/rEqIRJibnSWEwIoVK553WL7dbvPoo4/2F/w8z9m8efNB3v8riSXORaqiDiESVel0OpUJUGUBNHJQokAMEVke4aMjFEvpoeqFIanpCEK9/Me+AFF9mUzl16sxxAiFCCoZQSzO1OWIVSRxaXOJm0PEqKa/DBel541kpGXc+9Qu/ttn/pnFbAVxbj9759qcsHIcVcGrIcQqWtYr6BVFlbIVYsrTDE/788SyMAYMSlbntRFKpBYNBXEpFxuXvOCDoag4vFjSOyqlMUnWv6mqDG644Xqmp2d43/veB0Cn02H79u00Gg02btzI3r17WbduHXv37mV8fLzPAxgbG+sTDK+77jrWrl3Lq1/9arrdLqOjo5x00kl0Oh3m5uZYXFxk/fr1zMzMYK3lhBNOYO/evXS7XYqiYNOmTTQa3xt501iRbwB8CESEblEmg6jSbqh5AgmHVGcMB9YLgjGVAQYv4Tl86SJHxy5kyRkgJvEx0pm1gInJeRCxCMqO6Q67p+dZCKEfkVxKM1aLUJWBlJgcEBELlQDOEM8Dkhb0A93A7o4FVUyvYH/Hs3GlEGKkjEKISlCl8J6ycnDoG94VN0cHNzu8EM+FZWEM1IkCS8RpgYldtDNPMbsPI4GoBUb9s35aJREEo2miktNatR6TjyTLXpJCoXNZPz3gveev/uqv2LNnDzMzM7zjHe/guuuu421vext/+Id/yKWXXsrc3Bznn38+5513HuvWreNf/+t/3V/Qu90uX/3qV8nznPXr1zMxMcHf/u3fctZZZ/Hwww9zwQUXcN999/ELv/AL/MEf/AEAIyMjnHLKKbz//e9/SXgCBx0/qVZXNS3wvaIEEUJI+U2J2q+bjtGkRlCA1CNp6N28YKSUkRACyEsw2oR0vw4ntheHlKwRSk1Leowej1AAeTQ0IOmcV2TP625/mG/echvrXnV2ikbKEnHQEFAs3SBEIziFZk1iG4bVXhhEKLF0zQhSlBjXYKqbGhERIRiX5jSBMkR6RZmMARFMHbkZ2szPC8vCGFAsHosh0grz5GWHYvsdzF3/D4yHKaIUtJ0cnjCikMdIroa2jtFubuCEf/GjyKpTULcST5ZuqNL3c/2dTocHHniAX/3VX+XJJ5/kyiuv5NRTT+Wmm25izZo1PPnkk0xNTfGe97znoOZDMUbKsuTLX/4y4+PjWGvZu3cvl1xyCZdccgnveMc7+PjHP84HP/hB/vRP/5THH3+cPM95+9vfzqZNm/jv//2/84EPfOB7dA6XRDwUJUatwmlg8QQcnQAH5jo0mzmTIzm5xuQh2ZemNv5YRAiBGCthKzdcwI9EiKaYQKnKjuk268ca5DYRj0VTFGDX9CJz2mKlmKpjalXiXJEMVSyFwtN759mwskVun1sifYjvgLpJkTgaeFrNnNJXheQxRTZjJUwU4sB8BsnpkRfY5fUYxrIwBoSAIxAQFu0KGtlK7NYNHLflLRh6gDJqn0NSVz0SIyPRodLEuGa1wBkcgmoiEHrv6Xa7eJ+iDDMzM+zevZuxsTHOPfdcfu7nfo73vve93HHHHagqzWaTGONBnrwxhtWrV3P55ZezdetWYozceeedTE5Ooqrked6vJqiNh/379zM6Okqe59+TG7iuCagN5ajgYwqhpbatkaiRblT+5P9+hXPO2sq/fNO55EKVkBn2NXyhSMZAxJcBbS6L4XbsoJa5JeWepztdfvtP/pb3/OAbeMtrtwJgKUEjXTX0bCuVMlft0KMItuoAqij7Zhf5vf/9d3zwPZfxupOPTzyE4bB5AUgpXFvRvEccjDQchfeIRjQEYhXljJGqzDASqsjA4ao4hobBd8aymp206lgYjUPF4WwziQlVvQueFUYJ1pNYw7ZPGlyCMDo6yg033MCDDz7IiSeeyFvf+lb+9E//FGMMH/7wh1mxYgUnnngir3vd61hYWGBsbKyvPFjfaGvXrmVycpL3v//9fOYzn+HKK6/kjW98IytXrsQ5R57nbNq0CRFhzZo1fdnja6+9FlXlHe94x/fEEEh5TEEqTYRS03OqSS2RBgxFKHlqusvxC52qtP1Y56vXPJUlMtgSR3wwBnmYZ5U2QAwBjQEfAvXLKqktLlGTzHbNZteISiDiEBWMlCxlsQ+zW0O8KKQUWar4CAJFiOxpl0x3C0KIOMPSOLAuzT0Dn62saQKJj1QGz875gvl2L1UEVXwRqcaZVpoEUl1AqeujjzHUI0pVsepJ/A078Ncq6qKKRCV3jtx6YogYAqGShFZNiqq1CnFSqU0OThmU7Tv3ccJxqxnJLOnVxDnrK9cfe6f+ObEsjAFVIcaUx3ZakBMxYqprab+LiypYDg11L82mIvDmN7+ZN73pTQOvCW95y1uAJS2BP/zDP8QYw9atW/vvGcQVV1zRf/3Xfu3XnvEeEeEXfuEXAHj729+OiPDlL3+ZH/7hH+aMM844KOXwUrUvBggCritkvsBqZDEILuRIKNPAECGIkBvDgpsgWkeOYgWwzRf9/csbVYOnqgRtCfUsdLi+DnVGGnzfa4lILPFkdI1jNHRAbdLDsIJ4wWigdAuUjJNHR2bmQTJIFfDP2P4QLx42QM806UpauGdsRtFoIhqxJKKHWsEgtHIHIWCq28HGAEFpu4y8ojTPZSNkxpJLQKmtiZC4HiRjIpkOvvrt2BTGKRU8ymjsoNESXYq6ZBqIopSSESIgBrEZI66HiYm8WYohqBB8pBsgs46W5PSCUBowGpgrPP/1L7/Ir/zbH2XzihZWPUJK/QxxeCwLektdp5/K3743vcLq76gfg89r1L8/mwzsoWJE9XYOlRdW1b4Q0Tvf+U5OOOGEZyUNvmgyodRejPS1FYoQiWpq0UFgqeKt7gUu/Vc5Jr2XGqmHheuXZaYXa8//2c5LXbUudNTSlSZeBcQRxLKvU7IQc57uCo/M9uj4lLKZ9cJUr4GqxSqoZByri8XLgX76TBWrikYh4pjrGbqaJG3rFEIMnpYNNAhkBFxlC3ox7J7rUlbjSfv6D7Zfc5Bw7I6hw8FQJfzFoGLZNVew6LWKwaUUQR1hyfOMvJFRhlotNvavXQSsEXJrCTWnAKHwQqG2rwkxOI/q0Jg+LJaFMQBLgkBHAwYNgzPOOIPJycnD/h1eOgGiqIaQMqB0Q8RjUo7tKDmn3wsoKWJSVpGTWt9i0EhSWZpWqrZX/XBwlNTytkM9kVnKaPjkF27irqen+OMv3cov/snX2HlgARH46ytv5c++fH3qze4jJU3i8gjeLUMoiFKSqmZMgG5HiKHB3/zjDdz4wDZCKjqki6EbIplERANaaQ4HMeycnuMTf/kFntw7Q63SEUXwxiYlz4GI0vfCiVmuMJAMXhyFzfjzL36Lbz+8h1BrN8SS+cUeBqVhhdy5RPLG9vUFtLInrBHyzFL2tJ8W7Raa5rhYx+hkuP5/B7xsM80LXdQOVfGLMTI3N4dzy3eSrJvWHK6vwaHv896/eB6BQtCk0tgOys4Dc5RqCRUJZ3CQDG2Dg9GLyu6pWdavnKRhBEfdr8EMJANqnsCSzxFJodB2t0gOUH1iVdk1Nc+BbuCpucgT3QaLZSCi3LZtP5opxIgYjw8G5+wzJrHhJXppIBqTtoAqEoWuF0LMmfUFu+YW6OHo9AKPTU2zux2IYihV6JJRArkIC2Xg8d0zzHVKxkZTFCcAsz3PQqfDcSvGDyIpDyQNX5FjPjKQJOQtEcXRU+HB3fMcd6CNF4MJoETm2okcPpIJzYajCErA4mPqGRFJBEIjkDlTVYSlMdn1gbJqT9fXHahteanjoEMM4mVZUWOMxBhpt9t8+tOfZt++fZx22mn8y3/5L/nSl77E/fffz8UXX8zll19+0CJZ/6wXfhFh3bp1LC4u9hn/yxW1hPHhMLj4G2NYs2bNi0oXGAEfBK+WHfs7fP7rt9ANExxKD0xNlZb3eX2pcWChw//887/nZ37iX7F59TjOQGKP15znyu+rrSpVVFJ4ct/MIg8+9Aixyh2rWGIIlCp4MaixLIojaqrZmDc5K8fGMCYpQdlnu+bDgM5LAqmIZlEsRYBegIKcgoxoMzyGb937BH/wtzex049y1qYGpVg6pkUXaEnSFShNg2CWjMIiKtfc/jh33Hk7/+nDP0ImYGJMrjD0zcdjdUFKR52qsKKmxkOdbII9890UqbE5xMBCkRpDNazSyjKKqClCJ6kZUfCBUAZELHmW0S16hEqwqF0GPFIp1kJd2KH9stCKwDlEHy+LMVB7uHme8853vhOA3/iN32D16tXcddddfPjDH+Z3fud3OOuss9iwYQPOuf5iX/dtr7fjnOuX6R2teDY+wguCpvrbiBAkY6bt6QVLSdYPaw6OiaP3rL4wFKrsWyhpF6GqY15KExx8rtLrqmnWiZUiXYgRHy1FiEx1Q5JPJSOqYEKB4IkaWeh6ForAcdamZlo2w0mqcz/cNXk26e0hvjuIJtVNgCCOjiq7FjqUJkdtlsRrRJj3sD+06NpRohYp4iO23y01RYEqPonGZHgD9z+1iwOLZfq71jnrvjLBsb0MDWTaVJTgoRMN892CRQ+LEUadoxuSu9JyhjxzzC92U/VADFUl1FL/F+Nyuh4WQ6TrlfkyGd0h1pSngzkDQ0PgmXhZOAOD3fnm5+f57d/+bSYmJpibm+PVr341J5xwAieccAK7du0CUkRgx44d3HzzzTz88MMHEffg4NTB0fgYbJj0Uhg9AoSgBDH0glLiUj60n+x+6TkKRws6XvC2hWuOLIUA9NkNAjEpTxlFEeewjVE60mC6iPzlP13Pvdv20JYWPgrEAqddJATm2m06nXko2imtY0yVsX6mySGVaubwSr1IxKRNUkZhpgx84ZobWSg9GIuJSq6KmIxS8rR8+C5WPVYDVhWHptYoKeyDkZQOCqrsXywIttGXOAYGiKdwjJsDFVIDulgWeB/oFAVXXn8Xf/uNOymAMqZIS+4UZ4Ubb7mLvdMLlN4Tg09RuBgRI9isQQnc8eA2/vLvrmH/fBsfwR9UCzowzw1JhM/Ay0YgrBe6E088kf/4H/8jIsLevXvpdDpA6qCX56mEKoRAp9PhwIEDzM7OPiO3frSLRxxqHDwX+oxoFCVWj7qtqvbfFSTV9LZ98lSj0SVxDqkr5WNlNdcfMzXd+iU/xuUABXpeKDH4mLw+7ZdgVFUjfRJmRR8MAVsRzATwGKKkfOcDO+fZ0y4IJBncEMFqwGtkpuxRFG1s2cVKKjxLHhCVyE11VSKIWlBT8RCOzmujBz2qc6wRNKCaPMJSoauKRo+qTwaSVuNAv1Or6ETy1AhGPZ2i4OkDs4lnFmJVURqI0WNMKgXUGDAxYkJBAAqEbkzXOHVKkcQLEIMXQzBVG916DPfHsgw8jk2oSJ8EWAbFa2CxLLjjsad5Ys9eEAi+xBBxTslyy/TcAvPdoiL2VtUbGsGAa+SEwrNz/xQ33vco8+0uxKQKuxCFQiB1n4gD43WIQbysBMK5uTmuuuoqms0mRVFw/vnn81d/9Vd89rOfZWFhgZNOOqkfBXjVq17Fq171KkZHR4Glkrz69yGWkPo2UtFlUj2zr15LRXFCIYFGnKdbClFHCKbEm4iQ8tUWj5D02U1lEgQEG2M638foKW8XiheDmMETkJrepzs1kBYWA2qrdheRXCxGU2laUzym7NCRnE40tMI8PgS85FBaesC8KqXvEjslRKWn6fopFhs7qa9GJHEWgiNqM7Gn7NG7qNRreQrnV4VkUauFRLhn5xRP7Z7ninM2ggt4M0IORE0laKme/zm2bQQjSjPO04kl3jfJKCBGghpKY+n4iMQumRujG5sUPkMQbtk+TXfXLlaccDxtbaC+EqVSQaISDIRaZoAlrsAwMAD9gxewaukGSyd6FlAKO8EkPVqAxJB6zogg1lGQM10YVJWC1JuAELBOMdaSlYF23mQ2HycGsBrxIfC5mx/jVceN8+aTJ6tr4KpEwTF9EZ6BlzUyUHcAbLVa/OzP/iznnXceP/uzP8vatWv56Ec/yvj4+EGL/uG2MTQEDoGCVU0TpkrlMdbLFdQlNaHKZRdFQENJJpHoy+TRaIbDAY6oKR/aA7qipJaQx64NXZYheZsxVr7cwV5dfTemKOTSs9rvMJK8xRhjIgqqQijRkDpmGknb7paesgh4sXSi0BVoR8u8QkDxoqhJC2IgUAiU8hwS3EcBDqvlVPvgYnl05zQ33b8Nj8XrkqcXMSkiA4fvVzKwce9Bbc5iMETb6H9PfbW992xct4oGPTQGymgIarj30d18/dpbaBeeMgpF0avSekJRCj4AxiwdQ4xHaxDnBaB26qr7PwQkRLyPdIqQynIBX0kLOic08yQY1G57TNSljF1Mzk6WZSwUBb2guEaLToS2ZsyXyhe/eQt3PbKdSEYkq+6No3fcvFC8bJEB7z3NZpMLLrigXzFQpw1OPvnkfsfAoYb084WmcLFALVAj1MTlpcUpxMSa7hbJELCxR2bSHOUSzRaiSWqPkMhvgGrdm+DYRFEU/SZUwHdee0UOSqtYaxFRvA9pgiMJ2KgPOAlYA6hSFoqzOT0a7O+VfOofruf8047nsSf38GM/eCGZFZriq+6TBV6UAvqKdkcrBk+39sPthqCw6B2LkuGtpWFTggwVROKAvO2zQ0nagD3NuPW+fcx3I1IZEbVYje+0OWHNCroLsziUXrSoyej4iDc5Cz0PWU7hIxpTRK1bGHreYBlGAg4LoZJoTvHLUAaIEV9GfM8Tm5YA9GJEo2c0tzQqbejFdpexLKIhGV5BFYvQyHPmPSz6tM3FAN6N0AnQDUKphiBSRduGOBxetshAzQew1vbr7Ovng0p/IYSXvIXvUY+qtrasHpAGm2gtgpMmt4DFl55TT1rL616zBfUFYqr8nQEkYqLHaSRTaChJQ/8YHj6l9/3IwPMhVyoV0ZUU0fIxqT6WsW4SlTjoxlb3fQ9ajRG6quxY7PDPj+zmwZ1T3H7/Uyx2Nclva8RoxASPxJrdcaysMkKSfjaV10jyIo1L51mLJDkbSoyWOI3fMaBVC0R1cTyxe5poMpJxHSmryl/vPScfP8ZHfuSNSCyTTK4aut5QmibRNWgXoc+4iar0CigCxMGwhBxOtvrYRT0+YmVoa4zEICkSV3FmvPdkeFaNNhhpJDJgz8d+O/agKeKWIVgjzCrsm+3R7ZYUMVL6gEhaU5w1GLRP/hyuMM/Ey5omqCsKnHN9qd7aKKhTAFmW9Z8P8d0hIuxf6PGV6+9hf7uXyGd1jlVBYsSHiMdSFJ6Vo4Y146kldBAIEgl4NA1BRAWr4IJC8dzCSEc7Ygx90uDzuie1jhBErBHK0lNE6AalVEu3FNRkYC0hgBSKk4y5rmVfO7JgRmiTY9w4xtiqO5vFYDFBsAFsPHrXl0Gq3aDNk1gYKXrVWVzAeJ888Jh4+xoDogUmdpMx/CwGQV9PUqFQR2kaqWwtFDRsxVUEisIzmgtb1zSQ4Ol6i4glBEuJY6HnUZMTIvig+BDplSHpF8QBc+1ovVAvAFUCjRKLiqP0gRgNMTp8ooWkd6inpV1OXDtJw6YKm544SjF4MsqQFvqGzWjkhnu3z3DvIzspPGzf38EawftE6M1FMVqCFtj0za/gGTgy8bIYAy+kvG6I7x4FcM8TT/P/+7tvsG1mngJIHOxQsZmTlxLFUZSBhihNE6s+7rWedyQolDi6QEdg0QghG+FYtqP74lD9VMx3h/oWtkaw1tCLkRJDoZYuGYVklKYBWQPvQUJgw9o1BBFmeiU9lzPd1ZSjxlII9MRRkNHDEdUMqCEe3eifdqkqAEgLSlkWmOhTVMw06JKlzoLi0iL8XAqfmgrbJAYihl5I7PaGUcR3UV+gKAWWphNGVHExUITUUMqXnp4aOgGiOHxMlllAKGMqi6uvztF/hZ4vkuffVUtRVwbgCAFiFDCJ/JmVPX748ou58LSN5KJo1mRBDXMhUtoGkZRutoC1yh2P72LXgUXybIQndy9SREM0BsRiXeVkDlyR4SpzMI7dZPBRAq3IfrNBmZURvvHtJ9ny1pWMZHXBIYBUte+GXlEy3oo0bESqhc7EVHcQgtKTEfaFnD/72u30eoE3nnE8bzp14zF7o3hfEQjhu57V+3oYKE6EzBq6RaCMwu7pHjNtz7X/fA+L5ETrMEaIRcmKsZyuRq779gPMd7ostDO8gQ6Rm257jJ3bnuSKH3wz88bi1A+Ujh4705oqfWJgp9NBsJQilOR844Z72bxygnNevZFMlFzNc58ZDWhIxkQRItYYJhoNytl5oldihCJYcmtoiGI0UpRgIoSipOstt927jSKm3hWRFA3wQSm9EvNj57o8X0Tg6lvuZO2qlUQzgZocMY4Y60bD0Agl556yhjWjGRahG5Qn9s0zs/sJeipVN9uIQWg2DYsYGrbF2Ng4c2pYiBn/dM09zHtHsA0iWTU27TE4cr4zjl2X74hBqp/WWFKqEmMBsVgSHNK6LvY5IIkTsCCjXH3nU8wudiuFrjovChJT8qAdApi0SBGr8poIRIMPhqiGxTLwt9ffz+euv487t+3h2YWTj37EUBIQ2pq8mVrZQdGqzjkpPKaMQBWq1ohRj9EkBZ3b5EFqVHbv67FYRB7btZ+FbknLZpQxaRk0JIAGvn3vE3S7npnFQKFKQLn14Z1ce882ZjpFav8qjlCJGdTd25b0JpaUJpa3X9pXGUhBfV3y7BSl5yNakQm7MfL5q2/j+vueqJo72f4nD9YsOFh+IFYd8EJQovd8/4VbePPF56S/aWpBnRuAJCGN7xI10PGRfXNt7r7/iZRuC0qsFqiepvSSqFRMByUV/lb1PRpRPbpjOpFUBaNaEqOnVEVDCaFI9f/AlTfdydW3P0wvljiXhOmiGpymHiAmejJrcCSuTG4tDz21lzse2ZHufU3RzGAcOQFiSenyJBTV8xSacevDO5gPliBVF0k1dDF0VA6aY1WXtFmOjrHz/DE0Bo4AKAFiQRsIfhFCe+lW1PrGPDxEoCkwilLICDNmNTEq+C6+TJNdKdAIPUwsmdFIcGBiRgyJN4BJj45XGmE+ibDY1URGU7H0MYwYPaVpcPuugsf2LKTyi5ikiWsxnJKqZFDLvjihaGqyQlRGGw1mSgu+R7cMSQnStjCiTMRA18O8tYw5DxKYtysRbTHdi3TV4qIyV2TMsQqnQt7rQcwqSkgtF8XATz3o2fJEVSWjOpAMUYx6HFUjqGhAQwopK/SkxYIbpYGSExFZIlXUZ+OgMyJCqNQci7IkF+WElrJh9QRFFCRGxHcZy4VCLG1ybJinK8q0GtomJ5gWeSwR8fSioBgWJRFvRQWjio0er0IPASKiBR4lHMV+qdblzLFD8AULEfAdNM4n/otCJ1vJXlbiY0EmXTR6fLQ0fapfKkJBbADGYENJXrYpYoOOTOBMQEIPjUIvyxkxnlFdoG3AZk2yThuLoe3GKI1Do8f6EnyPh/fMc/v2WcpaUK1SMwxUFVTLety8cBzbM/0RAlUhGpdKxcSCSaTKvkf0nSaNyjs0ophQVqqnFm8cC2qTlR4TA7csS5rW4GJc6qSXZNMofJGs7SoPGrF4PbapNoVCVzOuvvk+7rz/MZ6hHCeCr6o4ohqCGEqTEc0IXQzB1E1UhBCg0+mmayoGI4KzhqhK6QO5sxiqvKnCYrdLgWMxKjNdT2kyisoICd5XRodWLGnFVHoTS/6o5dBmVMsVKXSsBy3upa+06ankya3D99+y5JMPPjO6VIqrmIoYqphQ0NQe1nfJVDEifaZ7bh11RU7Z6xGj0CsUFUOsmuaoKj6ktaWMqScFtXKkpDiFg2rMRY5uhYhqlCggFm8y5gyEzBGt0LFQoGhVXRMgdedE8T4uVROIxZGiBKdt3sjWTesoo+JtgxgCGj0xBpxRms4mbRVRbN3BEF/5+ZGgEbEGNYYbbr+Pz37pm3RC+rsaqS9Tui7HKNFjaAy84kjeRBkd37pjG7umeqhkSxSX70JYRknSqELEhnYSuDFNnp5u89XbHk810SGFVItej5azOA2Ixkr9Pj16RS9NsgFUDF4sRbTHqhoxAF0PbXLmCqGrjqCWQUJlUHhw236+fP3dfY5yKUIhptImhKzRoNNTSlXm211UUiWNQbDOEWIkeE/DZeS1IajK3PwcPTL+6dtP8dT+BXpBeHLPHPtnFpKhWBMZDpUlrlijR23pYXXI3lcRGkmlhopQeiUMnoq+9dDP5fRTDUEsRQhojBjfpRUXGM8TYTCGMmlzRO1XOMWo9HpF4tb0kjJeUupM31mG9H0haGUMaLVfSTo661+npGZgjuIVR1CsgmrO3sXAP97yBFPdtMB7AlZCOlc+4D1kzgFKGTzRGLoKBY5cwGlg45pRzthyPIoQTYazUMaSMgQa4mm5DMHiRMmdoeOLFHuRiOIJMVTZUEsHw7Z9U3RDIEiK1qSrNCDedgxiaAy8wlAAEbpR+NqN9/LU3gWQbOAdwnf07hQKTCXmUVIKdCXjrkef4i++dANTCx28RgLJYm5YwWmVd0UoBUqg8LHqtEfl9QjlUZ7b/E4oVehGy3S7oIgkdnLfr0tCTtfc8RB/f+3tFBqxfS890ooep11cntHzikdo9wpUDIYk++ycJWhqx5pZS+YSEz6q0ul26Ublizc+xIEFT6nCQzv3smf/FKqRKCkHigqiiT3fL6XTo9e5qY/Lh9S/Pmqlbx+UMqTnMQ6kFypZ6DrdpghRhY6S8vsqjGbCW7/vLM49YysNZyi9x2ta1K11gKCxEo8KkaIoq7x/8idDTLyDRNaNlfx9Ivd6qWoVY0m1TKb9OcqtbJXUEXL7/hn+6gvf4qldsxjNGFFooggGHyLBRzJniVWTpyiGLkJpHBmpN4cl0hJP4T1WDA0HPVV6GnFEGlmGmOTk5DZVdAyyaWIMSZdAHDFrsuCVXkzVH6q1NgvVT0k7f3RfnmdgaAwcAYhAEZWZHnQ0Qyvd++/Kc9AUDF4sEwktYnh49wwHuiXBOqZLg4+p/rmMlqKINLKczEE3ws75RR7bNU1PlXaI1aQmxJjEn3y/7dexiRCVIijtboGP1RVZqnWjFGFPV1hwE5QiGJJIETGSxx42dskbObv37qNT+CSUU5kCRoQsywkhJGEUY8mdw5J6IUQj+KjMm3FKsZQhMBdtEousojoeBqI79J8dvT0Nl0K6ZVmmPG9UigJCTAutqlRe+yGoogfdAJ0IT+yfZ/9CSRSHJfDak1exce0YmUnGRRkjvgwY6yphyZTOcS5PYejqZhBjKEql9CDWUVbCOB0feXLvHDvneoQIBE+IUKolhufmAi13KBAltfFOfncDi8XFjKwUxBtULMFHgg80Gw7vi2TURWGm4+kFg6u2JSLJAOh1Mb7NipawfbrH3oWIESF3OZgskQ6dEsX1I3hGFQ2V2mFlOJpsBEwyEcWYAZdLnilucYxgaAy84ki3bK/0dLyhXQ7kR+vHd7gnjQbahaEkNcL5w09fy7cf2olXpSRZ3N571GT0iojLcsQaFrFce8eDfPofr636gMeUk/NVvjN6NISj3oN5LkTvIQR82SP4JX355DgkDfr5wtCWJkWlLthRoW0shTiiCDZ3PL5tG53C46OgatCoWFKuNMRkDGTWkmd5PwctIgRfsBhd6tkRSxa9kOfp+pUxUgh0AS/1AlhT5Y5e1MPBpwYAiCTWf4oI1NE2c9B7E0/DUqhQGpgpS/7o01dyzW2PE0yKxrQIOFLL9a6PFFqlCVxSOfQ+4qwjzxt0O12MrQ2zFMnxISQ+WkxGNVmTT/3jTXzlhvtSJYoYCjEsREMQd1R7nkuJqv6STJCk9riIoUOqHEAMGgNZZojqiQLdEHj48Z3sO7CQHCKTETXNY+2FBU5c1eTVW4/jmjuf4O++eS9iHFnWQCXDacQiqLjE0lCTiJyknl6mKrOWQ+4PdKDqROSYzBQcq+XjLzOePWabBk2kLEp6QekWFcdY008VV22hzyLobzI9V1DPQjdSmrxq79pipoSWAJUscYwB43IKv4h1Ob1ul+1TkU6utMnpKHRKj4oQgkcIoCUxFAd9/7Mdw9FkRQ8eafAlmUm686LaFxOqRAmxMRLLEjU53SDc//RuHprPsCOjZBro2hEmrEUrgpuqxRgL0eCMkOWWECPRB7KWw5qAtXapsVR3kV4+zorc4srURXHV6tXkec7+2TmeeGKGM0/bDNZgpSolldST7WghD9aoQ/5VlSGl99T3nQ8+cWWqUkFF+gtSfRqSJDds2zvL0wcW2L3gkSwZzA2BjGRQZHnGrn0zHJjrJnl0a9FKoCupp9qKkEtazGoOQwgpWhMiIUYKHLMhZy42iTapSO6b6/DU3jkuOu04nlUecVmgru9YusfkkNdsRZQ0KNhI1wr37pvm4afnOHnTSgIGK4YQA43MYarKDjWGbbtnKENq4V2SxKYQg4aS156ykZM2TfCNOybY145EMViXo7gqNgqKIypJxpt0qk2VPooF/bJP6R9KZUZL+puRJb2DYwVDY+DlgPb/e5a/Bwrv6Xhl3qdaV0ulhS81oSw1Gu7br2pAQiUnoPhugUqgxNGQjI7NaAYQk1YtVWhZxZeGVmYonOG2h3ayZmYVWyaaGBG6RQ8NSWhF+kZECkR31JApWAJIar6TzOdqyBwFo6a/2FDllUkKhErqPBg01K3QqQjIldRzQcQTo/DF6+7m64/OI6PrOGvLBgp1SRe9mvSMS9syRDITyTNlMRp60WPFsWYkw4SSRtNxybmncMfdDzDnC0byiFVDtxSsSxUi9z/5NF+/8hZ+9Wffx9hki0hSbqttT+kvNsvv4gyavlKx8lN6JaVBgiY+Ryphg8J7gpL44xrTZC8pTJAyzmnytxq59e6H+ObDMxwoHBNqUzhBLNblyXt0jid3T3HXw08TQqyutdISzzlnbOLxfW2e3u+RLENVCUYI0ROiQaKgPhCJlDHSjRbXaqHGIKL88/07uOafb+X8096Xxs/yuzQJA3OaiiAVBymd76qxt4DTAquKs5FgDH/9jRu5+p7d/NCbX4vXAEQ6OJoOGpJaT/c044Z7HuXETRtYPTmOVPeztSNkRnntlvWgPXw09EyOIDSyRMhVFVQiUSJWUxuvSAOJUGtM+7I8uG9EZTAKmvgCg87bcr0+LwDDNMHLgjp0e/iHSKQbAu0i5YQDJCNAUie2VPta96gLKB4CxFiCBlQMdHtk0kMRbCh5cnoh6aVrCneGAJNSEEVYMZKBgUU7Qic6CjdKCyEUPRyWTmihGsmxiQ2tykPTXaa7BRp9NQ+EKhh9dEkSKWlxqSe0gMWLQ8VRqBBF+7aPUdAolICySIYym61mzrUojKXjFYlK07q+n56umcdoj0wKmsbz2GzJTBHJLZw4LjS1y5rRBu9/3QmsHXE0Qo9R8bgsoygFZ4UAzGvOjrACQqRJfT2SX7TkGS9XSMo5k5oQCYG0dBgMAR/AG4f3SkQofEnEEgwpihMVtEC1ZN4rTxxYoIyRBm28yXioN8oB74gBcnyqnrENDJHcCD3bYipYVCJWkujNKrPIW86cxGkX23AY1aQ5YQUo6JZgyJCYDMfgk3yxi73kHUtgb5mx6MaOglGjpLloQLshJvUED+xeLHh8rkcIPYyCI5AbZTGMsWBW0PE5KoHZdsHOtmVF0zBqEg9jx1SXJ+cd61e2WD3SINdAHj3iG+QGzjxujMkYaIilEx0NozRNIFcP1qEuEOnhaAOOklE0Jv6CSqBX+kTqpF4Al9J/g/Tg5Tt2XhiGxsDLASHlMA/3qJaJoigoe22IvvpQHWCTg8JVisGro6i2KZL6q891SzQmDypguOaGu9g9vYBSVQWEmJjqooy0Goho5fmm0HcGBF+QGSWGSnpDoQjCXC/yqb+/gX++/T7E2IrYWOcplrF38xyojzBE+mS02NdloH/MSmJAp7+nxSpWOccY01SZ2SqxLEIUW73HYpyjMdLkmzfczf2P7sHlOadtWc+J6ydomshIZhkbHUs5TuNwLqfT8eQu73tLiTTHAK/j6LkYA3cZhyaqlKTHkKIsVI24BB88XsCLwaulJOfxvbP83p9/nn2dHiUZPdPk6f0LdH0iH1J1l7QmtR3OncVIKvsU9TScZaLR4HXnnM6Ja1cwapUGnvFmxmgG61aOEUPVeU+ExTISVQhBKMuUPqjRLcs0bg85uuWOZOjWkRj423+8lr/8wjUE20yLsCbPXcSm6hcsPsKOXft5+NEdZFUTu4Bjx54D+NJzztZNuAhGAkZClQaLWAPWmlRSKgas4JwhV8+pJ6xn3FlyEVyWQzWDBgxeDV6FxV7JEuH20KNg2ZvRLxRDY+BlwbPfWIms4uj41KVLe21MPfH1Ne7rG7TqL6DCbFBKFaJCTw27Z+ZwktIIJYZOKRQxCaOUFSPeZTkGGB9pJq8GoQxVLhzwRUErd8SQpIuDCkWEhajsmO6wWPiUt/suj215YqlRlkYlhiWSgMZnMie0Io9plY9Mb0iGXIwRiSEZAxqpZG9ShblYjE2GQzca2l7wQdi6eS0/dNlryEKXhhU2HLcebNJ6yPMG7XYntQOvxHPqHPmxhrp8EAFRpQyRIkQkKr2gzHlFTUaphq5a9rWVAz2lFFcpRgrGWHxVBmgQMmsRlLwymjNniWVJwxpWtHJ+4t0/wIYVLZrSw2mXkYbhuHHhvDM2UpSeInjEWTrREqMQotItAz7UJY3Q6/XALGXXlzcG2UIVU8CkFNbe6Tl2zHTpSU6JAZchYjBVisxlqdlW4QPd0oPNaI1NEsSAbbBh3WrefM4WsqoSQFCcSSW71oLYlKoMkoSEsswwYgPff9GrWNkQHBGXN5EYsOopo8Fj6AZlam4RNC6ZY4eQA/TgwztmMDQGXgbESv3v2R5dNcx002AqO4vUnPCUI00Tn8aYwqQqPLJtF//rM19nrhNAoBeEuV7ByrFRjCpeDJEGC+IQk1EEKDwYa3FEWnmqS0+SromAEyL0ykCjkaMx9MlRhQoF0ImOnhpKTFLbS0LGaYFc7nPacyDVjKcDjPGZwd3EJKev8hgqeyA5nIJVJa8WLKBf02xiTM10XEY0OfNFEoXKgPEskmuP3ArNRo4JISnYGUvR7eKcrXTVWdJXP5ZQEfZUTeIHEPFBCTYpON5016N89qs3EXzASWL5d6Jlz5ynrvRvmoCGXp/2IgqZtRADzoI1YGzSG8iM0BBhxEJDlVwLRnPD+GiTJj1GJPESilDQjSVP7dlPLANGoecDZaylh5MC6BJpbbljqcwT0vwSNZHwCnGUtkURDZ3S9Qm3dSzUiMPHZBh7BescWZ5DFd0ZbwgrM0lEZkk8KmcilpC4CDY1QQ4awFgyIzS1ZM1ITksCNnqctWSU5NrrKx12Y2R6bhFUk54KpB2rxmVEq8ZkR8UFel4YGgMvE1JYM/Yn7xiTV1f6wO75HnMBipjY67BUHNY3BkIqW/PA1GKXmx58kqn5dhUqVsQKq5sOqz0kywiasWcuEsXSickjyvIcY5TcUEUfhK5XphZ6tH2gU0QajWaqYdcIxhJCJEYlYOmKY3/P8/T0AkU0+Di4p0cjUkkmmuqcy+r3Q99TG3s+pvx1iInQltjQkcyAlVokGJxGcgKZ79GwaUIsguAaTZxAy0SslhiBloUGJTmekUzoLS6QGYvG1GglhEpl55iA9L3Q2liNMSSybUytvKP3THd6PLpvHo1JVS5GpVBh1/QC7SIp/2W+S24BkzgWuTOsmmhC8FU42rPYC6hrIMbgrOJUyY3QsOCMJWqkZSKjNkV1ggaiBOZ7JaeftAUtPfOL3STmpcl39j4pHi5/r1P6vJR+QkeoUmGClyxFBEySje6XGUpd4WHxGDxCUXqMtTSypPfQzGDUBpp1UM5kqWLAgq3SBbkoTbpkJhE+nRFaNtKySiapjNBag9Meo1L0LZEyKp1ugQVCLRFapQxiTAbCMTOcDsHQGHg5UIWdxdQcgDoHnTz9v/ziDdzx5AHUtap+7VXeGelHCaiUAIMmtcED3tCr8v3Rl1gpOPfU4xlxgTKUFCXc8dA2CjXc89Bu9s0skmU5DWtwIhhJ3lXPwyNP7+fuR3dTkJG1Rinrmm2FECIZySvuKHzztof4vf/zjyxW3Q9F/WGzb8sVMsgHUFIuuPpdDzNLaF1fTkoXRE2GQK8oKwa0IbMpEpNbi1VPpiXjLrJl/UrySgg9kjgkDpI2PkmjvWUCo9rlzJOOY814g7KziLMuTbp1iuJlOztHDurIQNSAoarvFwMa6UpGx46ipLK/jo/MB8envngt37zlXiKprLOZ5ymHD+TOMN40iDWMjqRWSN+4/h7mSog2jQMrgjWpxM1kOZLlaPDkYolk9HwPcclgXzc5QSxLej6mxbBaKMuyrAPqyxvV8dS/LpUaVs1+BgaS+ohowGiqzAAoQ6RX9UDxPpBZQysTMi2wvQVOXDNOq6p1C2IJpHI/Z5JmwOqxEY4fzcliQEIktwaHp9WwqIGogVbuWNEQNqxoVnwqTSRPa7FSG2hLB6TVwdQdSY81DI2B7zEG76m6010IgaiKmBQi2zFbMNUTeuooY0pgxYEtKCAh4mPEq6bcl21WuueKBI+TgssuOJ4Nq1qoKNY1meuWYDOm5+YoouJclkhSkjzdlCaAnjR5YudeZtoFeWs8NYAhlW1p8OTRo2WBNxk7Zjtsmyno1IujhkOOcpmhDrUPHkOdTFQlVKmBNEE8s5tZ3WQoGU5aEcciZekpfUBDJMug1WywaePxGA00CGxa2+LHf/hNNIymlrakdtIGcGj/+ow6Zcv6Fbz3hy5k/YoW4guajazfOjn2S7qW8TV4AajV/1TT+fOaFO8kKoVaeiavFBqFhWCYlxF2LcKe+R4dNZSS4/ImISnQYMUkuq4qqycanLBxA3un5+mqRZyAuDQmRcBaTN6gUMiskBmDjyly1GgmKfERBw2XDLyaYKoKZVmkNbJ/ueqW0wz8vySAs5ygdYqMlOJMDBlQX2I0iZf1jQEfKQIglrKS4nYaaGjJqhHL97/+VRiR9HeEKA4x4Ezid5xywjrectGZ5NHjTDK4DZ68CcEajBUaVjj9pA1ccsGpaa6K0OkFsjzDVeOrds5SNLTSIThGQwNDY+B7jtQ1K5LykrunF/ifn/sGu2fbaaCI4G2LomewRHohlY2ZSuRGEaxAtDmf/uI3eWLHvtR5DUdPhVBJe+Qamchh0wqHVQjRE6WJKnSjMGIiDaOMNmzqtAbYaiKNvsd+zenQZMyVaQEUQ2kgxBKNEES46tZt3L0r0nNjRBVcrY2/XD2dPnuoMtKqfKGpCZWAjxFDQFQpsBTJdcBoCvX2UHwQTJBUxlkrnxVttu/czWK3h7OKWsvkSBOrJQFFnGE0h4ZUDVIIWDPocKVzao1lzEbWNgy5RNS4ikAYKgOlXjZSNX1AKGoR12VuI5gq8lyXhPfX0MoIKk2oJnRLjKmuPOLokTQGOjHyR393NX/xj7fQjTld06CHw5M81NxWqTo1tBoGWwnbNMQwmjcoXQsFXF0NREX4NRm5cThjwTVoZikKd/XtT+BsTkZJq1k1T4oR72shHEmGIy5xS1K4CbRq96v0nx/ply1dh4q3ggIphVYCpdapgFSlVMZIIjZrEgHSRG6OUXGSOnAa62g4SwwlzcwxmksV2pe+maxGcJIqPjIR1oxaBE/ulKaF9SOGcVc7XJ6Gc4zmjrFWk9KXGAK9Momv4ZIIFKpETamjYIQv3nQPN9z3WBUhOLYwNAZeBoj41F42ClOdLp+7b5onpjupFlqEUg2uN89I7NELloCSxYj6QAiCBghZxi3b2mw70CMjID71R5/zsBiVLFpGjfAD551CA4PgQXOIkbmecv4pKzh+MqMZilR6heC0RNQzKos82YNZn3NcNo8PBYijcIbSF5QC7Wh5ZH+PW5+ao2ca2FBNkm6EZWsMQH8CDsRUyZ7IGRhSm9VejJgYsKJ01dCF/pIbgH0lhOjIfOJ0dMmINBiTgqluibc5zgghy2gaj7FdemLpuWaa1EySRbHqyU0qSRRbEZwVTN6iaZQJUZqZpZQcm2U4LVAN1YKSGHBGS+aDsr+EGHp4XyzbCU0GHrG6vZLxnP4aNFK6Mnn/6tBYMBIDZczoiNIIiyyWga8/uI/793rUR9RYolryWNI0XSZcoOiWFLZBZovUttg4RjWQK3TMCFY9TaGqviGVHGYjjBphRAw2a7B2THhs/xyPzo/i7BjN0MU2IRqHQynK0OfoeB8otTIqAY1lqkTQRF5Dk8jXkR9vCyRzOWmZoAUaIrMR5oMioUQrY6CD0lWhAzi1GDUUgMRI7jspcmAbifmfNbFGGDXV1ZdE3nQIwSYdByfJQbIiYCJjOaxoGP7DB65g81iLlhVylIYxOA2YRpMillh6dHyAZotgk8bEYjfQk6Qq0onK1dvnuX+6d1QzoZ4NQ2PgZUYkyWv6OmFVhaZCiP0GNKqCGotaB0YwhtSC02YUJqOowmYPPrmTP/7rf2JqoVuV7QitLOXW6nqZECP3P/AUa1aO4hy0Wo0+d6Gud/dRuOehA+zaM8PIyEjSefeBTFJqImhdSy9J0lW1qs+uDkqWsTEwgL5XLqSQpiZypopBNGKixylVjjqJQV397QfYM7NQdR70OA00RVNrBzKCcbgs1Uo3GhmCYDXiNGBJnIL6u/tchYEdcpZUUmWELMswEhlpJiU+r0IUQ+GTBRGx3HbPI3z+yzdSBkliVMvZUDsM6shAnddVpRo3Sp7nqYOhD6lvgaRS3CjSp7oZk86JESFrJLZ7VMHZ1ONASSk0JykO4aoKhRrOQJZZrBFyqzSdZcO60UQOFkOW5YgqxgS8L5NyZZVqSqkkD6pJEQ/F41DnKmKdcGhPhSMbVfSposZGsXzjhvv43Fe/jbq8z40IFe8mapUMUyjKEmMNjcxSlj4RAHNLQwInrR1nNM/6Y7EekkYEW10nIZV+WoGxsREEWLtqktyZqs+H0LSRpo2MNjLKoiRG6PYKGnlOZmF6ocMffurLfPuxfXjJ0V7J7P596b45BpsTDI2BlwlVi/lEsIkRH2thn8TcL4KmlrSV6FBXoC2p4yBUbPYIHWuZF0e0TWYWO9xw33b2zS6AzRBj+qU7tWwrCt1Ol0beIHOmsqqlCr9WaQbXAF8yN79A3hghqCAxMGYCMUq/bE5ZMgR80L71fGR7MM8NrSyAJINSwVQ1EqqJB0AippnosdQ8ifSenbNtOlgkcxQxYkKPpkRCtCgZQRzilJZTOosLGIVGLGmFHo4kdKNofx/g4IWgYZXMeMRAluVYImNNAY0UPk3AnVKJODyW2U6Hnftn8VgwlqMVOmAQ1LyPoIDN6HmXkiaH5kiqhStq4hqYfIRuNGhVJSCkdJiKpNJCApmztYPaZ8NnFoxoihrYVPFhSPLduU0LlISCorOIEanGitDxSqnV9lA0RtpYulRpQZTUvkqOeFJums6Wap4Uh4rh7oef5O5Ht9PDJmNASRU5pGuWjDEoSs+qlas4/rj1lCEykglNCxtXj/H//PAbWdnKGCDvpG+RlDYz1UjJnMMaYWJsPGl6iKAxvSd3hvUTkaaWTLYadLtdfIBOt0czdzgpaUfPzY8f4J59HbrYpGFQdNBgOBbVO16QMbBUHhef8fPQ1wYfxwoOOubae6n/RrKQQ1wSIlFNokBqXFpoBL5+8wN86do7wKSh5n1qtXrVrU9xyyMHKLGUaphhhIUgYFxVL5vC2mZJJBQ1Bps5DEJukzFgUqYVUNTmbFwzBtGT5RkGg4ueda2Uq4taS/RKn72eOsbV6ncv8wl+iVCHnEGwWskLqxDE4CVdlxiqgxOp+hRoPzQfgZ7kmEYLrKMXNZU9GSVKhpIaFDkNjEhJph5iYO2IZU1TUpRBlhZsGRiNdZpg1HpaxleTX5LibWXp+4uKM1J4xatQInSCIZgMjKkY3csZ2h8fh5If6rFVRwl8VIzL6fQCDzyyp2Kqp/cOFCQm+eKQrqHNGwRNYl8ZHkN1j1fMdVHFuWRg19+f9OuToW2I5M6ACLlLFQh5ltJvY5mlkVvUGHox0onKvpk59hyYpix9iqwZ4as3PcitD+1BKrHlWBuEy2pMCRGLB3oYQt6iNEttb0IIB68FpPnDWaGZJ1G0hoFMIiOZsmHUpVQoVD1S0ii1AtZI3zDLncGJ0mo2cFaqyIEgBprOsH4EmrHDRMNQ9Hp0Ky2VZp7RMJEiwoyZ4KoH9nPnU3sr6XUoi9rIPLbWrxfcqChUEpvGGMqy5IknnuDxxx8nhMBJJ53EqaeeCkBWNfOw9uj1Up4Lqpr07FXTTW1Sr/pkJktiuYrSKQOu0epHBm6+93E6peedl57bn/BKFW6/7ykamSGQkzVyynySA22bFNUkkaBMpaUeB+IExhisBEbzSqrTl2SxhzMZxmVsXGnYsyMw0rRI9Jy9dQtve/1m/una2wk1w9bYqgbX4MsCTCulq1/JE/wiofW1qUKdQaBDIn/1qik/zzNiUdIlY9EL487iTPJ6yqBYFGsdi9HhxeKyHHWJHOYQRiQyabq86cKTuO2Rx3nPD76GN21Zg41Vf4pq4nGDQ6Sysl576ka2bFiZIgq5QigZy1PPhMWYUgNlWRJU8QilJkJp3aJ1eV+cFJEylj6pLhlwqQunakw96TVF2zCWxW6PvQtTrNy0IulgSFKUNCYp1fV6EWPT8yx3GI00tMeIlDhANHmFadQE8qyR/HRNxppUKaR0z1RphNroiklCesQGtm5cy5bNG9j7VI+5XqSjsH9hkT3TC5w0uaqKAihX3/YQJ564kTefNglq8GLJkjnCkX/xBooKq4hKFINkWYpyVu8IMdRmHTGE1Jo7RoSS3CVDopkJXSTpbFiwlTFG9Q2CYC1kmcMaCxppuFRFMNJMN4iIVMUeBkPkTeeeyjp3GotiKXo9vELh0+dKgYChlAZ3PrqHu04eZe2KCea96zdeCiH2Ixmy7A3r74wXFBmoT0yMkdnZWf74j/+YL33pS0xNTTE3N8c3vvEN/uRP/oTZ2Vm89/0TeqxAZEnStt/yNq01VS16rELDS88LH7F5E61Eh9rSYtE0l0Lxmry/rm3RjhZLUqXrqmXHvjbY1PM+fc3SZKUiqM1wVUe28aZlxBpWNAwnrV/BeKZYCxvGBas9RnMlR1nZNJy+boRY9KrIRjqmUEUJahnX5W0vLxVzSbXSeISn9s/wvz/3T8z2SkJQMiMEMp7c3+Evvng9HXWAhRBoiJCFgsw1+MyXb2bHVBvJmxRiMVKSE5iwwhrnWT9qybTk+HHD5tWjmH6ts9Zx6IMgwPqxBievX0nDLHlDVoTphQ7X3foUEaEsiv5EWPqlY1sOy8lzI9X1x4GEVArmSP/vtacZVBHraHcLekEpo6RoW7Wg5I0cYwwhQAiCiNLIlIYJrMg8J6xskdWRLklOjkFp5Fn6znphSjY8Gj0uk0q0qIoupcQQK1uW41eM0sgtPTU8tX+RL193N10MpWlQaN2JVGnbcXqmReq3GKkLWZfFyNKDKfcV+Z88q6y3CsGHvsHrg089CELAxEhuhSAO5wTrMsRYMupojlIXKqbIgNLMM5y1oAFnDNYoo81UUgpLZy53hg0rRjhx3Qomm+B9iRdLr/DkDqzNKDUZHyKOWx5Z4M+/8iD7Y5NQpYPqdetYiArAC4wMqGrf2m40GvzwD/8w69atw7m0Oe8909PTjIyM4Jzrv/9YweDNkyaqSmwjLuU263dETamVng+4RpMQFlGgMBndKixfBfMJqhSSmm9koYNGT8Qw3+4kCno1gERTuVpQKp6CRVyGaMFoHsnxfN95Z2BPPpX/759+g4VoOG5ylNHMJOncWDKWG0bUI9HT7gTEWKJP/cGjpn7tSmVNHtGXtlYQkCr0qv0Jv35WOZsAeIGn9uzn9oee5NLLPJ1Oj7HWGAtF5OmZHjfft4uffscbaGEwGtBel8mGw1nHQ9t3w9gaRsbHCdLGaQfrhRPXreGjP/bD7Gl7nHpyDWRapChQbVE90xZIE2BZYK0jojRzyKzBOUsRhf3zPXKg7HUrHoj2VRJVazHr5YuaFxBiwJHq9/uHpHXKLT1RBWMzirJDiEIRIqVPRE4Ems0mZbdNjJHgUzB+rGWwvsOl37eV91yylcwKPRQVMMYhkOS5RZIWhFYtb0QwBPLc0CuSOJRYiwSllUPWENZOjGFECCZjvtfj1nsf5fgT10M+Ajan9EowStc0KU0TVU8i4VFJ9x5BC1CdC3wGwdX0X14iwCqNzBJ9QT3W6kZNSnKUJiYmUo5fI7m1RLG4TJAsB5NVZZiHjoc0p7UaTZxLJYUaA8RAJsqhfD8nSgNwMWA1Oa5BoVt4mrlhFkNRJEPeROH2R3ZhTYNyciz1mIA+D2FpDyqnod6z5T28noEX7LLXvIA8z3nyySe55ZZbgHSxv/rVrzI7O0uj0UidrHgmz2DwcTjuwfKxxmrfcklYpEYA9i/2+KdvP8T+hRR0LiNJgKPO52uKDnSiSY1SfAGQFn1J07lDiTF1JxSAmBTNPIYYAnOdEidJ9jYg1FXNqQWs4LFkIoyHBcali7GWkWaTzRNN1pg2a8IMG1eOc/xoxLmM6DLGbKCRWxaD5Wt3bafo9XAhVFK4ShFjFYVgYHY40jBA2OhHHCNoKuUqNOkFCFLl11PIf66rzDHKTFfxZclEMwOjFBrBZtU1TlKqkRSqHB3N6JoWRUzEJomeUe0yrh2aYtiwcpIm0DCCU8GJRWzGiA1MxDmkul4oNDUwLotYAxiDiT5pEYhB8jEaLi2NviJt9apGOFah9KlbH3F5F0cpaa15emaRb9y5nfkgeAGrHjQkEmDMQGslRsgQSgxda3C+W3XXTkbySGZoxBIPqZSXwHgOuXhW5pG1E02QiCPgKvc/iE0cmyrCVjuq46Zgdd5jlSkZCwtpwbBCIJLHHmPSY0VusKSGObEsKMjoBqVpIrmBh/cv8s17tuFjoGk8kCVhHZIh8IqrFNZ8jDpyhRJDgWrER9I9Roqw1LERjUqIBmdybFUtE4FOjH3RoRLPyIilCoBijcdqQWZJqWRbp2Jqtdal+FYrdlnnFnEiqFgaoqwKM7gYiFWTNqkcr1qpUA1kWWqh3IlK2weaueCMoeMDUT2igZ445nHMt3vsmvN86Z8f4ut3P83je2YSX4h6bteBk/MyXo+XAS+YM1BHBowx3Hnnnbz97W8H0qJ/3HHHce+993Laaaf1F/YQAjHGfqSg5hHUUYOyLMmyrJ9WWF6RhGTH1tZsLRZUivD0wiJ/8I93sH7NRjZsahGiJEu2tjA1Kcl1YsZqK9iKM+DJcLqQSEyUFCFN8o6SDI8iLFST/mxPOV4KGqKUJsMbhwZPEJsYv5oxQuQt520mFBuIJOb85qbh317xepzAqzavZ+KtF9DOx+i4jFFTYHPDvsLx1zfvZCQoDY0sFgU0Ip3Ku5JnmvBHGOqpTCrDJTWoWXSjxAgrtURck3pia+KZ7yrzOsZsT4k+MNGwNHII3QKrHkcqcyrE0omp9HO0JXiTYYsODcaZzIT3XXI+37cxo5kl0maDgMbEhkZSJcCFp2/gg5efxf/7jceQqszwjOPX8pF3XsLESINoBBd7gGJE6JkRRgxkoUOkQcDSCenYsghtn9MJeTIuqjtyubJ1FLh/5yz/79cf4qRTTmLTpKURC4hCUAs+RzTpckSBEVFmXEY79Mhjh1gqUVNVweSIoZhKGg/gyAmcceJqrsmFUQlkxqBEnBbkmiRtS2mQOSUjEqxDVLHRcMXrTqerSrRNWuUCXWsSr8Eo5522mtdc/BZaGnFRacQeTaP0yOhFwwrrybTHTU8tct89T+FUmNR5jG3hq2uV4g9HGGtAA6IlPig908ArTAi1q4FgkpppmeO0iZFpiJFuhGkFvMcFpRO6iBHUjxGdImaeXBdpipKLwVqfuhKq6VdgQeKEvHbzWk5e1aJZ8QxedcI6fvlH3sSG8RFKDE7AxoitsjfWgDeWIJ6GCSx6ZSFabA6ZwHTh6RkgWkpjUTyu9Dy0r8cDD29jzZr1/Kvz1nDy+klify5VksXyyl2K7xVecGSgT8qp6nuffPLJvlf/2GOP0Wq1UqiyMhhSvi5w4403cuWVV7Jv3z5UlU6nw9VXX82tt95KURRHFb+gXoSKAL3Sg1TNMZS+MVCzVmPZI3dV/b8CMaDB49VUmUjph9ZSejuxcI0oi51esoyl6pLeD+cly1rU0xRl07rVnHzC8WQKOZEWgUvOOYWLzzmFyVbOeWdspeEchkgjsxhJ7OpgHCEGxIJYQSUSKmne5RPBGYDJeOCpab549T0U+kyiXRmUMsDMvMc4S6NhaDYaiKRyKV8VahiNZKHLyjwwaQps6GJIocuGRC464zgufPXJ6TwqRGPxtkmoUjoGZd3EKGedupHMphSAUWVyrMVZp29NIkRQ8QkEQySTkLZn6mBqRZ6rjJ4y+D6LfjkjMcgrJUjJuPn+nXzrzidQaYBxCIqVikRIFRlwhoZoipCoZbHyYFVhxcQIzgg+JM/WCGxenWFjj9xaBKlqyxP50pj0eyNr9gmCUnEYTtm4ntM2HcfJx69g6+bjk14EkQYlG8Yzzj7thNRbwghehOhy9s4Htu0ric4xNbfAtt2zPLW/y86pdpKeroZRXblwpM2CioBkYDKuv+1+7nt0J4lHVL9D+iXHoeptUkrGV667k+172xSacvQKOGOW7mtjwWYpRy9KJprIr7KUfkh8AeG4tWs47eTNSSFUYaLpeM0ZWxnJHYZKGEq1iq6kM2jQ1FMiy9k9VXD/wzsxUbHO0S4MKlkiP1ZHiSqdwtMTS2EcRUwVPEmqOlV8JKqEPCM1sdzxou85YwyXX345n/rUp/hP/+k/8R/+w3/gtttu4+KLLz6IiSkiLC4usn37doqi4L/9t/9Gp9PhU5/6FA888ADXXXcdX/nKV5ZZiuC7gw+BblFU5WmkRbs6xFiXqRUdGrYqFYsgVRlaB6EnNkU8Y5WSqLxKX0asBhbaHaLYpZu6z3VKz40kQkys0guiisSSjJImSkOVEZNCpg0TsFrSzJfajQYCq9etYeOm4xP7nsRz4DBa/UcmlshFSSteuP+JHXz1+ttZLMIh3L1kdEWEuUVPljsauTKSNzFqCJJkoD2KxEhWLPL9F53GD73pNZyyfhznuzgCDSkZEcg0kpmU0wxi8KZJqIad0Qgx0kDJNGI0pSmcKBmK1arQrKKxZ+ppSSeJUFWCVIimTngkBbvC+4OyIssXlSmtShDLHY/u4Nq7H6VnMjA5aMRQEqNHNJFarYnkoU1TA10yDhSRaHOcFSZHBWeqrnQktngTGJUSE0P/3gCLSBIVMio0G81kttUp8+hxorgYaWhabBoo4j0joUuugQYpcpTIu47ocnbPdnhs9zSaj3Bgoc30/AJTi232L3QweU6q/amiAbr0eOUweBelSJaKoxDDnQ8/yW0PPd1v010jhIj3AR8iimUhNrnurkd5dPsUwbRoi+Cj0HR54hGIgrWoa+AkpVQaxnM4tzst8HXn1zQurFYdCutkQm1QaUX+q0uoBazLefzpGXbsmUpCXyLMt5MoVT/wX+WmijKgJsdjaHeLxBOpdFuUisN1lBkC8CLSBDVCCGzevJn/8l/+C9u3byfLMrZs2cL4+DghhINKCletWsV73/teZmdnufrqq2m32zz44IP86q/+Krt27eJv/uZvuOKKKwAoyzLphlfpg+UMVek3vyhDIiLFiolb161LLMmdwReOUoHoiarc/sQuThpv0WqNUC/vSiLd+CA4SjqdLlHGwZjKkq7ep2nxj2rwKmBcEg8yqa5ebKqnNigxgNhARlLHy03EiuKMQigYaY2wYjLD7FTEsFQRUe2RHGYAH1moDYIU6ViIDjexjjhQD10fQuEDQYVOEckyy0geGckccyYJ+/RIQqyiKQd8ytoJTlk7yqaxyJ5yjlF3PEECuUaMFhjJMaRSJrGuzwWBQCYOZ6oQJynSo5oWhkwsCgRNkYEmnnHaOGeIxibDLCaCXSTV1ZcxVD3ZDzqk5YkYMSRBLhlZydTMAeY9ZE4qQ7RASYTaGCGzntEwz7gaFgvLtx/ZScCSGc+KlpCbpQ6UjkATpRUWmciTcZCm+zRfmarLXsNlNS83rYmSPNBcSKxzktGcGwvaY20rJ0sMQFQjzqbrp7jUIMk28OIoIpTiMAbaRa/yZKsvOSJTb6k1cYmwEA1GmlW0YEkeKWqS5LaqoIaeZiyaBh0vlDR4eq7gwGyHkYkxCl9ixSDGoSYjEyGXQFO7/fM9eAoU0BiTSJcqGgLG2MRbqkmXVBEMBSMOSGqfBhDXZLYHwTYxxlKGyM5tO+n55FwZ6jbGsNDu0rJKp1Tm2z1qIajBGocjPz36/PGSGAP33Xcf119/Pd///d/Pqaee2q8qqH/WYkQiQrfb5c///M+5/PLLGR0dRSTJrGZZdpA4xY033sg3v/lNnnzySd7//ve/2N18RdDnEEgd8ISy9KiAjwNtjMViTIqe9NRSSKrIiFH4zFfu4KzjRrni+1+fbuoYCcZWoWZYNT7CdDAYA86a5FkmzcBKVCiFswJShZZTdzdnGqRyJgPU5Z8BJ4aGMxy3elVq82rTItSykYZ4MolkztEvvF4uJvIAEzqqoV0IweZp9w+KRKVmMgFDzyt5BuPGYwrFRChJ4eeiTyhTcgOrrHDFxWfwmjM2s2/RctOep8kqQ1grT7QhiWCWSUyRH0khTFeVhNZ11SJ1axYhaKWAGAKnb1zPv37b97F6fBSvSQzHCsQQkiiUQBEDPi6VYy1rpNgx4iyFCu0ilQtGV1W0aCrHU4UYhPWrHJdvPYsHZnrceP82vnb9fTTHVtOQHuvGHBecvZW9i4HoA+e++lSOGx/lg+/8fl6z5XgkkgpyVBBiSh+I0spTiSGSInpVqCYZBaSnRlPVwv/norPZunEdNoYk9KUFLQqwlq61dL0j2Aa9IHg1BGzlcVd18vViU7HjX9nrJwP/L42PAJUxs2QEpHkuRdRCTNEXK0mTpINQeAjquP3hWbbvnOXVK46njB0yyXDWIcbRMIbTT1qPG+8XeB68N7Ik3V2fnKVCnL4lUP09YlxFxqyrP7IGC0VKH9lKL+W+hx8jik1CT5LGHcbSLUsaJhls++bbdHEEFXJNPQ9SakQ5Ai7SS4oXZQyoKlmWceutt5LnOTfffDOnnnoq3vu+ITD43na7zSc+8Qm2bNnCG97wBvI8Z82aNdx2221MT0+zadMmIIV4vu/7vo+LL76Yq666apmRCTnYsq8mER/pa6grB1vTRaVy57KcxdBg+75FYsWQnY4N9rcDQSPel8kkNZaAY+fOWTZtmCDOgLNKZlLlQS4eUY9VjxhHriW5JCndEBScPcib177AZ9Job+SWk07cSEbyfFvaoxV6jJqRpL3vXBJLYmlyPFJR8zbqSSMdZaRXBEKMFcmub7alyIGkoGC3CORGyUKXZhRM1R73iX1zHNdaiUTFkyFiGDeeS8/ayByGL/3zU1hnEWeqnLWSizKinpafIw8FEFFNnr9BUummQKRafIBE/qsnV2HDihaXrppkbqHAmhyJnmaWVzr8KfrULQvqmE3/BBy5l+fZUU3uSpKY1ZDKXEVjSvUgBJMY/Ek3KjLZgndfdhaPzQdue/ApDgRlstHA+AXGXOS1Z2ziyluewIly+uZ1rGxkfP/5p2JjSKRcTfe1kYqaGXs0spRm6weJax5HWv6qnymicM6pxzPRzDAEgkCTkgl6eGnQKUoOHFjAZSNEtXQ6JUiGxmRI1MMohaqrLQuvKPnzYBM5VOZpepa6LyZehVb7nTgDgSyGxG2KSpmUvFG1zBVaVd/keBZwMTklzjlaVti0ZoI1ayeqyII8R56kDntV0ZSakF3Z5wFJbaYFRAPWOLJmiyd27qXAJg6bzfBSxXakPsbKt1FD1DTnPr1/hvmo7Jxqc8Jkk5UukbxFamGv5Ti4Do8XxRmoqwTe8Y53cOKJJ/L2t78dY8wzDIGabDg7O8u2bdt48MEH+au/+ivm5uZ43/vexy233MKOHTt4xzvegapSluXSDlbkwyMZz7xll2zmOjLgfUX2qoyBWN3voQ5PisFYy7Y9M3z2S9eByylUWZAWC94QNKaUS1UvGxEeefRxmi6S2WQEpE5ekOG58NxTGWtmSNll42SDU49fjQm9lAYgleCgJabKVqYyRJtaqaKMtEwi9BhlzViDs0/dREsSs7qZZSl3x1JJXr+4UpceR0Rf9jp3qxVXgohooOi0icEP8Cvo728ZUhqn2/O0mhlnbt3MhWdtpmkt84td/uL/fpkdB+ZAoCRDXAahTSu2GQOaNhE3g3GozUhqUwVrJxpcfvFZHLdyFCGSEjQp1FqTE2PfuDLUccs6amQoaZEIcjGkn81GgxA8IimX2S16fWNgkBR1sES2HhINeeWhh3nQvy8jhB42dqtS0NRDIIhJXJpEmCA3MBKV1ZlitJcqDFo5WrSZbGZkGpAq55+JkmtBi0hOrNJliYWuseSk49fTyiAzaXlRtE/MDAihSmLXhqaqIZMkMU3lsV509ilccu4WmrHEqbJrxx6yrIGqpd3pIViIqRFGTZSDtN3v1LXw4HM1ONYG/j3Ldf5uxqQe+kzjgDSwEnx5yDtSusqHSBkS615CSdASjREjQjemfp8CFN5j1CfnxVlyhEyVBr5fhnjovXvwfVsdY9WULQ5oDUQh6T4gED0iQt5scf/Dj6fybGNxLieI7XMGYOArK/Ou2+kw3y3ZPrPAb//ZP3D3oztQY/tRvaMNLzgyUBP9yrJkdnaWyy+/HKgXPs+uXbuYnJxkYmICSIv6xo0b+aM/+qP++wBWrlzJL/zCL/RJg3W0AVLdqYj0tQqORNSeZ1poknmauqRFXD3Za2L+qyhl9V5CJbdZfa6MwkhTsJllphcpjTLVFeZsSacV6EZFfYGQ4dQkOdZ8jKglzhiEnKCQaWDEz/NDbzqFJ7ftYWqhw7mb13Hq8ROYsEg0rrr5I2BJ005S3jM4QrHAyjDPqEsRgwx47Zmb+VeXvoq//tItSPRYl6dwILFuR0KswtZKiagFiaDpu165wI4sORH91yJBhZ4PhFhWrWnTwgxV2qbid/S8Z9wa3nj2Fk5tF1x1w93MR5jvgdfEnu6VJXmegygSUiRhzEGOB2vpITiNSOgx0mzy/rddwCqSNKoxBlHwxlC49P02UlWFLOUnPYpDMNFiTEoVjfgpAhNIntFTxWnSIuh4g1TKNVGTcbjE7QiIGpBU1/5KRw20+q8O86oq013PU/sXOHPjSly1oAlC9AYTQirbTWsTMbrEmUjrNY7U/W/UQi5JeGY8L+g0HM7l5AYQy2IRaRlBCFhNaTKVLHmVClYcbzxrM1+89XHyKg1hpPpS6jNpKr0QoVQopDbI0yIlwOUXnMamzfPcfut9jIysYaoQVrQcT2tBz3sChozUijpicP2UW5I4fq5LE1S5++kpjl89wbpmFT8QatME7WfBlxLqhyaOnvPyS92sa9BjHHBoQuh/F1WVwHzPM1d4MhTBE6OhF3IQMLHEdwOYnKzh0DJ1eXRASzxiU2OonBT5qaus0NDn9ZhY5XLqZgUcvCZH9Rg8KpZExYWoFieWFc5jCfTEJglpl4Ea0B6YDI/DakmOx4vFh7RvPa/Ml55tUx3mFtuJ0KqCXTq7Rw1eNGegKAquuuoqdu/eTavVwhhDu91m/fr1vPe978V731/Un6+HX2sQHNnVBWk5tUSMlgTJU06+qkePKlXIOYmq9jSVj6lf0qSn7BJNg6bxZDbS0RwVx/ZZJZhZehOOUgMEj9KCUmlYz0J0GJuR2xLRiFd41fHreN+l57Bpcoz3vuE0yrkOrz7tOEQCWgmp+CoEiowiUiAaUEkSu8etavGuC05i3BoWQzIXVljPpIOcknUrR5kcG4GoGA2I1EefhoXBQzSoLVHcETBgpIoGKKKCmkhJRjdCGYo0pDUSJeXZI6AhYlDawbPSWiYNqFVWNAt29TKCybGuSRdPVJ+ap5gmUdLCNSqBphbkRlENKayoPQoZYdJ4GqFNYcb63mCwhp5J05dET7SSFgoFEY9oBpQoOaUKYw3H216zmqfuBpMlyVvRLkYtnZDT0iIZA/1zoFUDnhIXc7A90LqxFa/wBVryaSNwz44p/uhLt/M7/89bOG48RzRgMPRCE+Nt1YdAsSFiY44YoTBKtwhk2RhqhEwgs47xpuO801fyzf17aI5O8P8n77+DLUvu+07w88vMc8699/nytr13QKNhGobwIEGQEAWKIjWUKA01Sym0MiHN7MbsRig2tCFtxEbsaFYRw52QISVRJEVAdLAEQHjTABpooLvR3lV3ddlXz993zTknzW//yHNfFUAQlIDWoCVlxKuqZ+rdc/OczPyZr7HTbRp1BAZUkgmBkizJRIIRjIIXAV9wuAr8xddezYnD+/HRks/bhErOOI0qgofkaBRqIo4AKeGtwWliWeHkfMmPv+Z67lvrs/3CBnddNU8a7eOJ1RpvHD1tSRrxGEpgBhB2f8ZNaZPyv3zwfv7iW1/Be28/RBYop3PVTCQx3XE42zu7knpXtbiSEvin3Ze9bytd2T4fgG13GM4UPaULHM6s7bBZtywIYCJBDdO4QCsT+nEMHjwO4wwpBFJR4JIw0DbjmQxYXJ5jA4SImoZWM3WwVIg5GsaQqwxOFdR2wXP2O5gFkJmRW1EZw+tuOMhnH32RFxpwYkhYrAoFLVFLpuLoS6JME6IILX1M64klBBGC7XX4nkB0Fd9Jq/yvY/zAwcDsoB4MBvz1v/7XWVtbY2NjA1Vl//79HD58eO9nUkr/DRgVXVm4uzKWzplM0/oMdEodqE8vf38Ws/eco3L5AA2qmXYYAqKO4CM+RbwB6wwpNPSMUATPSmHoSZblXFoa8Avveh2tCNe/8WZMGzClw4jPPFmjuDSGndPI/I2kwnTyqvmqDywO+Ol3vpEyeeqUQTupyP3sQgLXHT1EKZHSR8rkcnTtOpW2rneqxvByM2Hdwxd151/d+GzANPvi7K+kxI6q17QtRd9hRKicY3FxHh22tOrY9tC2kSiWotOaVsmQTeNK1GRDlcHkHGa6AfOHQSySGth9gWJwAnX7s0a+Qk8thgTSAP18MRIg1VTtDtpcQgbXIabHvIv85Xe/ng+euh9PICRHkqyhH1vfrepOwEbZS58Eg1oB3BV1hyve/8tgtN4zadoOTJyrJCnNtBRyNdKKYjQrMgYpWR1FxtHSd5e9C6qq4PjSMm++6yq+/pUHWRoYRlPLcDTBW0Nv7jrU5BZOkqJrI+VDLRowOH7y1TcSk3Sl5Cxb1XYzV2oNtJmnTrYzlg5Uq93cGjz7egV/9b1vYP0jD/P0Exe46dAt7Gws8MT53bxWNHuTXB7/cbwcVc0+DN6TVDuQ43fl8HsMBXKZ/4rXyBVJ831jAUPO3unamJcbT1nuORcysoRZAnaGQ5aXFnKCYwzjusZKbq8YZ2l8mxMSsoW7Mbl/b425DA6cXZ8oSCKM1ijmEmLnwBg8dBTchi71wHUtHotDNVGFmnkX9qjRkpRX3nIV1x0/zblnR0hoqZyhZzxVnDJOBdZl7QqvBsQSYqSVRKpMF0jPGAWxC7K66/yvaPzQmIGZhsDhw4e54447uPPOOzl27Bhwucz/3+pQvWyz0bQNsdvUZkBCZIYhyA9zvyionCVqwne0QKdgvKWtAz4mvCgtHusSRWq47tB+3nTHVdx0ZJkqgfENA21ZFs98HDNvGvpEKjyoz/jDdoMXP/NbxOHFPSSzJZfpLIpJCSvdErAGKQwYoTKRpRKKGNGYufhJbNcHjGTVxYLaCIj7rkboj27Id32mqkzrBh9nKn3d18nArdCxWpqmpXIFVqEqHCtLiyCGabJ89oHT/LPf/AwTDy7zN/Pv6JDLarIq3aUvf4BzH/6nhM313FdOiXNf/gPq809mvwppcUCVyg4qMAOldQehKRmef4rzn/5NGF+kLy027mJSiyahZwxtzIqVYEltAwlSkr3s8nKIapmKECn3tvWXw/25PBQxZg9EJ2YG6gSfstBVmjEuyH3oqZb889/9Ap/+6rexroDO7KeqKuatst8Ktx5eYH/fYqxh7dIlVi+eoxz0SMxU7gyWBpOGOA0ZJGig1JaeRCqJSKiB2aGjna9EPgqNKr3QdIdnF9pLPjhKUeYF9pmGo2XDkTnHQlXS+ICRHAxougLw+Z84TLf/fq99Vv/EAswtMelEy78fcqDjOuXC5SwYkNlXDdMAGTWQ2wVJhOHuiIPLC5ACXg2jyYTRZIIUFiks43qavRdMTnSkw4NZa7HfgTPryhdxl2c+/3u0Zx/Exu0rvh+QuIvQdq2MXJXVlEim4uS+Be44sUJpc1BmjdCzhptPHqBHkzFTKdLTKXdfe4gjSz0GEikteHWIsWgKxJiIarv11VU/NTO14EoY+H8d4wcOBmY3cQYYnKkReu/3lAeBH6g98F/T6Dw68D7/I6XLAEKYBQx5ux64gsJY2qRMY+aL26QkD02bKWNqQIyioeGaowf4qTffzftefws/97Z7KCRgbAacoZJldq1FwhiJu/jNFzHBY/wuxfpT0Gx1mJwOv5AiVjocgMasCSKGQpQCKFLLQj8gZWJbI49s7PLw5i5jTZA6t0WvPH1xSIch2sNF/KjGd2+Rqtl5sQ4BP+s3X7GsZ6johBBizM85UBhhoZ+ltJOtePSFVU5tNDRqcdZ02Xfe1I01WRtdIvPDZ1jcfBjaSQZSxRa3cwqZrucqBAZVg5USrxZPkZHkCl6VRiq03iauP0fy07zBGwe2xCalJ8r6bsOOh5AMGv2euVWH7WQmlJKi8PTqFuOY97Q9kNnLZEiXseoMFDCrDABtTESRztsvW2oXzlFH4elLYzaaTFHOLS+hcAUDJywXBX/nv/sJDi/0EGMxKC7V2aobkOQxtJh6lbj2MEUc5d4/CRWXhYCGL5K2n4HU4qYb6PpzgOs0PHNmOoh1Nq7qBL7yG3IIBiuwVDlOHFjkmqOHiDEhpsxOiyLEGP+jqwF7H+SEwsyAcn/a/0H2PpJe7kxm06U/41VVqRNcGI65NJruiWWpGjaGNReGDTksU1qF3fGYlUGBpEgyRQ7syHGycY5pU3dBnu71Ka6Utf+OZ0E9Oj5HeeEB9PQXSRtP5vlHce0uYe0ZjJ/k5sBkg7j9AiRPSMLr7riOv/iWO6gseziPvhXefe/1LFcZQFyVJTed2Mf/9Etv5967jtOjYVBaki2yv4Fmx9I6wOlLNa2UxK6Vejm8/q9r/ECntIjsBQKz8v+lS5f41V/9Vb7whS/w7W9/mzNnzgCXqwf/LQ3tEOGCEnxedCGmLNbTBQMxzYyNlKgJSZFBaXGd2VCQfMAMXElUy6SN+JCwJlNbCg0MLCyUjhUjLJVgxKPWgKlIpqQ1Dm97YISdc89y6uO/RRpvgZ/SDzuY0GBEkU69MO8NGd0rRvbeRw/DALjx2GFuOLmP5BKPb474n//1H/J//41Pcmpt3AUDkRfXdvnnv/c5Gt/1gdPLYdHMFu+eHBOtT/jUedl8ByqcTtEv3yMj2bGuEJgrFCsJnxJTdUxMjyYpRTFzV8l91H6RoB3TN4kqDZljjDWJnhWMegZxigk1GXxWYGxmG7RJ8ZS5MhPabOCSagodIqkhmJJdqYh2EUPJW69f4o6r5nnwyXN864UhkwikmLPoK5bcLAdspoH/7f0f5fxO3b3XwMtqU9uT/b08MvBW8Ch1VLxCIEt8zzLViZmjlYrSGtDs7WGswwkMBPZXjsoI1jpMCtx28iD75y2SEhCQVLPz9Dd4/hP/Bp2sYQkYPNEUBCNsPfgJNu77PfBD6ic/x5lP/hopTEnk9sLKoM9Pv+luTh7ZR5JsGGUgi3yZnIfbso8KFIUheJ99DiTvn+G7kPl/1lDNdNM9cOCfPbHkZ9+QcAQ1Wbvi+70G0AaYJOV3P/llPnX/o7kSkASNwrNnNvj1D36ZOoBXqIFx3bA4EIg+i5x1w4jgrMW3+X0ak685xoBckUx+50iEC8+wtP4o/oEPsn3/RyBOMSkQ107x/Cf+PX7jLFYjw6e/ztrX/gCJQ4woPWfYV2RAs9jcPnMo804oabECYixLA8vhyjKwicUice3xZTAWp5HluQoRYThu+fcf/BqjVFKbkiQlKbuTvJxWzksyXrKU/cMf/jBLS0s8++yzjEYjvvGNb7xUv/q/6DE7C2dtgdnGnGWIuzZBlz33nKEwFh8jweRe4vL8HFoUDH0gxUSlwgChL4qTQIe7AXJGpOIuA8dU96hXOt1gsPkEEnYgpOz/HVPXp+6Qw98RtM3K5oZCwCXlx+65g3vvuJ7SKMNGOTexnJlWDOsAyaNExh5Wp0qMgmrsNN5fRmMGgoqZUrm3qeZv5vZA6xFjaUNEpEN2awb3OSJoZFw3NGoICs7CjBUi0DEKImUKRE2oqRCruZWvAY2zCc+l+8pE+rJNZaAATFhDJ09j23Vc3MZMLzGXhhTtOpXfQENNoYG/89N3c+uJPo2xvLg9oo6RRCCQWSuz52AG0Use1oJSQ1c5+C9gO0s5OJv6QCPCOCaGbcqo8KLEJI/XgmRKqo4hADkTNSbfuyz1nLPk+cLwF975Sg72LRoCSJa3DbvruNGLQENMMSPgu5lL0zVkeBZ0QhXXGQyfRKbnsASSevYNHH/px+/hmiNL0IFV6Z4TmWXjtsAWvczumO6yr0zM94rLtLk/Y3z3z8SYA+2kM4TC9/m/zOiQwqgN1Co0f2ZlQFBbsJNgtYVTa7u0exWJbOJ0ehjxtmDYRHZDok3QtxlOHDVTY/tVD6NQWockxWhuq0lXRRagLB3Ofte1iJDGOyylHeYmZyknlzrGFlitcaNzwAQTJ7jtp1nYegTaNVTASspgzq69kbWBEgVZeRISYi0L/Yq+ZCr2YhE4uiTElJhzwi3Xn0QkIwS2J4HWzVGLYxSUtmu0vMx6bD/0eMmCAVVleXmZEALnzp1jMBjs9bJe/tRA9g5k1cugvnyKftfHld+94seuHFfYXmSRodmhP/sc6SoE+fOUVTnoO5MliVPAx5y1zfX6qHPstrlHORDLNQcPMV84SqcdIAzozFejZhEUl7LnQEULxlCEMSvtBWzapQ1ZSS/F3NfUvYPDXL56MZ0HwkxaJdEzSl+EyidcA8bPobqUldTI3domGhrTI8acEczm5nttVn/K9P1QQ7/Hx97oKh1RwYeQ5VXjd/1/zfr+ZVkRw0zbIfeJjx8+gNFADA3j8WiPC24NewAtizJwjpMHV6gINFIylXmU2P1MImhBUguaMSErPeG2q/osFgVFDEwuPsxTH/z/svXolyEJ/rln6K8/Qf3h/yfTD/7f2P32H2EJ9AwUKNME9337WbanLYmER7ky50/doRa8MFbL9E+Q2H8UQcF/zJ1XUGE0GbO6vkFyJU+cvsCvv/8jbDcR60oktQQExFBaQLtgwLpsaCSCpNwGs9YisebgnKNIAeMMUQrUVqQYcWkKKMkUtGpxaUihdSf93YL4zP3cOcvwq7+LNJc6oS/Pos0gQjoRpNxma7Fk/Q9DrjCVwDUHF7jtxDKlRJKmverZ93p29/aZK2dFFe/DnrLrrCr1J6dvtqflpGASIu//gz/ivm8+QjDyPV7nO9sQ4zbyb373K3zruV1WRy1Bu2cpKUEc02KJ7abl13779/nqt5+njUpptFNkzFWy5fkFCmOprIOYsF0wYBBSTMQYKRzkAvPl96A4RBxGAyZMKIiolKiY7C4axpjdTSTsUuycwp55gPFjXyFp5+mhWYhr1maaNUxM12bCCnNzfVznOzBX2o6FYuiZxGLfYYWM83IVDRV/9PmH+cBHPkWtSuS7zoLvuoFXniP6HT/3n2PXe2nGSxYM/MRP/ARf/epXue+++zh9+jRvfOMbv0OG+OU89jzf9iD+CVKNqu8WxhXbql6+uflnsxa3dH6biW5RSeL8ODGKiiQhhuwml5IiURhP66w3ohDUYQn0i4hay8RbQhAchrKwJFF2o0BZURaG/9Ofv4M7rj2I0xloL1+KSQHh8sM/K5mCkHxLos5LoQloMvjUAWJmzm8dYtZqLucF6Mr/+eBElEqgEGU8FTRVuCbgYgTnMAlC3eBjSwOIms6bndkVff/D+occ3+t1upnpsqDIVA3PbEbalHOFS5NI0GxoYhSCAr5mrrBEzfoLavLcvv1VN3LvrVdDGxhPA1Yslia3f0SAgNOWqw4u8jf/8nvp+yEyHSKtJ44ugU66/dlBqqHDZ6wszPN3f/EnuenocsYRTIeYS8/gLz0Hw+eI2y/QSyOqC19l7okPUl94nCAm984RjKl47tw2q+OWWnokFQqNBLIAS5GyecvEKZ4KiZ2tsc5ABd9r03qJbsiVG+R3vErae92EsD6cMm4jgSzPq10mD+CTYxoMPkTWdiY8dmaL0aTGiMmgsZRVN0ujIFl5zllDMeunS0bGG2uItqCsCorZW08WVUcp0E8tMnyRFNsMitXs+FlKjdNOlyMFeqFl9/QjINMOR2+IRmilBLWItqAJ7bLjqNkErBcnWOCn3nYPf+Xdr6QkA3obDOcnnjO7DWMfWG0jW5PL2I/vOmH2HEuTGmK8kpipe6fSZW287LEA2U3woTObnN4YkZISVPFJ2Z62bNQtrSZIDWggKOzWLQ88v8H5YcJHwZEPei8Zte8Kx6ltz8OXpqxNhRQSvcogVmhDPniX53sUJlG5bNSlAmpBJQdnyUecCiXk9oXm4I0USUSCMYgx+MkWuvsMcuEBpN7ERU/aOJez/maCm67TbJ7D+DFm7TE0Tph5GAA0OKaa17wRS4/AYjHTgRFKUQpjqKoeTj375gdI8rjC0WjWcHny4pivPHUen+jueyIyq75+r50tdfcl7f0rf2smqvTyGj+0zsBsfOpTn+Jv/s2/yeLiInNzc1lQpQsCXu64gUgGupmUSDZvAOiUQB+04/xKtxiFDnyTIynTLVCMQekU0UhMWs+v/uE3iPNHKGyFqtBqpiyJFnz7yefYfMuteAWfShwNg8KTrGV7YiijsjIYEMMYVzl2vaHo9xDbctWCMEfDJEVcd/1F8khqEVvRSja8EZRAiSORGk9TOOasYNqWMng0NGiXrRqxeBFKBUkNKgWNQqkNJvpOlz1zuNUIO6mgMcISU0qNRDvAaomEdYSGcRcgqURm5i//RzwB332Q7XWhBdDAprf80/9wH6MmIq7g419/njt/+g4WTMSYrkfdTBi4AdvJEW3RKaN6Dvd6vOqaFb713AbD4Og5ydrzBryUFOox6imlz3KvRM+cQS88TVmPmTx6P4vXvT5XGSRi4jYqEcGi4jg2V1B0J4eRkoXgGeg2zed+ld7aQ2ArlAIbW6qqxBoByVJRFbA5TnzmwTOM7QL95OmlhkiJwVAEcAa2nJJCQRGyBWzQAidXnNT/h63RWYCYRXumyfIvf+fDvOMdb6ZWi6rZY+HEoAQtM9c8jqkpmBYruQpjso6HpkQpDYVJqClxSSmN0JOOAy+a8TSieFchhWAlAwgLyXq5PRJp5xLbf/T/w7xjhfnrXg1aITbQD5vUvgYKxAf6KTEWRU3m4BA86hxpJkWjU+gCA1RRo1y1r0991X4EWKosRweGShtCVXBuCP/4336G0cY6f/fn3sLXT4+ots/wt37hXcwkwkRnYUGu2LWaS9ghXJ7T7/yb7v95NOWSvxHDZP4QQyoqk8VzksIffO5ryNyAn/2xV1GmGtSRCkfQxGpbUFtDSnQCTEJDidEWCZ73f/45vr0NdyAYn6icIxmDjxYlsDRf4DYiVQHBFZjUQgGRRLQFMUSsCiZEvLUUGjG+RSSR6h0wPVQb2rVT6Bf/Oc2551m+9VW4WKPjS2BKojoqjfQtpPOPcPazv87RP/cPYLGPtQZVIXQ0xBAUZww37a8YVAXGWLSrYioGU/Rx4qisocDTeiXYeawEdmXAruuorbSoOrx0HiHQHfBX2sjPbI/zPYvkNmCW1H75nYcvWTBgreU3fuM3uPvuuxER7rzzTk6ePLkXCLycGQWzIpt2Ze2kQtKSkZYUxjC393MzAxmYLTqVnDnmvKHbHICQHBvjQCwCtVimGMYxMfKBZAu228hIE1M6so9YjDN58SdlrnT02glSR0x/kenIs9IzhHaXeSud57qllOzblgXO7RVe9jOzonydRgMmBYixK4mOcH7jO0qMlzvnl8tehbYUpouDuntojDCp2+79a5fBOCKWSUik2Okp6GXo0myP2gsQ0cvqYXLlq/+nje/4FV0u+f1a4UmVrZ0hVVWRRNjcHmYHRjEZqKaRJgpuMEezmzEPmSpmcQJve80NfOrxLV5cH3NwvqCsI4UKJENSizEpV4A0EdM2RhPOeMabF1lMFqghTcFrpgfarNc2yzTQGtdsUIVt+v4ifvtUpk2pIiZhUssKW0i7TSoP0neWKk1Jps/pi1sktegVNuDaqbUZAULCRSE0nmhgMyj7S8NMsuU/u/NkF3Bcvj2WVmEUldVxyoyI7sGb2cX6CEW3rKxGImBcgTFC2bk4A6gmrMuVLcPMtCv3/meKjpoSlkRhQK6QoRXJan0VE7j4KO3mc5ir7yLZHlEdXh3GBdRPkAhQ41KNtgl1CevPMpeWULeIsT0wWTSMMMSmyKBY5rU3n+RV1x+lT24bHuhXHB4YFq4/waXVHXbHidHQcKExPHtpxL56AjOSyuxKZ8kImf6aMQN/Rgv2iltqJM9d7TPwsBJlEmF74qlTYjcpc1J0Pf38OlETIpYmpM5cSTqcQkSs5dL6EFNUmaYrpgPTGryPGI3M9XMmbm0B5LbJHBFNkVoNvtnFiRCNQYiYsNHFpguYscdVS5jRDoXfxW6dgt3TsNWn0k0ktpm5FidAQv0U3XwO3XoB6lXs/EEwc4jCIDUsB2WJKcSGt997CwPNnhTWCFL08KZAHHgvlIWh1EAi74EkqHSaA/48mwhdhW0vBcmJT26tCpZs/gb5Pl4+/y0/6H73n3O8ZCf0XXfdxY033shoNGI8HhNC2KMYvpwDAegOrNmBJLkMN9KK3/nsQ3zlsdOXD1jJZT/pdLohq1N5slZ5J+ORqeJJ8Cq0YvDGcGE38K/+4ItcHAa8GE5v7PK7n/oqTYz4EIgdFcdJRKOnIHDT0XlOrvQYDYc88M1HWCiFq1dK5ktLMCWxrDoBlgTiwPRyWXt2rZ0kqXbvMccHkZAiolNcu0HEdRSqGWJgJjAilEY4vFixOOhnidHU2YEay6Ru9sqTsQsGpgI7AVLIOJHZvEkn25GDjE6uVfXy11+iilkOBGa/N5KL/N+5WYbQocqNoSwrUuhUCGdXo0oIkV7VI4aQLZxFQBwmKYuFZc4qPTzXLDtuPrqPsts8xTiQ2dEawY8IdkBrLUWvhFQBkaAtGh2oRyV1VaYpomPanTMMH/hj+rpLfPqruLVTeDF5LlUhefzT97H50GdBI4fmKw6UAe89re3vidjEbsNJaCc+J0iIlBFSjLy4scuvf+Rz7DbtXiA0a5XNesYvbRtnj6+RM34MHsNYhA98+gEePb/LVGzGOmiaNRLwKbe7nNaY2NK2uRUgRnCGrh+fA9KsM5CHs4I1CkY65LyF4HHJ42axaZe9Mev1x4YqbNFPQ1QMQSyCISXDZOMFLn7tk2izi0nblH4baUYYP2X69Q8Tz38bq1O8RoIpMh5l5xxnv/YxpFmnJ4m5wu2ZIi31LCcHgWuWhbX1Ldabgl27xNpU8bbCS5E1Qbo1oswSz7yKYgh7LZLLugbfPeO5ijk7eLLUdqJpM1DWaIMVZZIKnrhQ86/+8GtMUwFJcTLDM2U9gGmABmjJ/9dqbkla5/DeUzdtBhtbR1LBtzXzpWFxLoM4y6qXq68xsL9fsVQZjCb2DwxH5rKVesmE3cc+w/bDn4F2xOj8abAOUqQXx7h6jZ6O8C9+m7LdAD/Nlc1Q5+c2jpHtZ5lr12H7FM9+6UOE8SYSx+w8/HHk1Fe4ZlHZN1dQWcOcBEgRkzp8gSZ6qWapJ+xbLrGSuiMhv99CMyw3IATJz9plcCpkpE6kBbzAzMhJdFZFnq2nl6fB0Ut2SscY84bUtkwmkz3VwZmc8Mu5TbCHq+30wEUMuwm++uwaT53b6Ljos+1M0Jg7RV4TWz7SaMqgleSxKRvIGJWciaNEVVZHnq8+doaNsScZS2MHfPPZi4yjZJMZ4xCx2NjgTO7b/9WfehV/7X1vJFCwOQ7ccfPV/L1feifLfUdjetS2lw+d1BJxe5tpp/BANh6iy1QtgR7qG6J6vCSI48xzn1U89nb+DL5aKC2/8gvv5E333J7bIV1WJ9bQtO2e1WpQJSTDZkist9opJua+Iwk0xSu40XlTy8I+Gcn9Ug6F7Nswa7F+92kmGcVcFK7zBsgoY0OElJF1JgUqmzDtmLIrZSexiGTN+zmXMLHmZ99xF7/yF99OZRRrMzBJNfe7LQbahO67Bn/sBlLRh2RzsCGGoBXaCTZBgGYNbdfxO6dpLzwJRGwzxBpBl44RcHhcDtQuPUN79mHED7n5xEH+zi+9h+Wlhdz6IJFSpMaxXSe8dgeCgEbFxEgMge028dUnz7A19UTVrPCnsyN4FrS9tHdmZjesXa96FCMbPvGtU6tshopas0NhCIEmJXZjopUcOuyb7zPfK5k2kGwuYRtDJ8LbGeNYO0uecQLO5KxMu+qXiZ4y5P7/DNtDGJHqDVKs8zpwuUbT2ooggg1jijimH9eYPPV5qNewpqZsNmB4GsYXmJ76Ju1wCzUDGnF4MoXUD8+w+fxDSBxl/YMEmJw5O2P4n37xnfzMvTezf6Gi8ZEoBePJFB89klGpOZjVfKjM9PaVzLBImojxT6eH5oBHmFFnkyptiPjUvfeUKy1TqXj0xW3uf+IMdVQwNutcBNDOlngShW2fGIVEjAmn2QAok3EsISqqOTgQEVJoWapgZa7EGSgKhwbPnInceHiBu471mYu7/MJPvIG//t57KZo1THOW5tSX8Ge/CXGHWF9EJYJEbJoi4w2quSXs1GN8i4Ya1BNTJJkSabYpNp5mnimy+RyT5x9A6w3Ub1Ne/Cbl1hP8X/6Hv8Drbr+OQmeNKouGllIDc37EzQsT/uEvv4PrDveJGKKp8BTZwUoMNQXbSdkOEJKCemZCV2hCiazXkZ2QGPtESpd9FvJTeNk79eU2XrI2wWAw4NixY7Rty+c//3muv/56brjhBoA9QaKXZ0AwuzUKXblQgAefvcjjF8dce+hAXjhd5r9X0U7Ket3wv/7Ox/mZN9/NG286Cmin8Q8iCSuKhJydXtqesGLmurIw1JTsBGE8jdjUImYeI4aj+5fg9CVKYzk8KKiMQ20fLRVH4uqlHpU21ElIruhkOSPBVLRARXZjU00kqXLGlEaQlEAF40toaAnW0NYjZt3ZWXk115QLQKiMcGyxjyg4vQxBF+OYtm2XsyQa79kZTfl//cYneGKtoaBH9D5Xw0JXCXBC0Cu3LcGk1KnM/eDjcgtC9qxUExaT9eBypeCK5y5Gycpn1mV0dCc8lMV8TBesBHrGY8KYgckKa5GcvVSS1RmNwErfcWjBUVADFqQCzcBPEyOxbpGFY9TMEaQC49HQAnkuMBVRhSJNuHjfhyjm56gWhF4YwsIhmnqIGcxjr3kN7XAT11sg+oqiHeNP3U9z6n7mbn4nJ1d6lJLV0uYKIdSRZ9dHfPCjX+Bv/NybuOPIobzphwzKSimSbMmYAas7NUeW5nAqeyY7syc98cNtWXrFv2TvK5pNnoDf/uBn+MqLE86OC1JvkZAMNkUwwiPPX+Jbj3yJA9ffjgILvYJCLZNWqJOhCRFjcwVA0Fwp6FTsYoqggdJkg6GZr83KoMcNR5fpG2HGOgiTVR7749/lxvI82CL34VWoAKsBHZ5Gzz7OXNpFh08Rn3gBFzy22ebCFz7Aobf9Amm0AapEKfMOkRKaamx9iUEagh+DJsTletWsLXF8sc+iGg7OGZ7bikCkHW1nyuNl5aK9YCZ0/bsogg8+P7uddPb3WyFXNOvwMXagw7zOg1pa6TH0hn1VrwPC5hiibiNIXhPD1vC///vPcvvNVxNToGchxLSH72h9osBiizK3Ceop1x+f49j+PqVJlEboGzi+NODE0jz3nFikTcrhuQobRzzxiQ9w9Q37WNJtfBiDDkkywS8sIMMCG2qoW8zyQZgkRCekdoKkKZNkmS/naV98ksZPGaQA2y+yECaYsMPOM6eIT3yR3p3vYt9KL7c+UNT2SAjH9i9hxHBguc9hU3Prvh5P7kwQY2ijIbmSlHL1tikKfvdLT1IMd/jbP/VqnORW38yhpQ3Cv/y9zzG/vIzZusDf/sWfpkqKcTJzh3jZjpcsGLj++uu55pprOk1xZWNjA2MM3vv/AtoElzG7QkI18OKFdbZaSx0vg0ASXd9NIVnLrm/4xgtrvPq2XeTG46CJphNICcYQTEU9Ddgk1HXED0piUGyMqHE00dA2LTZMsT1w1vL6u6/j/Q9ewhphzgjW5LI8UbPmdppg4i6xHlHO9bFhK5eAzTxOhMrvIHEDMT2k2Ec2yrmA+jFODHbjCYxzJDzJ7+LiFHG9WXOh264NKtlmyHWgmIxJyPNknWVa10StiCbio2faeJ5bG7PROI5WrqMz5YwGI/igRJurCEYklxNTwM6qDT/QnZsFArMsNlsAt1ERk1+/6hQEZyNllaFO7CUyTcJIwUim+tWqNFgGLgcK2Ywp90Nzxp8y6EgcpQiFzloR3TOuCSuCpAmpXYfegPkTN7H93BmIFzF+h8q3oGPoDgYTJ8iFR2FxiXLuKMYqetUrsQ6Gq9scvOencReeYtRfpjp6hPCVD7IY1jDrDyE3vZ6B9PPBlSIDm5giPLtZ8+haZHvkUQyNESYp4CXhkydECKlid9KQJAc6szkVlPRDhQHd2AOfwIxyNyvPJxVeuLDJYxeUsXXYmPNemwJtCFwYTXno3C6vOOpJxlAWDvGGJlpqHNOUCZO90mX0vghFkbNgIx2gK4XZqgVVrj2yxN/9a3+Olb7JJWA1SJwyGD6HmIs548biGFOGC6A9YrNKGK/Sbz3zsorWjmQXCEmww9Po+CzS7FC2G9i4zVwKqFtARDHjVebDJlpvI3MhYwDMrJWVMSOVqViaG2AZ5gAlNqha6pSrfGVXuYtAk3LbIypMWk+IiaSpq+v9yUpOJovkQGDGmAohdEqEgqdkqlAnOlpy7DL9jKeo6yb/HmMZtcrzl8YcOJLo9ea499Wv5NzmmBBzEuVjxGFwXWWF5HnPm25nrm8o8cyVFhsafu7db+SGg0tc967X7lUxpR1SbDyHOZqrVoWUmdPXWyKdvJ7RhdMMDCgWGSyTzGbGZfgp+F2m1TKL196GO/VkzvT7C+jWeQY+IM0maXyRarqK9S0Spti0DWpJ/YOICu+69xZShL4DDZ6BeHqa5d6NVlmivfuYtInHzmwSVi+S3vta0MwZCBhKMdQxcXrHI3XDwmRC0/maXPYHkZdjUQB4CYOBj33sY3zxi19ERFheXuaXf/mX8ws49yOvCly5SORP+fp3e94H42ilwFnXZRGzzFPAWKIqrRh2zTyNlCgl0cKDL2zw5KlTvP2N99DaeULqY9SRxOSyUxuwnYa2YiAEiuQxmrXWB52EpjWm09bOwKkegWXb0l58itG5Z3GNYX4A29/6LAv7j9C7/iBOhXDhEUaPfA534mYWbn8rTCdsf+sPYdpg6jH61BcxmrBxTPPCk/Q2zyAHlzqcwAz5mjPsjL9NQNkFSXkCrXOEGBGb+2wRxbisdhiLImt6+3DF9iSoEXxSPvOlb3DLjddy9bFDVMZ+1134Qe/u5cpN9ksQPvzxz/HKu+/kumOHviMYmMlDW2sgJibJ8bWnzpGalsWFPo+fHVLbeUJR0nQ+cpDpQ3tuaMaSjM2HvlqkK/nP+ovohHbtSeqnvkB59CakXMY0TzJ69NOUc4v0/JgUN0EDVkvwI3rDs2izAWkDYiQuXkuqeuzsrnJw4QYa+qTefqaL1xGkR0+H1M98GXP3L1KazJdOMdCzkVGETz+0yqbso/WZrtWgPHH2AuNQE2IgxQjJ0fpwBTbgyj//42b+ys++1wrfC/SU3FaatW8EarXURZ9aK+alwcQE7RQxlrHts5kG1CghQVlaJBqaJLTJ8M3HX8RH6JUO1QZEsJ1Bk5DolY4ymb36hhApxLDSL7HaoCmSpIeopxqdoyw3ILS40pHOPcK09hTXv5XR6ccxqQYtsdIQy4JR2EfsWwgjZLSKbbeZPPpZ5o5cR/PC45S3/Dhm/3WYZoe09QLbT36TlTfe0TGPpDsYAoghKlSDBZLu5szSt0xTn11x+JTByREhqPKxP/4it95xG1dfdYjaxxwM/Cf4GmjXJkhdoD5Oyie+9BjPnL6Y9780c+rILINpnf0YEKGJsNsmhnWWRV9e6HNmbZeY8ve9D5Qpr6tsy+A5MHAk0VxFaKYUBA7NWyqF0oS8xwbotZ5+kxVRG7dEjEJl5ghygFReRVMdp0AxBHR+Du8i6gwptqA126Hk0MFjVKceZlosY5YOIjur9IJFml1cvYWLdaZOa2T6/MOEpmX+jndS2JJ9BZgyv3/jsjEVKqy4Fi0Mu5oITYOEKUWxQqOWJD1898THlPCmE3uzBbUbEM0AweFNVmisSHuYs8vj5RUV/MDBwEw/YCZScejQIf7hP/yH9Pt9dnd32dzcJHba7i+HQGC2Kf2J6BnIII+ZcpghiQNNlCYybur8cHBFsS2jxXLmqxYruZcXFZ46c5EPffUxXvX6V2Vr0tAiNqOkAwXJt4g0NNYx1RIfEqqWMk1RowQjFAZKI13bQiglcOOJffzEG15BOPNJts48AXodJvaZPHUffukgx699DSLCePURmoc/SBPexeLtb6O++Bw73/oSS8dPMDh2lHTpUXphijOGuPYMYWsVe/AOAmDVdFbMIQdAOsHblc4Ez4EGHCkDsKQkuR623ST6lhAT/fkFfuUtr+Lh+x5lHAMeBZ0iVFhyWf5zj71Af/8+bjiyP5cgzaw98YOOGZw8311HYqjKHz14Glk6xI3H9megFQYVR0gJEpQiTNUy9sojz59n+9IWx44f5HNPDlHNnGMvBakoMZqtUj1Fbv+43DowpqOOJZ+fCVNmVohCfeFxRhef48BNr0PdgBAD46e+iFzzSmwKuOkGxJ1MY51u0Iu7hO1L1Ds19uBx5u78GcQFjt8gqJsnuYpoeiBVllg9cpK4doY42cBXx7PJVBzTHwyoJfKNZ9fou/z+GoFW4cIw0WjJFGWgAY8wCUpJ5vdPMQw06/InNd2zzvcEp+U5V0L3I6aTNjJXtENnCpY2zbAIIVsSxwpvlabodeyBhCViYkJj6sB7QhuVuk04VQbaEF2PSYK6bXjw6U1uv+FqTNlibEKdxRYgIftr/OybbqMyKR/AaH4yotAznTiQZBCt+iH99hJG12mcRSRizn2L8dMPEvuHkN1zVCmCWFKoibahvPMnKW59Dbtf+yg62kHFUWw8TXvmG2x8/Qss77uW/v4bYDxm3m9Rn/46vObd4OYJ5FaCqOR9BmGll2sxDZbVtmB32jIoY54bzUJWu6p8+tvP4pYPcs1VhxglJYrFa64JiHqsFHsHjtHYwWhzZaxUpU2JEBwtmU7ZtJE//tZzvLhegyxi1WC8kOkW2WckSkmVGkwIjMQy7Z6XwgjBe2p1qCyQfCQSswMh2XuhMJZWE1Y9LYZgDKXG3HK0tmN0KIjH4aGeojFT/EhC1JL+Va9k7ppbSU99gfr+D1JUBaGwVK6CGNF2ExNHUBxiXB1g4ZXvwPTnaT7/G/Ssy/bwTZPbkWkX4ojJuceo1y8xf8trMFripEBcH28sCUtS4ZrlOf7xr7yPSW/Ab3z2Me57aDu3EX0CrQhSdC6V2VDO7p0jQsThxWXsBTNNgi6R3DtDXl6BAPyAAEJV3RMUSinx7LPP8oEPfIAHHniABx54gD/6oz/isccew1q7Fyz8KIde8fEnv5ezyXxfc0kxUGREf5h0HNXMbdrre0ruORWqlCFgU+xuuqJq2EzLfPvMCJNqfLODcZEo0Gq2xpQy0JiW4Ax1FILp00s1SiSiuDClLzMmBpQEDvXh4ILDxl2cerwmVJS5doOqWSdN19g99QDl8AX2+zP0154iTqfMNRssN2NIY9oj19D2K6y2mNij0jEmNWgMSArQjtl64kukyQYaG5TIkLwxqxjoFnrP5YO16s3RJ3uxX9weYpPnvTcvs79fU6eUtcwlgARsp220USywrQUuhs4y9nsjof/jxiw8m4kKJURbgsBGeZhhKLDaEpLy1UdPcWanxXdAuaoo0NAiqkRb0GAYm4pR7wCFNszhcy9UDJqUMrWoZA9z5zxWAk4MUZR6/Unqc9/ExF1CglYr+gT6MZD6h0muZNKOWfRbuHo93+fJLv7it9l55KOk6SZBoWgukvwmo303wPJNsP9G3LHboSho/YxxQnYqPHQbaIEJDb4oEWuph1soFu/6NLYPccrjFzf54pMvcG5zyjPnJngdUCdBaInaMGryRpw08q0XLvHUmYt7ga2G+H1nv03K1x47xZn1bbzmjFz3PvKfMddRM9ddcsbpp4HP3v8kz+1kP4uSiOmcMCMWHxIuefx0xM6wpYqR/U7Z9cKZtU0m4yG7sogNhqPzBqsj2tR2jBehNIYblgquXswtPSERjUWcIWMKDRqmrD/2WdoXH2DOTKAeEpxDLBTjsyzGDUwa4ZptiAUTt0gq5jDqSfuvwZ54B6k6Au2UsVaYZhdTb2D9mIIGKzAdjunHEXObTxIvPg7GkzrAbe61C2UMHC1rrDYEW3Fm3KdpEi5GQurwDjExTnCpWGZ9HLBJObtdU0eoY+rEbHIAn5BcpdKASW3WEoDMONKA14ppzIooW8MpZ+M8k6IgSSDhOp2y3LqbBmi1oNQaEyfsBMOoVVxs6BtQjfjSEeKA1AbUZpfTQhLOVZTO4YxQaUOj4MXQt1n8SY3B4LODq0nYOMVvnmHQ7mLFAw2FbTCLh9GTbycdfBVq55HiALUsIlWfZrRDeuJLLLaXoJhjxx0gHXkFsngdgqXyU9LGOSRmqXRTr6NpQjW5RDU5SxqdYeO5B5A0JGoOxgKWQmER5Z6T+3nNoQGL4lFj8BSZlxKzhorrAtlCoAcYDKYrq8bosWTFSSdZZEghe4a8TGXAf+CkbFYVALhw4QIAzz77LE8//TSDwYB3vOMdL4tAYO+40A5Mplw+1LuvozprrXXlZiWlLCikMf3pfYYrPtVO+lLFsLlb86GPf42ggk9CYYWCRBTLKAqqjkocbdvShkRIhqqo6BvDTUcOcPcNx+kRqKzkvrR4Bi7hBEiREHyW/RQhmB7B9Ui7Z1n76h+Qdi6gxtCuPknceJQYhxRpB4iEuSNg5omyTH3Va/AHriY0q5g0okgjpDnP7pd+jbRximj6RHuAnmR1vkwTzJ0zQSnwvOueIxw5vI9JhCfObnBiZZGDNtHDIzFQIGDm2LMzTokUlGmje2X1H6pNoJfv416wp1l9DdVMd5KSLRX+xUe/yjefu5grHmLxSVhwicnOGtMEjTqGtaENii0rRBRnMsVKUoC4SxXHWM2WqLkykFXVLj78Bc5+4bcRv0apNc7vAgFHwJRzmLJk4LehnSCjS/TikNFkzM79f8j2p/4Zk9VVRuV+IoE0fw0Ld7yH5EoUR6ERxeGcQ+wA7xaYRkN59FbMYGmv1JxwDBslSMoGR9pirOMPvnKK//f77+NffPgBnnhhFVRJvsWFhl4Yk+oJmrIwy4MPPcaDjz+dg98O7vH9xsQnPvDpb/LY6XNE6Q4hDErRvftMs8wGGo6WHrWpeHp9i//9977G2Z1ZTcASxXXGURn1rikHwy+evsD1Vx/h3W+7G0ktF1dXabxHE/Rc4j2vu52feO2t9CVkVUHTZZbSIbdl1vHt1nWnJRIn21y87/34r/8h0SfqtqTna0qraEgkY4j1lBQd9o53UP7YLzEpDwEOKZfBLiLGIcOLLOw/iF0+ANMhpTaIOKQZE8bDXGVpay498RBoQ6lTSr+FpaVMgTJsc+9tJzmy3MeibG7tMh1NaJPFd+qCqNI0kTbAzu6YqMqZc2sM+j289wQMSNY2CCJZOVRKSBaj+fMxholkFb4YM17i/kef5vTmNrUIwQmt1QxHNjmQa5sGixI1S4zXUjFsM92zX+bEJrY1hba0MesQlNZgTfZ0LASOH1jhZ3/8tfR02ikhdlVa9TmjR0hqGcRdZO3Z/DWtwa/R022MKkZ7BBPYtYl06LX0jt5NPT9PnA6ZfvH3cc0YU81TpRqTAlotULsFEgkuPUF/+FyWEU8FqsJ0tIuMV4kXH+b0Vz9G8jsYElbAqcfEHSRNc/AqWQMmiAM06zuESJlFsDsQiGQV2lkrNUVCDIQEqZMP+ZM73csvIPihKrQzMaF7772Xf/JP/glvfOMbOXbsGIPBgN3d3ZeJzsCVnPbLYqg5QJuVLy8Dm2afpNBlFfHP8veaQa66v8Whtsj9MLVMfaJfWlzMC+bc1hY2CUWbFQHqpGiRD8y+c6z0C645vI/SKNZ2ylhiKUqXlQ+TdpapIw4PJFcjSJh2k8XJ87jxeVLwzDGhPfUVwuoTlOESbJ0nmTkK6VHrEpNDryQduZndZ+5Dw4RkekiYsDh5gfjwByE2CImBTjCaul68IYrBOcNAal55WLn+xBIxBobRce3x4/SdASkIEXrdIRVxeU5TIAbPuG47jAJ7M/fDjpliXYYZ5fs9rhsi2eVu2ywySkXeLFLAln0WbED9lIu7hqmWPHd2i43NTRKGqiogNBA8hkC7+iwb3/48Jk5y64uMvrepYTlcYiFuZ+DV+AL1o38EuxeYlPuwC0cwpkc5XqcYXsRN1qEdY/2Ype1HOVY/gZlskKol/OIROP5G+je+lWAdqiWoQSmpi/3o3BHM4Cij+Wsxh28jzB+EZsKASNUpPfZLy8HCc4ARJw6tsCXznE0rvDAyTNXgXEHjE61PmKCEkIgdubINwjAVTMkmUyLfn/ZZx8QG84w00y6lk79OXcVHyDoAiKImr0AvwkNnLrEhc0xlsKdAkTC0CSKGMKO+AcPhDrddf5Sbr1rCasxeA7YgxkgpkbuvPcydxxcpQksfwMyeOYNq7jSrCFYDRpVkyfr2zTb7pqeptp4ktVOUQc703AITt4LXhJmsI1Hhmtejt7yXSXWEkBxJBqhk0yFefJzB0ZNw4CTpxWco4xhJidjsIKnFVAXVwiJ+dx38iDg8x+bDnyZN1qDeZPjQp7hu0XN0saBywmg0wkokmJImpi6IVqZNy9Qnpj4QBSZNy+GVOSS2uYrTtRyYrSoR0Kwf0qjwyYee4eHz6zQYJIGqYatuiK4ipdySDChNxxoSlNa3LA4caiyN6eFNxVadqKMwKG2WHE6BPg2TNhLUULkOwGmgZ4SDgx5vvesalgvBzmypEVQKVPo55vRjSr+Z22uUpNVnaR74PYp6u0uiLbGYY7p0FXLgLrj2DQwHJyl7c8z7S8zPz2HKZSpJSFGgxX42ymP43n7MxaeQcw8jGmnUEmNNu3OJIuwikwv0/TaSfLdvgKk32Xzw4+h0jZmfmGJInRgTKCkFCny2n6ZH7LQEhKzLQPSEEPBR8rOcUZlc/vPlFwjADxEMzLAAqkpRFHzpS1/i/e9/P7//+7/PRz/6Uc6ePbtnVPSjrg4omrnu3U1ImjP/1HFt6UQ9vhNdqCx2Jht/9u/PIwFBE2KLjkNu8CoUzjDo5mJnOuYt99zBdUs9YmwZ1koyFVU1oDKWQlMuCc+yM4HgSih63asINrb8yp9/Cz//9lcwYILz28QwxjQ72K2zuLLEHTnJcPV5wjNfwcZdWD/bofgFt+8E+25+A025D3/2QdL4Ai2OaCs0RcLjn0DabWxqkDhFiGjSXOJVKJ2wv/K85sg8c+rpayCFTBP0piAUfaYhUcYs6lHP5ihlPvu0CczgZob4QxcHQlRaVdquvJMVdrPlLZplVFPwGa0eW2wKlE74iz/9Wg7u38fmSNmpI89fWCP6QEpw1w1HWCg7VwNVtp57iAvf/AQaJxgBEcUasHgKv42NDSp92tEGq5//LdKFp+HkqzAHr8MuHadc3I+ZbCDTIa1aBtN1iu3TFKmhrM8ikhj82C+xdM/Po26ZJIJKSZQ+xlUcfNsvcugVb2fh5J0cfs/foVi5AbN8FeyucqI35W/87Bu48cR+lmzi77zvdfxff/FN3HZsETTSSMkogKaIsZbtADtkauHYKw1CSNm7fUd6TKGjp3//QC0hjFPOvIm+07XPLTOnSpEiTnOJFjSX8YEHnjhFa20OCKNn0CtZWVkhqhKidn4d2ZVPNZvf9A04DV2gkXveYhKFKH3JGIgqtSCBECGqZJwAQKyRtIVNw9zaNIL4IX3bUJiWvg0YU0IqYOUG3M0/BkYpJmewocYOjlIu3cTc1a8gLRymd+xaEIOJLYy3kd4S9JZJmxdxqUXDmFRfxKcAvQH05ijCBPyYeusFzt/3+7TbF0mTDda++Uni7nkqCfRKh/cth5YHUFQ0Mwl7k6mUPsE0JJoEbYjMmzYD47q1KSguJRy5AqqZNsAkBP79J7/MJ775JA22S4IAW0K0VMlRZgPH/H9S1knxbcuhhTI7/RlHjJG1nTFBLYPS4hP0LLz11TdTJyGIo7I5SHaSJaH7GlkU5W2vuZXSmr3EyeOY2rmcmMUGSZmd5G1Fb3ia+K0PIT6ClAQD8ydexfEf/9u4AyfoX/dq9v/Y36C86q68t1eLMDhMkBK185jDt7LvrX+V4hU/TruziZ2s55QptMjkAlW9nic2JjRqZ89iEI2EZo3V+/8Q3XgK1QjRY7v21vEj+xkM5sipUUMrwq5U1Drzt8ztNTTlqgnZFXVGDX25jx8oGJgd8sZkP25jDKdOneJ973sfd955J7/wC7/A2tranmPhj1xfoBPMiTM/dM29m6Ts9auvrFgrOVDYf+AACTJi9vuMTooIUSV4DwpF0SMx40NbCjEUTrDScPP+PnccHEBsOXVhm6qwDJgwMAEN2dc+GEdUxUoiaqKqSgwxu6H5MXeeWOTqZXBhlwET2hDyQbYzZMwSfv+NiDEM4pCkJaUVnMkgLnvgKNWR64n9gwyaDdIzH0NOfxHT1kjyFBIwacrUzBHNfKZode2TCNjkWUg77B8+wzwtLkZsaHFWaY2gqcmmJGTa4UPPr7Nde3xI+JiY+kQys6n/IUWHNGMHn3hhlc1xptGFCD7CpVFg2gZMDPTFU5nMjTbaMqdjXnHVMvtXlri0ucP2qCFQIBrwvuHkwR7zLmA0gi2o/JCl5hxCM9NxwVqIUmGtY77dQMarQKKINTrZpNp3DCnnMf2D+IO30FISpjXTwWGsH8N4BAzg7CNEo7gb3oM99ApEXNaoMNl2FrHYE6/BHrgJqQ7grn8b9A9i5/Yzeup+5NwDvOXGZW48vMD+0vOmG1d45+2HOFB6emmME6Wtp7hY44zw2LldvvbiiC1ZYFcLHnr+EjtNoFbLMxuRZ1bHHeR/b2V876nveqOms9NGIzHE3GJLEYk1pJCFYzTiUic9IRGVQBEa5kxksWc5cmh/RrvHfOC3qhn0CcwVlr5Az2Y2QuoUCDNjUFmysBhGxNVTtMMXcSZiNV8HgKQxu6e+yuj0/bhZaFrv4ub2w+AQxaDP2M7jB0eY9k5QnLwbKJCLT2F215FyAOU8evh61ntXYQ6ezPLIVmilR10ewCwcwqUWAdpzT8LkPFpUUM0j5VwWR0oB225z0F+koMFoYB/blGGESXkey8Jyw7H91NOard1ppgEaQxMjAcvUdzp3xrFQGfCZSZGD7ZT3iNAiKWCKDuekytAXTBnk3xfbvP+JoUyWfjSZCaDgfcwW21EY7g45tlSwYFuWSuinKfVkwqQNlM4xbjwmNtx21TJbwynbk5Z+YYGE7XQfnAZ6KEcW+1SuzHVAyVTJqLlrl2L2o3B+Si9u4/yYXhpjpCCaMpsR90/SP/kW2qIPy1dRHv8x4uG7qM0yprcM5Qq1nUfdAvT2sXznuzAn7iEVA7JRkKVINfHMw8xbD9Uy1FlFUWL2CsiVvhErcZX6+W9i4oQ+LX0CEgNXHz2MKyt8EtoYObUx5f7Tazx6fp0kuYIQunURQiRhCapZaOp7bVwvs/GS1e/vuece9u/fT13XfOQjH/kTgkM/0iGZXqXG0kRyZJ3yIouzbBK+4/4kTeAMrcbOdOJPGdpxZbu/NQZUA84KKUWapsHagso6BoVhuRd57dVLvPP2q1le6PHNJ1/gxIrhZ15/DfvnWpzxtM0UYwSrkTLussyE/a5F0hhSjU01Ju4iqSFqkSlBoQbviXNHMXf9FHLkdkwX5evJV5PoYZ2QSkfdX0bLRRaO3UoljvT5f832R/8xuvMkPWpqM0cCppAPhdRiNCCdTKxVT7/d5MLXPwShZZIM4kfMmZYK5aDsMplOGSbH+VHL//pvP8bjL1wgQAY9pQ5Iw8w8+Qd7PlTyR6Pw737343z7uQsolpggiePbT53hzG7DRApS5w8xwrI4P8db7jjKfgeFs2wNRwzHUyKmc37M2dWCm+FJLFVqWAxbiIY90RjXbahJDXbzNPWZhyHUaGiww7M4V4IZgKmobnkrXP96psMh9dxB3METBLtIa5Zp1y4wuO4OKE6CKbP5iYLVWYvKgVkgSYWaHt4OSFJS9EraZ7/O1jc/zqAdUsSWKnnmUmKgWW2wCB4NAV/X3HhyhVfcdoL7H36OD3/uIabGsVYH/rff/hgPPvU8k+T46hNrfOBjXyfGTDP9fiOlREy5N6riSLZH63JlIfeFlaSOqZqMYO8O52gVJHJgvuDQPMwZz1xp0NgJ6SSl8YorS6wx9JxQiVLs2YDl9ZqZC5FXXXucv/bOe9j4+oe49OAfYdMGRdreq+pos8GFL/wHzn7q36HT9RzJNVNSdYh25VYYHGbuje8jXPdqRm4edQNau4w2U+rhNlr2s0TviTuZu+cvQLEPTLYQahaOU1z9CpJbwGhATUHz/IOk7edokiUUc1Au5uZxSpjxJgt+I+NQjMO2O2g7QlXp93qQIseXevh6wkOPPkXKCSxtyIyYaWtyhaCNmTkSYYIwoQscZwJpYnLAbSIkSDKHcYv54EstjWrWLUCRGCEqLcpEE8FmU7VJq9x0tOQn772eA27KbccXmK8MPiYWBo66jYR6zKL1bO6MGU49pbVYyUmilBVGBJNyI8ruSXVnP5U5HTOIFxA/JonBhgm9uJPVW3EZr9PJ/opY1PQIOJKUqOlRHbkVPXgbakrECMEOUNsDHOqWiW4FLxVqK6LtI35Kfe4Z5MAx2v4yMt6i327DdBOT6g4b1OJ0ysbTX4fpKjZuUfohlWR2mYrQpIQXw/v/+Ov8w3/5YX7tDz/TOYQ6vBpSVNo2K7CGtNeU5uVeHXjJgoHhcMi+ffv4+3//7/OP/tE/4rbbbgMu9/5+dNWBGYQwHzttDHzuyw8wnDaX+8w6Ky3T9bTIWXlZsLG9zZlzq9/xG6/40fwKqnmhS7bMlJRQzXK7MYRctreWXmE4smy5/fgyP3bXNRw7vEgwJbccW+Dn33wzzflvE3bO0zeRUlqKOGJ89hEWJqe5YTGQVp8iXTiF0wAxgJRM7DLTUGHqCVWsiQdvY/HH/nt6B66j2NmgjhVy50/jqwMZxOUqxoNlku1THrsVBkcp/JDl4VPo818CZ0mmQJKwGMeEF75KO1wFAtLp6ItvWLQtg9EZnLNsSQ/1ExaZUk3XOOafJ4SWzz/xIs/vtmzGHtuNp07gk6GJXS9uthkBl7WD9fIsz8Cd+p0wwctSufnPCIy9sj1picYSkhCxNJQ8dHaHD9z3NKsTw8MvbvHMeuTAvhXefucR5vHMlVlLIGhWIrREUggUxrDctzhriCJYIlUa5zK4yRLSVhQXx9kvIETSdIiZbrPkL+G2TxMpmNBDCczf/Hrsq34a0YDpL6JX3c7Q7SdpSbtylOVXvB3VXk5ayXKwpAZH2z2jl5UiHVnkxNrIgt+gqtcw2tAvS8QWWMlPfRBHTEJMBU0TueuGw1x9QBANpBRAPetTYTtVSDVg1CrDUNJQoTEh2llyqV4x65fvQUq50tNECFKw0xrue/wMW00giEHVEih4cWvMN596rsv4oVZIRjhxaIGrDpS5VULMgXRKhKS0XplfWKLq9aiswSWlsLMN1XQzkWmCh+fhZ95wM4f9C8ztPgWT04ye/nonVxshjeiPT7M4PY2EYcYOpQi9A/iVG5kOTlLd8+fwR27Oxk4a8HPHcdfcgtoCyh5IonfyLpZe83M0boVkHMYWTOePUx27mVjME1VxiyvscxN46pvZP6RaoDX9zJpRwbRTrN8hhUDCUBCR6YTClVjnKK1hqQcmBYqyzBYjKGfPX2LaNNQeNnZqhuMGOyg5td7yzOoun/vmU5xe281celNk8DKARFJQCI7kC2xSYmxoNB/8MWunEy20heHZ1VUefPYFhj4wnERuOr7M+956J/tszZ1XzTNfZqGsXs/iU2YlLJY5+xVXUMwqAqXDlmUukceQUfid5wma6Xa69TTxsf+Af+TDkGq0XCFGC5p9O0qZYkRwKiATxOziVDoX2THl0etxJ+5ALSBNJ/UMJJ93fGOwzqGuj5ZzRN9QhBaO3Ehwc8j6s6yENdL5x5mcezrrGJi8PxU6RuIm289+i7LdxiZPJTG3bKKSXMG6N2ybZbZa07kSZKGoqDCZTAhJr6iMyxWHh17e5l5G4yUNBj796U9z7tw5tre3mUwmxBj36Ic/qupALvkn6DZwUD76xW9wYdrgU9Yw3ztkrrBzjckw5xwvrG5z/9NnUSQzElLMmxqGFrI9aqbFAkoblMX5RVLIWYkh4YyBomXBRua0AgMDC3MEjCaO9JR+bNi+/2PEtef5+Tffxn/39ldi1bN6/4f4yWuU1914hO1vf4r6sS/Ti6MMJiQDcKz3aD3ESUNj5qA8hBQL+NE29dwJ5MCt2GJAz1VoIKsTEhGraLUA6iFO8V/7EEYVZyxEsM0261/9PTafuR8NGalrkjKKykBHVDnfY0JBm5TSeHTneQ5tf5MXz2/yz37/Kzzy/HmicURnCCnio6WIHlLWddDkmHnUwWW/gnwAhe5j5hkOqoGkmg8U1fyzAmoNjWZlOx8EmxJNSPze187z6598ko3W8PH7n+XDX32OykIv31EWSoNLCS89YjEgmSxUs1wV/A8/+VreeMvV2FjTGE9jBxBzv7qSKckAmuWgvfRBFVefo9/vo7qA0UhBA1qgdgGdm8fbgp5dQq57N/13/W3sNXcx6R1Ein0ZmWygJD83yJ51VIeOByF0rBgl2RJJNf04QUR516tv4J2vvR1EqTTw1juPMzdwiOb+fE88+5LHIOwUi8QkbGx5GixNEnZVKF2BK8AahxoDyUPyuaSraRYGANn3oI7Z3jYB53cm/H/+/ec4dW49906L3O/9wiMv8juf+hbRKN5HUmNQ7bFoE6+75RpULYVEkgijmBkJMcDiwgLzVcGCy5S5tlwAKejFMUbanBF26olONynrNYq6xp99nLNf+B38+Hy22jU2Uz3rTQhZfCbGAKWjuO2dmFf/Er5/Lb2bfpLlV7wHrZYZ6hJp5SomvQVwDrBEs4S3C539sSG5gpYKpKK47o2MD93CtCoxsot/8n4wJcWrf57i1jdTiIVYY8Ioi/6krl3pPbJznr/01tv5uTddh1PPwf1L3HRsgGnHeIShgY987Wls9BBGPPbcGV64NMJWJU9cmPCHX3qEf/PJb/DVU5cIKXuVeLIjakxQ+6xU2AQyDz5m7E/bCstmxDtfeZIDi5aghk8+cJrf/sKDbIfIbgP75nr0xdCzPQbWMei12KLh6FKPV19/EGt79F2WbnYExAqCQ4oeZQGiDUigNaA2Sy5bbUkokxe/zfYnfxX9+m9RVftp7FVMLEzLEl08RDKGZPZY+tCthmxANgWxNNLPbpUm61OIZLoqKhiNmDDFLB7EvfJd1GZAii2mqHCpJl14kjLuUD/zFTa//ofgx4j2KFSxKdLsXOL8Z36TNx/1XH98mb54BrS0MRsVtSL4KCSpslw5dKRaCMETk8Go2WMS2ky0zRibl2GV4CULBgaDAQ8//DC/+Zu/yW/91m/x5JNP7gUBada8+1GNrqdmiRQWpuUyj642RM0a5nuHkaQ9H2pNlkoVb+fZYq4TGEqQIgnDRh14dm1CsgU+RdTkoMJH5cCBg8SkXcVOcdahVcvAgm1LfPYBYqBKKcK+QYlgWWzWqdod7j7W5003HcEkz9LkLPceVQ4uL1KlSyzGNSo/zNcdoYojquk6GqYE8Wj2KUV7CxhnMYdvxqycoHHzuP5+gi4SGGQMt9Y5iBEl2h69uIukQJKio1M4+jKhaC8St88RN1+kUk+LssIWNtRZayE2hLZFmi3k0lMcjue4tOXZMotsTfKGN7P1DNFi2wnOCDky6ZzmVLvsN3WWyLnlQteayBC0zJVOQNuFCR0xmpDbnBjJkbmkXMJ/bqtmYiuCsZkaFQtcanFiUFfSLyxGY/ZorwaZA+1r5gXecvNxrluyhNXHaeIW06TopXNURFyaYoC4dZa4uUaFYCarxI2nYN91xOVbqJxSxB2C6ZHEkaxlans4M8DsfzXu1X+FdNObmNh9YPp4oySr9LTFSCJKSZQsdJRkZkbtiZ3kbigWaN080QdQwyuv3sdd1x7CINgYeMVVi8z3wRpDHaE/6LFiDVAwKhcpESajMU2CqVdWRxNcqHEmI6WzFn6WF/eagXs5ps9GXYGMzdCQg9qghrXYZzqdZhpsR3t8brVlU1dynzpGrLdo7LFgEnecOEgJDCS7d05CQkVYvTRiue9YMIFBoUQjhKIHarIIkMn6Fpge2ApJu4gkvLe40RpLzRmMbmWqoZ0jSUFfPTLczOyY0CJWqK55A+Ut7yGaBTh6N+W1b0arBUJZEfedZLNcRosBSS0ilkpStr1ViDoTVArY/TfTHLkLrRaY2oqy8PSqAnPTeyiO3E4x3SGc+TZp7VkURZpdNOxgJBKHp3nrTQu89kjFXKHYouCGIwuk0OQAysDYW240axziInWKTOnTKwpaKdmeRjZlnkfXszogEtiatjxxdpuglp3JFDWRnTag1rEzSaxu1cTacJAd3vfaazk5lzBeObvdZ6s6wuPnR0ySZaEqKEVIOsCVlqKsqXrKwbmC11+zjEiVEfwo1ihFWWLrCb3UMie5JRFdgVqYSxtUu+fQzWcxqSFtXaCIQ3q6Ab0VlJKkQ3aLPunIHXhstocXgBJNfYLptEliplPWxQo1A3Swn7FdQIsq78lYkh3Qmnma3nHcjW+mMXOkGLDO0JcW8SOiKHa6yr7mNNACJUXwmBixqeZo8zz37Bty66GKxfEZ9jfnIURELWiiSAlLlkG3StdKzXuZp+gqAV0kj89QdX15yvO/ZHLEb33rW7HWcvDgQQ4dOsT8/DzWZuDEjxxAOCOwiSWRSLbiN//DZ3nz//hTLM5XXUiksyoskEujzuXrj7HrxZEpOAnD1x58lH/1yW+z60uwM+tUzbS+ao7p0KMpH4Cm6qGmQKzQPcrkgCNzeG1vrhMLMWSDzAk2KowuMQhjRD0gnUtbQFMDcRcThlgTsfWQMNnNiGJDfq1igBjFLRyG/mHkxrchh2/F3P6T9A6+CjV9xC6itkdj99PKgFJrpDfAGKBZxfQtVgOp3mL9/g9RFPOsvP2vcfe1x9i+ap655gw2tbg20MbAxW99luHRNZx6Njc3ceUKn3jgDJM2oJJbL60qTSdkVNhMjJS9SDn/vUc3sz1MUgrhsj6E5irBDABqOtORVrKnutWWqJYaS6uWejjKYLzulUJMOGc761swheCNwUhkyQUKxrzr3lfScw5ECOM1XvjUb3HcPUUavcja596PnX83QUr6cczOA7+Hu/gkVsdw6SG2V8+ycOhWTGgzA8Rl30OHw83dRLW4Hy0VXAGUFMdfwbLs7/QYZkZZ+VqvxKrsPZqaK1jSPc+NVqizDKInaZ0BjSHgi5JpgKIosn59MaANQlUpRpRB2GUpjdjd7WNdwfkdZWtzGxignVCNA6KUTLu2TjLQ26tQZJCgxohvM+XPaYKQOuCegEbGDZw6u46qYbfJqno+5c3QWsfh+T4//oojDEdjSBHbjNAUeeL5C9x7+zVYU5PKHglYNA0ueWo7T5SM64gCQWymk2rE+DEaRhnpT0EjPRxFLp+Hhp2HvsTK4VuQOEFMhaQSkwyFjWS9OA+2IbkaOXCSpZsWkXIRsVk6Oz9vWbLbRUtFQq2iVik0oXEJTtzIeO1DVKUCDhFH1Wyy/pl/Sy+sMS8e2XkGmZ+SYsNk+yL9MOIwFWWqKUqgnGe3aXAoSxo4zA5vXHwRqY4SNWE0MWeUQgO744ZJNHzpm0+z/qaTHF7s8cWHH+VjX3ySf/q334v6mhA8Q28wRcHZzXW+9dgpogrXHtnPVQcGvOnOazjzxWe4uL6FVov86u98DjGG0tlMqbMWV1p6RUmSCgusVGRzq16PaOdQESpjecstR/C1p68eTEFDxf6B4c/feQj35B9z/tSYEz/5y9j1c7hU0jpHsai40VlcXRNiDx0cwIzOYOOYXucIi+koyljUDEgUlFe9kiJuor1jLN5wL9I/TBSbD+Clq/A3vody/yEolyAqKRbQO4AUfSTpnq1yMmavxRAk63tIyEZuzu/yY1f1qB97jOnGkEIKYjFHENu5Ge5BNTJJQROtCnVSxk2Dzg+6PT8x84B5OfYJXrJg4JOf/CRPPfUUy8vL3Hnnnezs7PCe97ynO1Rfspf5wYZcZrMnEdRVTNomi0KQTVmuxHvmtk7O6JGM/ZnFAoglijCsA5vjQFss06QsTWxUid4zqJRxaElSkFSwpcNisqIvWehIUeaqPjGOWVyah+iR2CJ+m+aFBygOXoM//U1ksooJGZJlO8tdCTXt8w/hjiSir+nX28TtixkwZTIyVlwPZ8D1V0jFMvvf9JcQWzJ3z/swxSG8gqWHMQX26G2U0ylpY5NUVThtaZ//Km7hKG7rAmlhjrnhWejvx2jD7dccI91xkvbr38IYx6nTq+i44dj0PIPNU4BBU+bnX/IVlSnxqqRukZzdmnJ2c8z1K/0MBdOZd0W+CypCi/LshW1W+hVXL/UwnVhMvp/w1PMXue7wCr2eZiEj06eNCuoJsTuuJPsIZFBgl1eHgLW2Ew4CLSzeWgwtizJmwYz4ubfewcDZHGxMLrGw8xT96hzaXiJsPw56NzEt4c8+wvzaA5C2KI4fI1x6knIyRqp7mC70kWIJ04mV2GDQ5Vvo7TsMZUCdYpPBHH0lB47cQbLzWK70CsxhgXyPTUO6Z9oYYc60+GYdzn0FWbmaauEYnHsWc/XdGF1k0OuTUkNlwY6HzKWGqsjytKSGNlRgKk6vjXBiwChKbisY4MXNXXbVsH+hz4vn13n1tYc6Qz3JB2MM1EE7E6d8WAbyXkxS2qg0yaCamIRIMpa2E66yruCqgwv84ttv57c/+Q2iOOJkCMYxkT6DXkEhE3odKr5IniLlMu/It5m3Tt5irWYMih9ukMbrWG2RzqqY1CIaKSTgLz2Knv8aeuEJqI6CZoMqo7m3Kwha9qntALfvRk4cOYHYJdTkrE+kc/wTxaVARYPiiFjmaGjVYG9+M+mpLzE3P0+SHtDDamD/+BQiCTEQnv8KbmseTYoM10g75+ivjdjPDnNWsUWPUZN9SZy2LDnhtvHj7GrB2RRZoGWu09HfHHsmWhJDVhwMYtlshUt1ru6EkNs84yD0bWLsKjanLVEsb33dnRxZLPmZ19/Mg0+vc/+pHdYngm8cRwfQsxYLqBGKwjKwJWoqFOlMu8BYoR/GzKthYOFnXn87oBiZkqQiAAf7BX/53a9DP/dFmhfvp/72EuWFx9Do2KkOsLS0H3aepByOMbpA29tHzRb7YicM162JHEaaLP2NY+HGV2OkwRcHuOr17yWZMl9bjJilkxx4998FSaThc7jQQHBQLmOLQQYCpwRtg0gu8hMnUPWzrkszpI0waCf8xKv3cen0eRrZ4gvj66j780y96VK7y5m+di2gZB3b4ynb4wnpwCAbV80Szs4W/eU2XrJ6xerqKvfeey/GGJqm2XMrtNb+6CsDe0C0zp/QViRT5CDB2D+53WpGShubt+cY02XoVOfhLUUPdX1aCmqxtAhBDSkleiVo9GhSVAzOJKrUYk0uIVkBJfLaO69nuYCBCxQ6oacT2tMP8+If/Robj3+Gc5/7AMXwDDTDPcSiJA/TIWe/8EGap+/DmIRYjxuez/mkyWYcWlZgC0wxD8aRiv1ZG708SLCu0w83WE2EuQOYsgQDbTkAadi57z+w8+l/g10/ham3GPhL9NIYQShMJPkpIKxtbPPlJy7w0LmaUiLleDW3A3xDz0am0RCNoY15Tls1PPLsWT7/jccInYjHTOfhstVN1rz/7Q9/no987oEMyty7S1mc5gMf+hSPPncuq6MlmEiVtdwFUtswiEN6OsF0i3DQ76GaaL1HTL6vBgUjBBEqE7n+UJ+ffevd7K8KKjJMTYcXGDTryHgXIy1VvETaXaWIngsPfJbmzGNZl39uP9OdMT1aKPqYO96NOXY7glCSed/JlCQZEB2I8ZioYJeJ5QHCXlyudDWLP1O1VAzYsE2/HjL+419l68GPU599kNVP/DMYrtKThBVLYRpWdMgbTvQpTn0Gl2qilrTVImoMSUoubI/YPz+fVRU7xzxU+eP7vsW//sj9PHfmEv/69/6YJkRUTf5I2ShnFDL6fBa+1Aht9158TLRJmdYNw8ZnDQEMgsc5g0NZKQxqCoapYtQGfFKiKajrmje/+jZuONDHhEQblasP9PlLb7qGW44sUgJFaMiWwZ3gTDPCX3oBG2qkXqcXh4i/hEsNRhJ29THqz/0G9aNfxLiUsWo2JwkRi8oAs3QD++/8SaS4hlQeojVF9mDI5RhQk6lkLkttqw5AHSZ5kkyQqg9mCbt4jNZUpMF+OHQdRRwiJqErR4jPPUz8xidJSwdIBPz2GaaPfoIT4TTLsaZnhNA0GAyNFkzLFQY6Zc6BM8L1K47Ffo9gB2x5x5TeXivTqJJUCMUcNYZJVIIp8L7hoK7ntpgp8Skx74RSYNkKSy7jdbZ2Pbuml4vmkq3GcVAVsORgvsuGpz7ijOHoQo+/9uZr+Zm7T7DgoGcSzlqilEBBpTAIkb5N9GgYbD3D5Av/FrYez94k170VOfZjeG/RUUOURDp2LcVrf5Y0d5hoLGoqEEdGb+T9XFRRN4+6fTmArZbB9rNqoYQMpOwfIpYHwFYUYYL4Sa7KGYtis85MO8k7T5xC3M5VIFdBM6GWkhACRbjEyuh5rip2samm0ZJx0ylc6kxiMOtiJFXUGKZtFlhLHQj6cjajV/z75TNespT9TW96E7/+67/Oiy++yAsvvMA/+Af/YC8I+FEHA4accyayOEdUEOf2tObN7EzaGxnnMGtzxDjDPMwK/EJRFFlj3BgaDOd2Ww5WhjpAuWAyWlkUI4Z+NiAFPNHmY81Y5ZajCxyyUyptMxshTXF+g6Xd5yjG17NYn6WIu8QwzaWolI1etBmxpBdw608So0fnF2H7Aq0dkGSBec2uiLVboCzmskZA576oYjPNh5lOphBsL5fs1RAXj2G3xqz4szBdxWmLH1+C8RgzfzWIQySXesWUSPTs2kMkJpn7HVvUKj4EjHqsUTQaNErWYUggbo5dn48OI12gBnt9N0uWWt6uI4sNuX0yWz9S4BFGwTBOjtaUXJo0TEJG+UYKbNzhiD9DHRxD06N0wuFDBxme3cy2rGZu777bruAgyXN8f4/3vvUeFogYbTEYJrsXkGaCmly9CGGEq89xPM1TDE+TXEWjPUT34XsHKZrTmGKBhZvfiRZFl8sExEaMWKZmH7ZY7OY+EjPsqrPGnrVMAJV8bVe0rr57qAjBFJhYYNIavh5R+oBpLoAqyVhc2cOxzkIaccNCw/r0EeY4ThkTRb8g1S3TkLi0ucnNR1Y4v7NKTBkdTYqM1XGxNuxOW7Zjj1aFImbKcNRM0V2bwmartFHwRji3AxvTwKBKpBQQazHWMBxPmKsqoiactpQ2l5mTKOJ6nBsbdsdChaeIQzQUvPstb2ZeA5qU0e6YW48c4v/847ewu7lKNVlDdl7ALZ1EYqSaW6HqF8jORSoaZPUR6BVw6eFMAy0WqUKNbD1FGYc0pSG5Dg4pGe2PKXHz13L1K68BySwANV3gmHIgMOuT7NqSplhkMZUYEYbSZ9IbsVQIEgroH8oytr0l3NX34p/5OPSW4MDVmK1HABjPHaOUbSSMmG/OcYc0rAyfY6U8yfOhpknC80M43/aYmDmC5jVzw+E59s33UWPZnkZacSxppl86Er5N1FHZ8olzE2ikpJxuck3zFGvhCLuNsjOZMFcexkiiAuadZOVw7fRCCkuvKHK9TiKlVfZLYGM0xGrKksNxyuFBxd999yspiZ12iGR6LBWFKlVqSDtnEVszGY+oYoNNYOZL6gCLr3wPxb57aO0fk9wZalcyOHw9/UP30tglEkJl3N7eQNdKc2R3WUgUJMDmFqdGREPXFjY56bFlVoRsx4gz3dcLrFhMM83smjBCNp6jtOAxFL4mqsn4rzglNbv0tIdFGU4806gZnzUzuVPNNG8lJzCaCP57uXlewS54GY2XLBi4/fbb+Xt/7+9x+vRpbr/9do4cOQJc1hn4UQUE0h00prsGgezp3fmh/2k899zeyAs/psuVASFnCNbIXi96fdzwv/zaR/gLb3sVwZYUlSMGT+rEVo7MC0vHl3nWKxtGO8+GwKG+4623HufA0gB0h5giJtXMpR1Ux5iU2wMxeCDlAINEKRHTrqNPfQXtLZKWDqK727iTdxBO3ANSEW2FO/kqzL4TXDZZykdNLq/mnm5Dhe8t0B8bAn2qI3ehu1u4+Fim2ghw/mlCtMjhggLBqCdIhYTIjUcL+ucjJxYqDs33kJ2AIRARmpBwGhAMoYn5XqghSEmULECC5sWS3xmda2JEpCCKI5iyU3bsjECE7FwnJbHqs4vw7z56H+vbu0zrKY2UUO/w5qMt7tKUcyEgKszNVSRVmtZjzEKuNGjG9RoF9ZG+NZSAUY9oDZoIowtYlOALnDiwyi3zgTuXlMH2aSb06B19JdXVb8Cfex6LRd0i2AVmp7mKoqbFKLhjr6FYWUClDybbvTq0M9TpkMYdRgJNfD8TJ0VoTI8qNhhjSYm9+6x+QlKoigIkouKQesp8u8qCabhjMXFwHzz6/JiWPqPJmGNLJ7FynpQEr4AoQRwjMUzqlon0aVXoSa4chCQEW/CZBx7j3uuXuPnwAtGWvP+T3+TkQDhxzxE0RVzhsOoY1w1ZsjVREuiZLNMStMQYw5ceeJLKb/Pa6/exXFluvOYgfcnPq6pw761Xc2h5H8saef21y2w8/CQXvvwwJ97130OKeNOnX0Ts+hapmTL6zG8hg4+R2m0mWlBd81p49mF60wskUdT1oEMKZNdF01X+yoyKT5JxE9pNbAbkdDOccFe/Dj04RSgRUYqr30AvbiOaRaPUDjBdlScdvgs/OIYpLXZuX1YnrQ7QO34XYe1baPT044jXDy5RPv1xFq77K/jgmRjhX3zoK5w7f46w7Lo2mMfiWbGJubjLRF0XsOQ1lhBGbfZb+czXH+NTX3uGcVxin7/EGxcvslUc4b4Hnqa0geItNxEQChH6zrKyNEfYqglFQgvBWQNRUfWUKXDb8SNsTwyVTrj9WJ/V7QP0gX5qUQ0EM8BpxGFxMWCMgN/i9Bd/m32H5gnnn6HQEnv0bvx8xe7Zh6ncIlTH8CtXM177GsWhmzCDqwl2CcRgNc94x7ftduvc3kkCqpECj0qfSG71iMnPvdOUpZrdHJQDpD4PrkBdSRKHsRYzHZJ8jd88x8aXP8pCnCB2Hml3KWKNtDUpBuqU959SG5qmYRpCLvhLZtRgMsMpqlIYYb50pLrBQtcOnRXiXwrr9pd+vGTBwJe//GU+9rGPcfDgQT760Y/yt/7W3+KGG274EfsS5CHMmv4GOqRnPlgz7Hy2ge6BCHWGGcjXHlNGuGdTivxMWtFMXYktk9bz1LktLg1HTNvEvl6RAw6bA41rDy3yvrf9OP+P938q/x5AiBzsl/zKz/4YvRIYjWm0pEqZB55bEoZo+viYr19j6mDyDSUBDQnMCnH+OOPV51m696cwV78bNXOMLKy8+efBXQNIFxTloMCozyh+hbGZQ4sBVHPQ20fvqldTv/A0BocxgShCGTbxukSruQVhYotKgUuB192wj30PrfK+172KmzcXSVsBm7J5yjgYsrWRIbQtKWoHqsz9vjz0ivsEdIwBI1nURY3pzGeygMf5c5dol1aoteDpM1sc3tfnmdVdYkqsrm+yujtl7dwLHGme5+refszQY2xBv5phEwyFK7pgIGcahUi2KZ55sadAM1oHPLZZo9q3SNjITmVJW9548wGWTuxn8rGLTHsDVt7w55GlG9n36EdgDMkM8qOlQLJ4A8F4+rTsf9VPgXPUVJgu+Mj2PF2vvuPQ5/6i3xNd+e4nevZ3gdKvTxN0nl6zifFr9NsG1h+kWrmeeZtBdhO3RJsqFGWhCPyPv/wGGL/I//yvX2TbL6Ea2TdfYiR0pfx8b6JY6mSZ1FNqCnwUxsmzsT1i4g3eWDA91sYtV8VEayxNCFwaNZlB0ukD2NLQZNOBvKGahNRD4mgDmT9KzyqN90hU/uq77uQVJ/ehtswGX6akioG/+uOvxong4oT3vPYWxu4FeOwrELIPijcV2oc4HWcb8PEZdPcFfNVjd//dlG94HyEa0hNrxMLSmzuESTPDrFypyXiJFlWDUCAx4qxmrwPc3lpClKU7fjofAs6gUrN413tJGpHtJ4jiSc5Qai49uavuQo/fQrN1Gtsb5Fc7eD3Ld7+F9c8/i7YeDTXXugukc1/DrryDgHBh3PLixpjFsE4RJxhGGFECQjm6xL60wW7okfoVErNWRo2w5bPAz05Qzk4sdVFQTde4deksazf+BA89MMRawdpM7RWBqjRcdWKZ8fY5PBGkwEn+nYXJgM0ff+NdeFV0+Cx37G+5+r2vxxj5/5P330GWZ9d9J/g5996feTZ9lvfV1V1t0Wg0bMM7EhBFgqRIgRIpM9RqFBxtKCZWGzsRaxSxG7G7MTGh2I3RaqQlGWO0ooaURJESJRp4AiAs0ehuNBqN9l3epX3v/cy99+wf9/eyqkGKlIAGu0ieiKzMrMqqeu933bnnfA0aHGodtUJGi929gc52YfkwqjPKyTOYl7fo7b6E2gHZwz9FsMrkwqMsmwb6OYv3PcD2S/+SlTd/hGx4gghk6jsAStq7VJI5mAC2AxMLkSy2qO3TiqSEXAyiM6y2qIwgX8IuHUAvnoesgN4QFYstMnTqCW2FTm5gdy9RDgtmocVsnGeoE8J0I9nRS4ESGZiGfpkRigFbOzsdxuzmbhajsm95gYP9nA6Y1sGh5kDp268qAK8iZuDxxx/nZ3/2Z/n7f//v8+EPf5gnnnhiryowpxbWdc1v/dZv8Qu/8Atsbm7ivedzn/sc/+Sf/BOeeOKJV1AR546H32tVIa1F7d6pMDSGDzx4lB5TJgoxCs5XKIYphhgVmxiHGNcdTCHQqjIl9YPyjgfvRcnjjIxA43IqMiyW9UyoBbYTbJAlK5AlIQ5tph1Xpo8lSYoWohAjDQWeASI2Kf6JIUhG44F2i1BPEqLW9EEsJhpQJfTGSG+MjE4TsxHY1LHFHUVcr7v66t6MDZIRVNG4iw8eMY5m8TTezxDXR41B6HqxJjm9GQw+NsAUTI1MpuShJtJgjbDmZvSaXcLa3fTEUMSGmc87c5mAD8kiVBBs9LTYOVwwgeGgs1mNKJZKJal5zW1cgUaEn/+Xv8lXn96g0j6//PGv8j9/7KvMoqCuz+e+eZn/8Xe+zq//7leAQO4nOBFsqFnOWggRB2QmHUhRwBO7PpKlMELRLerNr/82m0/8NlECsriKIdlxmyzib1zAbV0k95sJf9BbQfIe3hRgMiTuALMkySySVNhShxspxpANsEk6hZtIiW6OyxwgCIjt8McG0914VC2WiI2zTonNYf0M204pqmtEBRcbpp/4Rdz2OR45NuLswXWCWOrWk4eM955a51i/YnD+k9xbXqIMN7DRsViUKDm1THEoqslJsPQV28HjxROC8ntffIL/9lc+xU6ExV7ByYUEktyYdaVaJPHnYyAGRUzBsAzUVaRCaF3OMNQsXvwkG1/7VwiRoc0pFN78wHFOrfVZloYhsofSxllGThhIAGcpLAzaS2TTy8QQEYXMz9CiR5sN4cBxxAasTMj9LpkroH8ILQdgA97mmOEKwtxkZv6E07FjkvPSnmCM6f5svpcLFtwYzcZJFtmklkFwY1QDkUA0OTap8CfzstHhlNwVfayF1hVQLFDYDKlnFFS4ehe2XmTn259DwoyvPXeJl29sY6QhswHxNVnb0Fx6kdlXfwlrWqLrsVAIReEIkpKV2ASaekYdkldKRiRrJ/TabcaZp5Gc1o7oScR1z/jBI4u869SImevRLzI+eNcBcquY3oR3nj3O2aU1elYYEbj+5X/Lzuf+GSPTdlPVEk1idRAqLnz+X3D5d38+6cv4jKLewT7zeWKZEc5+GDnwVsSNGVCmBNQ0+GyJoD1ibx/BFJ2C5JxbNF8ieyMBRrAITiyYlFbfNJvvAMnauQnaPuV4EWIDpsRlfYgBcRZEaFUxs2uUcUaTL0PZJ16/jCEizQT8FBtmWJR+maq/w2GfQhQJKZ2HSPAtVVBGJrLaz9gMlgpSlU9N2gE13MwebqN41ZKBhYUF/tE/+kf843/8j/nn//yf861vfYtf+7Vfw/vujqGK957xeMznPvc5tra2ePHFF/mX//Jf8rrXvY5/+k//KRsbG3jvUVXqun71NAo6K0pEKI3hI4/cyf7FnAvTwMwrEhraENmMwsa07cCeFo0VGR5tPFs+cKFpuTKp0sGkhpnLsJJMWL0x7AaLbwLruUHKkmt1GvA8JFoW7YwlMyP3E2R3glHINeI0oDFiY8QoqS+PdEA3Ejreb0E9RVDamFGRoerAZsSyhKxAs6UkciEzchRknIyioBNUSmPRdL4BhFnK8qWHrj8AgzG4DJMpYho0GBozoLZ9jK8owwZU19N70kgmEY+hkhKjkdzmmId+hLK/Ri5KG8uE1iVQA9eaNJaWljZyS4vG7JVqEUMtGdemnl1vaNp0axZRGgPXg+VGJdQxZ5OSy00G4vCasWNWeeJ64IoO2aGgyApyP+NAuMQRs0vmUoKRZRYnHglTFpsr9NurtMheGwIsw+k5BltPEdoGHS529ciUi0lTwc42aINxORQlaoVJb52pWUBpCKalRVADDqHEIRRzDV0ySR903gPIXjHx5t2hSwbiLdsbkiMxpHKx9Jn11ojFGuosptmhpcRLpLd1gayt+KGHT/Hh1x2ibG+Qhx0WEH7y4aMM/UWK3WdZ9y/Rk+SRMCwLohTUMiMnKeQ1HvptxUbdELTBB9itAs+3BZuzhlMrPT58NGDrGVe8Q7Fk2omNmcSmCV5YGlp2a+VqG6iwDPEcmn0De+Wr2NiyfzSg56d85G0nWRuXCAYnYETINSSLZCRpLpgstezaG8RQEVUgKrkBGe1ns3+MeO/7qEaHiOqIZLjhGpKvollO1JaqXEHH63OsJnRImpQQlF3p36YBJ0uHfzdcXXYCkg4fUYtSEo3BGk9Uz27sJe0CAkiLWIsOD+DV4vsrTGRAdEPIetigmFDj4oygOUEC/eY8RazZnChVEEKW06JEscSqYdFvc3j2jc5q1/Cm1YYDbhPXHZD4QDQZV6cZQW3izZPmWo7HGsMCNQfcDQpNB/q7HjzDO88cIc+EA67lb7/nAXJjsM7zk4+c5f4j61gzIWsu0bv2OIPtZ8ilSZoSnTRQTyOI4rafppg8kZ6tF1xQHDXtygEG7/ubuLUTiHN4v4jXnLST9CnaDLEQpKvkSlrft2ZilnlzJ4EfHQ6klypO0MkYg0gO0oMoRJOR9QapqmNKpFylHqzTuF5ytaTFbL9I6af4cpne6hpMthGTDIyM36Vot3BWyEh+GqNehlNlFiwXp55p2zKbTqmrCUvNNfabXXaaGd4CHT08vY15hnt7xauWDDz88MN88IMf5NSpU/z4j/84Dz/8MMvLy+k/MYYQAkVR8PDDD7O6uoqI8Pzzz3Pffffx+te/nn379vHcc891IC3PV77yFf7hP/yH/Nt/+29fdbyBlQT0+4V/8WkubSdZX8Tw5ce+xS//1mfYksg0elZHBUuZ0KjjX3/2W/zffvE3+H/+wr9iqw3M1FJJSW16+A6o8uUnLlAFpdcfMBqMiG1Si1OJZE3LAwcWeeDgmMmXf40rn/9l0F1EG0BQjZR+k56/DtbRxpJaCowRnLbEyZS2SrbCbZYTyjGBQMz7SG+MumHyVwfmhZA5mCekT4nWREQiGOPALmL330u5727KfXezc+gR1I2TxrYb0+QrVOsPEYtVjJlQv/j77D77OOiAxrTUocG2u+RaMZnscnWrQUYHaItFGptuyi3gsozNWvnK15+G2BAxeN/eMiLpdpzoPUn+9//3rz/OS5e32W3mlqpdE0GF2gtNTLeFqgYfTZJ/Bp59/grXN3awHdZjiSnvXrzO4PxXQFum1iG9frLn3Xieo8//BnfLJTw53lraDkembcDOaqT1SH+BYEuMsbiyT6wn+K1LWJPTUoArIV9A993H9OAb0dUziO11VsqppCwkcy860OrNQ/+WrzpMi8x/6X7wVnphFCGKA3KK0Tru8AP48ZHUAqo2Kfx1nLZ4sWhQMmM4Pi55y6kxvawiN7tUz36aS7/5C9jpDqOyZFg6YlZSDjIcNx3wVKEJQtXW1HUgqGWm4LOCiOPrT3yT5sK3WL30RTYunecXf/2rtJrsjyfBMiNVFlys6Rc5H/vqc/zCv/49cpclip7JwFfYMOXQcs59B3ocGuRJorfDU1htIU4JmipUGJc0A9TvWcXid0FbmnyRuHKW66sPEY6/m83Fs+xka0wOvIFq/0NouQ8tl5m6ZbaX70GHB+YL45Ufe9f/+Xh1feh52UaSRbDulXFS8c1Awmb017FHX4/tL6GSE80QLzm2GKXqUf8g11cfJqzeBW6AyUrEezSEvVaW0UiMhq3tgOIoNGDFUEfhC489leR+w4wz/SnL4RoPbn+KB/UpnAYmCg3CtI584ZvXmboR4grEOoiRnJZh2Oa++G38l34Jra4hJqC5Y1g4Hhnv8LblQC8zmGDpxzFD0yBZgzLj0td+A3PuCayhc+S7uYbTIxGszUhJlCJhG9oZqkLmsrReBGR8FD35bmR0BkwfG2vyWCNxlpwSX7EO5OaQvHJ57BnnzSs7kOimLcn5U8WkuTNYpsnGqOvBgfs4v/wQfuE4MQaKrRcJ3/g8hBlFbrFFiW5dw4mnblum33oMaSbkueXe9YwH1nLuWDLY2HChMvzf/9kn+caVHa5tVxwolLPmRRaufp6l9iI5LZgaFaUBWnHEV+/ofdXiVcMMLC4ucvHiRTY3N1FVPvjBD3LPPffsyRGLCNbavdI/QNu2e9TDuQsigLWW++67j5MnT/KpT33qe6oOCHPg301Upwe8ybhybcK5GxWnxguIwsUbOzx5bcKb2kBjDYcXcv7S+9/Ck9+6yLlJy1df2OTUwDCJSoL0CWpyGhJq+7mLVzm5f43heMTaaEh5bpJkVjUwzISPvPst0Fbov/0/4ne2IP4FkGXE70Bzg0InmNkNjHiknqSSVtEjZ0Yzu4Yvx7TDNcp734/0LeHj/4ooEPI+U1lgAZuyTjVk6aqdAFEyL7dGRD25yUENkq9y9B0/gZQ90D4Hf/DnMG4hMSSyFaS3ytKHfo7wzU/Tfvb/Q+438duXwBcEM8XZSG92mXHrabYL3GiJYukQXkpcVmJ8QgfsX1tjwzu2r21TSMCrENv2lhHRPZvPgFBHuLw1YyYF05DEd+YXuKDC1CcUuyBUVaCJkmhdxiQb4zmqOstw7ZS79AI3LjzDgt1Ha0sWxoPUndi9ypmdJzjY3o3PHgSU3G8gOkNii62miDPoYJmJG1C0OSYbkFUVsnsFGSzSuDHq+ki+xOpbfxya93Qo8hIb2+5m4fYOje9m/soeLUm6cqQhsz0GB0/Tf+9fpf60J1x9nrzaJp+dJ2hDbcdE3+I08vZ7jvLQ2f0Uz/waje4Sb3yd/PxL6MHjvPOBe7l6fYlf/faEQenIQw0hiTV7hSrmTH3LThXw3rARIfQGxAjTumbYXGF191t8OX8Dl3ZNcobDMFFHUGg1qTX2sxGPXdhgOOpR9ixZJsQgWD+F5jInD5zm//pzH2KpJ2RxQoh5Em6L29DuIGUfOgXEKMnGm+kWttlCZi+isykNhqWjr+PsibcheZ+1N/5FbmycZ+Xdf5XR4ffjTQ/JB9RugYMf/GlssfzdDcrerOWWG6tiSfr02egIhz/4N5HeegIKSsIBSW+IuD79A3dy5qOPIChReokb76ub/6pJehNRLZs7FRFHT5PLodqM85sTlocVZa78zPse5NnfucwD4UleZpVJ2zJAGVRXWNEbXG4zgsm46+g6/fMZqool0KPhjYu75C9/HvyPYNRS+xGjssd/+7f+QmpFWUFrMM0M3CW0WEYDhK1ncbPzGHOSvYktc+ZLd8i5kmB6QETCLjbP8YMDVIwY5gsAZOsnOfqDP0s7PIbv8EitFJRiOlzG9zY6UXiFhowWQ2o7AOvIjtzP6R/7r9n5/D8lk0Axu0Az6xHdADNcIZoeEgOuHCbM2MZ5+g4Whz3+iw+8mXb9dXz70haPfe5lXnan+Or5im9vTnHecO+Rdf7aWcOXP/M7ZNWplNiQ9mG/V9m4/eJVSwb+zb/5N6yvr/OmN70JEWHfvn0YY/YO+Hmb4Pz581y/fp3nn3+eo0eP8h/+w3/gzJkzXLp0iSNHjuwlBePxmNFoxNra2qtbGUgtalzeowau7s4Isggaqehxvs74H/79V/nWC+f48EMnKPJkalL5PpXtMwmeNoAJLZk2xNiVcjVlfLvVlPEg58DAMPC7jHqOQQaoT2V0kxF1C+JV1AQCluqpT6EXH6PnG9g6h5MMdl5G/BZhtI+iuQbTF/FuzMbyA8TBvYxXBvjBp3AE1PSYlYcR1yNqwGA6vMpNN8akaCd7fgkpWy4w/f0dpiCjyY9RtNsEkxOXjtO0Y/rDO5ku1zQLv0Vv6wqm2QVfY3UH/A7xmS9w3J5Eti2DQyNwBc45RllkON1hvRdZ7Fm+9MQLlGFCj8g2PUJbd75EezD65FUvifpZq8WLwxtH7G7Y0Scu+K5XajqqX5vMcnomMNOWKInWmVFjRIgmh9k2x/IJh5tLFM6y1gMNimkDRZjRpyUzkb6/zvUvfprFAwcwzRYy20XLIdpfpV44QHv9GawZkItimy3a8UFm7gDqhnjNiOUBsv6+xFdHUr9xT4r0u4ub99TYHTedyRMOcSOkfwQ/OAjFENodwgtf69TalDC7iqOmJ47CCQ0Rby25v8bQX2VS72d151uc2L7EPrmX5SywbCqIPTyGpml54eI1Ko1s1Rk+OH71U98ktGne78xaFm1FTstTl7YwmjNmlw0zYtooRfQdY8Oz0B+yLSUifYbW4aQh9w3x8stsP/5Jxm84xv6sj6NJtE9nEVGqyy+w89zXWH44iWahAeP6SDNhdu0CxewGzed+CWstJUsY10N6a0TJsP01Qj6GhSNINsQRCDEQsz6mv4KY/HsaG5X0S7qhxoQrEcGbIW54LCXznf6kBdqsoNEc7AIMjiOEJFZmLVQ3kgKjKN7Y1A7EsDNr8WpZdi0FkettpHE9YthEQ8t6EXBZnvxK2j6/8rEv8RN/4d3c487jB5f53alDNLC/GJNJmxIsk1qQq33DYrXD9Sc/Q752lP6Jd1OZHsPCEUWoJSKuZuuJ/8Dk6pfZ/5a/hXH7GPgaF6doBz7sENddviooFpP1aWJiP2hoCa6PX7qHun+EICOMJA+DONhPLY4CxRRjpkt3MnKrBMn2UDXfxcjgOtq0IBA91gjeFlRSogLR9mBwEGuKxGCKMxozZmtwkuHyXdhcqLIxZd4nNhX5bIYhUjjIp8+z+6Vvcajo88j4Kr/erLJthvzqF19mpMqBLGNNpwz9jN060FBQqkOwuKhd+4t56fa2iVetVnHy5Mm9g9xaS57nexWA+ecQAl/60pe48847eeKJJ1haWuLHfuzHePTRR/npn/5pRqPR3s9BKv98r7gB3ft888GnMpbDR2FSt+BSKb9qMy7NHJ978iUmVaBnLHkmXa9UOzZrRltDFmpyrTEa8C0glllQfKwY5PDB15/iWBn5uZ94Lw/fsYzxu1hjOiW9gDM11JugnubJj9F842PEqNC2xBCxu1copaEqFsj8DmbjKbBDVt7zN1l96COUh99B9uYfZkrJ6PAZTn7gZ5DecmdjapPwiOyRcLpNL0O73jQIai3BZol6I4Lv1BjqbIH2yOtY/+BPE/sH6J95F4uP/HU0G+Oqa+jsOcrJVbJYY659m8P2OtnsClmRIzYns4aBTji1aPjf/bX38+a7j3B9e8qk8vzQu+5LY9zWaVxkr5ieFikpGYgxtQRCJxQlmuwSQnRc35kw9Z6yKBL5IETe/sazjApLCJHcKJmfkluhdQVVVrKaN5zhAv+Xn3oXb73zAJDUGytTMJQJ+5rzDKbnaX//38D5xzB+iml3UK/Y4X4OvOuHMMN1KFZADO10h+yut3Ly3X8ZcQvpJi2ORnK8cV21+dVaXnNia0wsFpMSO0yGuBGhv0oshrSSE889m+Z8qMhmL0FzHoPHJp1UGhyqLRIn2GbG4OKjnJo+zpJe4cAo56MfeAu5piRyFgJXt3doMOxWPSaTwMe+8hhPnL9B2xoqb3jzg3fhegM2WsexlYI3nT3ETDOqkKS5BUGt0C9KAkoTDSEKhalYZodsep3m+a+BCWQyL55miKQD0e9cYvuJT6GTS5j6MtJuQAyorwhNTebAfvtz2G9+kizupARYEic9qmPCAM2SmJIhAQdnMkQlT5vx94Dj6jDJsMeZSRgHjMNLSfKxVzJNGoUxH+OLVdAcL0mmV8VgrYHpDURDcpy0GYoQxHBjd0JWlPzoe9/Mcj9ZOntcssoOgZ429IzS2BFTenzqsedpqimnzQXutS+wFG7Q9zsssUNBWnOCEI0juoy69VTPfZXm/BM46sRuMYZgE1URNqnO/TbNM59Gr1/GVBNs1SZqsLnlLtlRhDUqiMXanCxUUF0lAi05S+/4qxx4+08RXD9pS6CIyck67EV+4AyHPvL3yFbPJBzIdxmpmuZxmjwzRNv0OR8S+2upKqqKMRlGOhWaYPDjIxz40f+ahXveT3b6bfjjb6SRMaaZkM9uoCZPLqIbz1N/+3foPftrvKE4x1J7A6vCY89e4dEXNxOQ0rcYKXjxypQbLey0yWShAGxMniu3W7xqlYHJZMLv/M7v8PTTTyMifOhDH+Luu+/eaw+EkPTLP/KRj+wxBGKM7Nu3j7e97W17f36r2M+rFWkrnTcM0mRJINJICMl0JRKpm4wrW6lU1SNQWEcoIrNQEQJ4LC3QtJqQqBpALN4bNES8KE4CSzkUA8uJXsv96wZ96re5OqlYe/NHIdYEbYk7l7n4mV9m7a1/hXF7meivdxV+w06+ilQZue3T9BfpVZ7m0U8Tl9+NXTtL6C2nm/zht7N7sWZ1dAxbHiFKjyAGR4Zoclc0c9S+Suq1MscT3Hwicy0GS+pXtuOTaBaQA68HUyCDErN0L9ZYmm9+Bj/ZwrzwJNY6rDQM/Bam7RGzNTAF1mYMnDLWXR48OmJncxvFMhhknD4wTpiipkrti44vrF25VbsbhoaQ2Ljda5tXOCKGi9evM21bFkcj6llFNd3h/uMjHn08UgnkogxNi5NAiA3BGfoy48FFz4PrQ8aZRZodtp77IrWfcO/wGptygVFcZzy7jlQzYhTEb0NcRewIDq7T5gsUbhm1O7QR8rWzFAcfRCnJTAL5BbhZBpQ9dNqrMIkVJGDU8IpigxiC6yG2jx0adONF1DryMMU//ptMNzZZfOfPgRshTZv+PgZMwIYpWXWdhdiSu0CeG04dWKJ83GA04CQJF3mjbGwHVB3bxjLdnDDUPtM6sjYuse0uNtYs9pSisEiW8+hTz/Krw2vcefYs3maMhkNyrcCXKCOWysihsEPfTzBha++WpGQk5QUBPFmzzVJ7CdNeYeOxJyiGy/Qf/GHwNTN1DBaOIje+jQlTTJm86yMWp4GQL9Cu3An0UE3JEwvH0IOvQ7IR2t3qv5uY61QIqY2lmhgHdn4oCoAjYNItVSNheIDJ8DjkY6ySFDg1ggRmLz1F308SFiJPPXUvlt26wcfAidURpTbYGNFoMWGKVcW2O5wup2hliGKopKAKiX65ELe7PcUycJGJTUmeVY8TxUiLVxjuXsLVhyA6sj0pBSXHg2/JpufoN7vE57/MjerT5FpR5WvkuA7I1+2rextKkqouL3+bjd/7VUZ3vTklaev3IcW+Lm3q8BVYyqTSA/kysn8JxeHkZqXhuxufSGTO5kleKIwPslseSKJjpGdvXUFrRmACLJ3Crj8EvX3E2DA7+Ea8Osz1z8LWderhfgwtsnsF124yMrvs00VGoaZQSxstmxjIDRImtL5hK1j+3ReepZxs8JMffJhCb1b7brd41ZKBa9eu8Xf+zt/h1KlTSfu9+5hXBeYtg/lN/zsxBLcmAK++SJG55QaQaGXOpIWrc0EfUaoqErVIRpNa0dY1/dURG5MproTG5FR4qpDkcj0Obwp2q6S9LsYyKA0lsDQa8t/87Z9kYQzV736catsjr/9BpNlCJjews6v4Zz4N974FG6aJckhSNKzW72H/Oz/E7md/hUoti+P9cPV5smVFJMNqjY8l+ZFHOLR0nDg4jMiQVhIeougAVmlbskiMqDEdIrsTuUlLZS9JUkm/j+Tsv/+9RPH47ECSvNVdkCHOVxT+Bs3zl8irDD/sU7eCUY8PSsiGqB3iXQEoTlv6ovTCBCuR3DoWiwxLMrcJXVsATVarxnYVpKho8F0S429Wd0LS/b547RpRI2VRUDctmTUMM0OOxxnhA+99B8svfYusjmQ6wTFhIA0/8v5HyMtk+0xzjfaF32Uo17ibq9RuhVKXITra0KfSgiLsEEKD5iPEDtBshPZW0JnQiKVfrtHYEQ7BxoZMTKI5dfiMLr16laqBiT6HJLUIA0jnomldRrAFg7P34790haZuKOMMf+mxpArZ/BSiRcIDdFRNNQETdpGYFNpCMSBaQ24h1FUSi0p9HIw13LixjUGoJN1w+iLsTCb0pWZRN1jQLTQGtr2CRq7ttnzsqeucOaO0xjEaOPI4RXxB1AUGmWc1JmlXF6adeIswV2CMEjHqsc0Og/YGtBvc+PaXWdx3nMEDDRo9vlzBPvQg/jP/C2HnPE2+QOb6tIDFkq+f4o4P/AxutI/WJJGZ3h1v5fjhs1CuEXGY76GLI6Q1FnF7LTjp1lU6UTNaTFL7FMtw/Q7ueO8C2BF73mgx4kKDrXfQWCWmSF6gbRJ+msxmaPA4v0MW64RKD5FcW2LrMe02f/cvvY3tX/8kz0ymKLCjGbXpE0zOrh0xdSNMYTt5dSWPNSWBftyE2FLsbqCtRbVAYiQacMwQ9USfE2eRQW2Il3+favcJ7OA4+ZH7OupkehLIvFWQtCScBsrZObZe/jJ6xwPgK8iWUDfEhYbWONS4TgStRVFakzPTRF2UWCGm912vlvkOFxFyyVOvfv0k937op6C3mgC30SC2R2XHSPCMTz0ExRpohrc5+x7+i4TDa9Qv/S7Ge5rukqiTbYLLCW3LoX3rnF04w4svmUTfFXC5ou0NRr3ILMLXnrlEsfsyP/IDD6MKZSc3cLslBK9aMmCt5R/8g3/AsWPHsNbuMQrmB74xZu/Wv4f+7HbJGOMetmCeKLx6cbNPjtYgGQGDkRyNhjYEIhlPX97miRcvIjFSWkMuysxHlocJCa9Tj0iGqqdqayaxpGUMGnjx3BWqkAQ6FjMhE3CFZS3vY9jG24bC70Csic0mVBOcr1ngBhmRNuthmJHc0HKiHSEH30SW/waFBsx4Hd8aYm8ZbA+ixVhBZYxbPIFKKismSRS6y2hnjgR7s66TXOq+vdUEpxPxADAldlCmyoLY7rmlKopjFxNqevUMzVaSuY5vQAyNmtTTJekYqDiCLSnaLQ5d+gT3mykDs86J6VM8Yh9nGu5Hgc068Gtfeo4r1ze5/+6TbF2/zKFjh5OSoAQkacViZEaIPSamz2Rng0GAcc9yfdZifKDvMtQY1AQOrozon9sBSSYyhTHkYUaZC2rBbr1I87VfYXH3BaoQsL5iSS5jRKldL1kI+wn4BrRFnEPEkkvE9IdQ1XjXg24zTMAp2xnZ3Jx3Ooc/f0+zt/tVbibL81qDigGTYU0kRIMunqAyY3pyBaMNrpkwuP4M4fd+nrBwFP/UZxE/RZr0orXaIEiJU3BZj10R1KS7uYRAiPAAz1D4GRvesuimfMofY2JW2W4Ch/xV1s99Hu8rcoHcZKxZz6qt2aQkjJeYdjTWpRxKGproiQRUAkEbgipu9zzTr/wS/bPvR0ZHiJ3orGhDrKZshJKVOKWQbUQnRCNgHXXwxLXTzNwCmVzBFCOQDI8QjGLdALd8MrEjkksYlCtIuUQgSyX972lLTrv63rrqEts95gsmlf21+7kswywcIlGHk6COhIatMMKbIWXcQPGQZ6gaNn1k11vui08hz55D45SgAecbitJgnZBf+QqFXqSdvYTK0VRR8CA+0GOyZ+0topQ0DJrrHLz4KfrxIUrT4IMnTDeQsMPutz+B9A/QO/b6RFHWAtFNnO8s2ieXWJ1cpXL7iItryVuDDo+kAtMLbD7xCQZHjtEq5BLpt9dg82WyPCe6Am+EvNMjmF8E9ma5Qi5pbsr32mKb07O7MpoFTDbGLpaEDjegYrFWyOIuhhqf9Qi2JAsRFyEWa7BwktYWoA3RWBCD2b2IqT0hy8nEc2xYYXxAigVAKK0jNjULTGiiUveWqHYuM/NKYZOipXvVWoivXrxqycBP/MRP8J73vIcsy7DWMhwO9xKAW1kCt36ex63ff2eF4NUIRdItCn9TxVoyWjKqKHgcv//cdZ69dBXneqz0Mv43H34LD55axPptFk3Ny7MZy/V1VmQLqh18tETpY+MuVzZmNPTpacNCr0jtDptcDCUavMlJMzJxkX1QeiEQY0WUIbUZ01OPsSVBc0pnIVtFbB8NHu0PyXsrlGffALaH2AFGUv9JpNO/7/Y0u3faO+xe2a57/ntPZL5d2VuShZu3MgGMsXvfRTMAZ2iw5GaMhJqmb3DlAtm0o860E6J4RBqMBvrU9KXBbDzDgad/hf/TD/xt2HcXy4//j3xkeIFfCndS1S0Xt6b8fz/5JJs7M97RDtg8/zwfGC5RmZIgU4LOEfQtkZwZGRGHsxnOwkJecdfr7+Dw4njv3C0l4uIEsRGVEjxYCWANHsVsPEX40r+m10zwdoArh2QKkhs0c9hwDdfeSKJLGsG6dFugTAlZvgvWIdbhNHQbT6cVMD9b9Fai03cfN8fH3fy++0LVJrwHAWMc6hbxZoAJFWhIjpmbV4if/5+IS/tgawuhxtYhJZRhgtpAriXr/UTlGpqaQXUt6V1o4M3ueZbCZW70Cw6YDR7dPcAsBtq8x7DaYPXCpzhnDhElQ6Ly0Xc/yOEzM/5fv/oYZWZoCCzoLqcXc378fa/nf/3kcxBbskwTvi7L4coz7H78fyBbP045OpCeowoaG9qt61SaQ3WVMm7Ry2ao34ZQ07MBcWWi1WIpi6QbbyXJElKT7gAAfvpJREFUwjojQLZnV+1EQNNztHtz/nsYGbF7f38vwZ5v8l1SUAJzainInjgOgFEPrmT4+r/I9otfxFx+Oh1SrmBQ7+Anl2nbAffGZyle+By0NxCrjMTzxnuPI89/Afvi79E8PaOUglpOJspaG8j9DI1113RJqng5DS7sMLr2JQz3I6ZHvn4UvfYyGrZpn/0PxNFd9A+fTWV7M0RkBxsqKtOQ1TN6u5amaMhyA9upkmGpEr1z8hLxy/+MaN7TOVcWuLaCnQtkeZ78UUSIajCEmw00SWPihA406JjrOHy3YyMdiHo+zjmAJofOefLmFWxeYKTBaJ1oxUAuBuM90RXY8RHKo3cSn3weycqUfN94hgUZEH2Os1N++D138YmtbZ44PyEXZdC2xHbKolQojmu1Qytha2fC0mL/NiQVpnjVkoGnn36an//5n+fBBx/krrvuIssy3vKWt7yiAvBaRbJXt1hKgjgckdIkC8+qs7ttmwqXWbDCQu5515lFls5/hs1Hf5sTsyHfng54fX6eE26DvNkij8muFbEEtQRxNKGlHC+lNa9JBtZKOjBajYkjbSw+dvzp0Hal8h5BS7A5wVpqUTAZs9FpZl4IzuGzIaOVA+je/X9+0n+HEcatpYBbvvyDIyB/yHfyB35eu1JxMGOuLL2O/nQ3ZdLxBraXEr71bIZzU/I8HUw5NUfsNYpqk/DyLgMbGa0NWDg05MZnX2A5E3Y3rvGPfvUzLB46ljS/s5JzF7fwk8ishTYkWlBSCTSg/WR6Expa36daWEfzgoN2yrvv3s/RgWG58GxMAv2sK0GqY2gDpXicNWhTpUpHaLECNTmN5AzzSF57+oXFEZB6gjZTom9ovEddgWYLXF+6j/7gFPnmZTTMUJsn5PR3PvM//IH/Z4f8IV+94k9FkRhQScYqYiS5tYl2tNIEjJUww21f7sq4AVMnaWWLoqHGied4vsuCBML1p7grv4LVmrxuKdpNxrpBGwoyq0xkSGUXKSSyZGcYjRhJLSHRyJH1Jd5kHetsMLDLFM2E1a2nqZ+oeffZd/OvP/McqsqIlizOiMZ05jqBoAnMlbpFSf2z2rjAYn0Jfu/XKG68QGZaNr/4r1g8fgpHRIzSisObElcMSMV5vZnWfueh/ypXHf/g6NxcQH/o+M2xEaogGQ0Ws+9OhsvLyI0S1YA1hgP1SxxpnuPZagFrIlmcUugUjS153KW/9QxZnCFNjVOl1sjcDrz1LSYa1CwwwnC9ExoxJtKaIql7erDSh31naDdu4CKoqTHtJS5/63cYlCULx9+T7hIxgg+Yagdig2srrDWotjhtmZ17kunLj7N48g6K6SXcxjlMHGA0Uu3ukl+/QGY7wOBebXJetfxDnuGrMkZ/SKK393+ldoY1wtQsMh2cYKAvIRopNZERUwtDwTqa3jLereDLFcRF/GSCdS0mL5E8cPDwfpYWPdmFLfphi/HF5wnxcUpjmE02ebG6gNna5WO/93V+5gfemqzLze3WJHgV2QSf//zn+ehHP4qIUBQFL7/8MsBtkQzo3mbtEIU+nmW9gUiLnzMXTEI994ZDstzRkxZz6cuMvvnLHGpeYjatuDe/yIO9i8S2IsaQULJS4iVDOq24xcUxjhanU8yeSVLExgriVQjXUAKYDPUNsb2KiR6iIxhLzC3RCkhg4U1/gSNv+yjaO0CTj1Db626CKbpthe8JEv2fEILBrp3gwF/8b1j+yN9j8O6fxvTXkHKIKrzljXdz7x37iWQgGSqRv/iOs7z/uNC8/LVUGdFIrHcx0y1qD1s7U/7F17f4+MuWhow2Cte3d5nUnqpVfLzJA0lv0dBopFZYUGVVtlg0E/7eT/4gbzu1yL58wg++6U6yWDMoHIrDqHLf8TWO71vAZDnSFaBjXaWKy3CN8tAJtJpw7MAqd545hjbT1L9tZoS2TbQGMeCG7H/HTzG+4xGKoqDQJnlH7CVmf/KRetQtQSwz00OtxUhSgJv7aASxiBVcu4sNE6y2SNMkRDUCGun1evzYe17PgtRw+TFOm/Np4/ZTJHpyrXF+igpMYrJ/fd+Dh/ivfvIdOJOqLgU1opECz13jjJ948wlcrCnClCPtS9Tf/jhjaRBxiMvpqScf9QmLa2lutN2fqUFijfgJ+Iow3WSk25hnv0ivuY5eeILq6/8era/vIV5q02diF6FcBGVPXvf268reGsKMJC1tRLCjdXaGp5FiTGYCQ7/DqXyTftjco6miniYGhrnirj3JuG9Q3xKDx0onoawR33oiKTH7P3z0bRzNNlmRiqWw0clwO3Ktk2iQ69FiIXgkBsz0MrMXP0918VHAI2rJupajrbdAK5yvwDha70FrmvOPM/3mJyEGirCD3bmaWqJiaU1Jc+VlTKedMBdDUzHfeY35kwsltUFRBne+heUf/Fts9o4m8K/OOmOxdNkSMdRumXb/A6y950dp8z6+rZI9ejNBrEmst5j8bka6y9r2N8m3n6fvWtZXRmxPJsykz6PPXKQ1c9Gw229uftfJwBz4573niSeeYP/+/Xz2s5/lySef5Dd/8zc5c+bMXiLwWroW3golISYdbm48y1r1bYq4gwktRpP9qgK94ZDgStQ4Ymzo6S65BLzJGdZX6NdX+NbFG0yaJkkVS0IMl1LTk5r9Cw4zvcCNpz6N89tQbRJ2t+k1m7S//7/iH/91sthCNkbbFn36Y5Q7L2JjixFLtDleknyJjI9ixkfx+QKVTa5b+opi/59EpCy+zQaYw2/BHH8ETr+LbbNGzAYYU9Ib5FhmmHwBdUOi7VHmNevZBj3dwoVt3OQCpr1Gv7rIWHc4km3SkPPi5U2aNuAVtnan7M4afCdURfRYbTExJQRXtidstJYj7Tne2X6eE/4lTq2Pya4+Rv3sZzm2XDCwgV4WiVHpScuK7ODCNCG0g8cQ8fUEUZ9YGYv7gUgmLZkk+WnT7hD9DNGIleRdIGKwyyfRwQouLxMYS14tcOD3EpGYDdlxS0lZDU1zN8HWqNyQmPdR9Yi2CAHtQIQJDuJQW7C8tojFM6ou0Z9ewEuGVyHYkiAZYhLYLpeWYXOdh5ZrTmc3MDGQEcljTeqSt4QLX+F0cQNChfqa1bjBKF4jI6KmQI0lVyEUI6ZuERWwkgC4Glt0comrj32CduulZAVrM6zOML4mizPGYRNpZojJEDLqch833D7CYF9S79vTd3vNB+ePDBEw7Q7Wz2j6q1wf3cO0PEzIF4hqWWLCKM4SGh5LMJZaDaGdMTZTjASQ5K0QQ+icL4UQAiE0rJbXOSuPcmd4nKXrj3KifY5Rs0M/wnKzTWEnSA7WBWycYWLEbF1jtHuFYvMyqp4ExUx4IPUTVEOyW3cDgskAT9FcZ0E3U1IXA1rtQGio7AC7eoJq8zrqCua39YT0f40viHN/mXwVXXuAq/kJyBaQmMCMN1UKDL7Yz9XyJLJ2D2r7ZFkGoQWTdE9EI0VuknOktvSrixRxFxMqDq8tYEWpyWjLBV66sctXn/j2a5cI/RHxXSUDt+oHGGP4rd/6Ld7+9rfzhje8gTNnzvDBD36Q+++/f08fYJ4QvFaR7m9tuknFQHPuCZa2n6QnM0yHWq/rQIFnXAhl5pKuuh3jzZAmGEzw9GwkAr/9lW/i2ykrs5dYNRNMbCilodApIxfRy9/g6uf/FVSXaLbOs33xZWT7Ev7TP4//wi8hoUazBawI8av/Bnf5G5hYI65PJQssHb8vlTPsEHFZ6rXZLE1Oc/Mm2vE0+H5ueul/S7z2IDneraH9o6y+4ydh7QA+CtHX5O0E21tG3YA266PNNmXYhVBT+F2c38LEKXmmrK0MeWBhRi/O2LpyHg0tCwsLOJewFdOpoKGlMODU08TIDLiyPWOzjpzKLvCX+1/h/vYJ8rjD7jc/Q/X4xyj8FqUJFOoxoeH+Ewf54JvuYpALweQQI4In+jrdOvMR5MPU91SPhNRGkGon3ZSsw4pJB4woajoa5GCZLbOUdOVfu2ndDVDGwuGzHHv7D2H7q0m3wfWIHYizPPMwcfk4aoqusyTpViYAsQPWJW54xJDX22Q0tGKYBSUaR0OGNxlOA6cX4e98+E7edXrI7PkvJ5U29RTURAUNDZtPfIL48teSwI8qPW0RbbAIucvIaHndXWcJvTWqYh2VDEvnJKozwsaTXPvdf0Zz/qsYA225nGiBklhBe/1+k0O2wME3fZiFR34Mu+/O1EbbA6Xdrt1ZAKVQ37kiZ4R8gd3efuzbfoZw9K1EMvJ6h/c9dCfvevODiDhCQgmRm1RuV2uS0Q5zcyVDDIGmaYixwTYvEn7vv+d1+bPs23qUh3rXGDRbLEbPX/vA21gYGSRXHDNcvYn4BlfNyHe2cLUHOqfTCNEViLRgbEoCykXaGCDukPlNrARCbKmjoZntYMOU8q430X/ThzDlEC1G6VXumZG9xmESvFpMiRsd49QH/gbD4w92OJC5DwYghrWzb+Ho238S8v0YNyCGAMbQYlD12LDLotSp1QWUme6deQOrZKHCiDAj56vPbvCbn/sa/jV/AH8wvmvMwK2H+9bWFr/4i79IlmU45/j85z9PWZbcd999ez/r3KsGT/guIvWpFIsoFO0my9xAJFD7zos6Rhak4sxYqbenFCghCMb26eeWQ+ySa000lkmlbLz4DO9bvsLVrOCLcSndFFtNtqCb51lsLiP1dUQ9RahwocbGLTLnad0BoiZKXhYnQI5KRputMLH7WNz3ANCjlQLb9X/n72Muq3wzs/x+Z5ipYmJQXFRmxmLLFYoz76F97CLGWGS2S2+2STlcBGORrER3N7B+lhTZNEO0JLplmuFhzPJJDs4s5TSi2tLGyNryEtd9S6iV6COigXE/B1U+9tiLrKwuoBhyCfS5wvHZ45SxQS98gX57DddcZlwoPasY31BaZWXBUd51iAtfaYlZL8nYRo9Wu5hYYfIBUiTgYfQt6uv0ZCfbab5q0R1CBR2jHCtCWDrJ9fHdrLvxnj76axFpDhTYwWGGJxdh+2K6eecD8B2w8fDrqMJTFFdfwniPYghiSMK5HqMtuZ+mCoGCaWcoEHwgRE+fCkMgqqOg5q4l5a88cpaVeJ0bsQGBjEAhgS2EoIFBdYmx79OYiIaWXJKQlFMo/C6L6jl15DDt1RFNbwEfEq5OJYDfYPrYb7I6eQz79evktRAXj6HbLyQcrAreZMldUhV1SwxPn2HY3E0s9+ORPfW5uW7N7XcH616TtmB6yXehtw6DlvLuH6S69C2scYyM8paT+3igL1TfTEK2pZ8yiDPEOLzERI+O6fBJokeGumkYoGhTszS9xFIdWMr7LHMFKw2Z9bzxgdNc//IXQDLy2GJvXMAtF9hqi5h5aFdRQqcSKqnqZMC7Hq0tyfMFTKhoXn6c6oUnUIW8ugHG4rYuUTegb/gw7sSbCaN/T8hGCLajXSZm1msVKhCiRUzngShDRqff2oFyHckndF46E/J9p7EywAfF5gOMgRg8zgSy3cvMHvsYq36dBdeQSZ5q0a5PNAULvYwibKHOUQM7KmxGhwfyP+Z1/knHd31CzwWCRIQsy3jrW9/K4uIiIQSstRw+fHhPV+DVFhH6z43Y1QacpMzU0lJIRRChpUioUuCtdx/lh95+EqkPsOhmNDrF+Ip3PnAHd9z7Xta/9hQXz71A2NjCXj3Hew/scOzd7+b/8WjOl1/YSLdPl1Ffu4apN8HPIILzM0CJxlBh8WLoZRArQAwxelrbJ6yf5sDrfhjW7iXSpxGD0wqxcc/K86asza3x/dvu5uQhQ4v4Gs2HydvdrmBcAaqYahtXb+B6BRDIrGCabaSdotLi/AzjK1SFSEaZOR4+OebvvPkhfvXjX+W5baFXZDiTRHd3d3cZ9nLe/ZbX8dRj3+ZffPZJlg+t88GTyyxlqddXaM2R+kXCc5/ENJvkfocTh1f423/jI6zIC8zqCQUVhG188MSih/eBLHp0tosQsHkBrkiMBd9CaNCoxHqCXVhDjSfYAjU90raRWmPuwL0cec8ByJfSpfo1O20SCiKYAU4KxOyAydGsB6ZCscRsldjfTygWyeKkk3w23aYckNjg/G6ihsWYEjgU9Q0mNIziFqXWZKbk4HKfn3zfGxhphYSGOlgGCJbkYBkViJ682sA1Db4A8TVOlICQoyyZiodPHGQgN5jYgvUzDyLP/HoHqAowu0b1/JdY5jzxpXNkw7vhzIP4lz5LRgOSJclpbZPvhxnQmgVcXtJIjyRyK3tImtu1NqBAa0pQIZOK/sk3cPzg61C3lHRAxHDsyBFO3HkE8/TjeD/DWWXQ7jDWCUiS6zZC6ltnOVKlubi9O2ERR4wjbH2enskxqlidohKILiBMockQxtgWzGwDKRYxzRbWKXWYotqmak+U1GYzgs97tKaAcoz1E/y5x2gvfRuWDyPTy8lAaXYFmTWEYo2QrxOLBaIp96pRc4fD1y4SMNkQE15LHI0pgORdKTFgOvXW5JjoaKRAxGNsjlib2pehIt+5wM43PsmPvef/zPB0wa//xieSH0yxgGY9lno5RaxpYoP3kd1g2I5JobN/m4EIv+tkIISwhwVYXV3l9a9/PQsLC3vYgHlSME8YXksQYVLe084hUGmj4hDGccYLF6+yUTdEgUOry7xufYw7/3XkwjYwwcbAUm45fmKBnRcH7FxyOHFY33DIXOZ47wXuCcrjcYxH6GnLbPcGgoe2RaQAW2CbaxAiWvYJwzEzBNkZELQh6yhKbb7A4NgbIBuDKgWKkhFNj0034qA0GK1AeqBz6p/9vl59lJR+GARMyma9pmc6bYdU5PR2LzItVinyEqJiswHiryTWRdhF/A3CxUfRtVUkNAx0QlFd4SP3L/PZr/Z5dnvCIDM4Y9iWgou7nsHCkLsPj3j08QFTiYyb5AduEIqsRFXp+QvUW5fwTYO2u4wl8sixJYqXnk7gv/OPoQdPJcEdrcjCLmpaYthCpCV3JZEeaiwej/qAaA1xgvTvoNUcn/eZ3xDUdIDY8gCjQ4e4SSW8qd7wJxuKSCSqgZgBQh62kLIhuogEh8tgtnCIaX+d9fYi0uxitEWIeHHJftZYJDQYnaGhQmPSXmgULDXj0DDTlnGmHDq+gtk5Rzz/BazsAA0iDU48hQlI1GTW02xSmUDQyIAJPuQUEumXcHz/IsZdJ5oRxeJR1ER8sBQxB6P0M4+0DVlUolPawSLBWjJfg4Xh5AX06U+iTYE1JmENTKLb3pTevul0eVtGZx5mu4PRLhxhuABEj7geYmB95OgPe0yoyFxDViuekoxtgjgqt0jJleSeungSvZrTeOX8rmef2EQ91QJtW5w41CutGyecATGpAqrgYoMxE6zfxLYzWt/D6ATF441DqYm2h5DhxOEMMFghaKRsZpRSEUOEpsE6IdT95HciSX59IzuA1ZxVndEdt6/5yJjuVYhJEmyp6JTYGHTgQaJBJUs6DYCJYMqcRkv6YpF6ylBm+Nhy4uAiD7mcj/tNPDk3yuOMsylrlz/GQdnP87JKALZqpY6C94o69s7Q1xpkD99D4nyr0+DP/MzPMBqNXvGG5uJC88+vXdwsrEMNNMm8hoxTSyVXNrf5xkvX8RjEZuRxwuzRf8fuk59PGAMbkHYX53eweByKD5bcZfTCLuGxf8+pKx/nlH+RxThNt6ZmFxN30bZGTIbPBxhnMQFMtExtgbzufciZd+KzBaIarHpsVuDtuDPmSb1YK45ifJS1138YycddAct0ohnpHX4/208qEDplODF50lnvYAu9g3cxOn4nunmZsHAMbJF6btkAbRpMtQXXz6OhYuvZ36e6/C2CGDIrhBcfp7z+TQonqM3J1TO0Sejm6vaUhV7BYWpGcUbhMnptTe0jxjh6PtGCDBW+Smp0IQayGFnQiPE1uUZmT3+Rra99HIMjk4CNDSpK0JqYD2jzMWKKhLCOLQSPNSDioRwTsgWiy0CbBHqSpIyX2NAdD1peu1tOuv969i4YXZmidQVt3gfjECkpj76J3j3vx7slDA6nOTH0iPvuQbMhweSJORC2Ed8kU5e2YqqCczDQQOFbYltjwoTqyS8y/eT/DNUVkKSwt5rVfPDBIxRhSmhqbHUd1BMV+rpNHmoK3WDVbLDkakLcxuKSypxVgjqMJu/6ZKrVR2NGHO2HwSEi6RYdtER3duDxL5A3NaKp1aHS8cqZ22G/ZsPynxaaEmsrkWgyfIcwV8lRO0wiX2ECJiMaUK2RKDR2gLEtbmE/43vfBzHHrp1G7np7h3Fp2WqgbWqk2iDGlrNHlzm0Mkhto0N3o6ZE2xmWnYSFwRIkYuIE01ZoXYNPCoQqEJzFrBygzZeJg32Yoof2BkRxxKpGBkOyqNBGsIJxQ3yHSxGNLJ19J8PTr0vaBWIT4+g1fvx77AuxIIITSWmKCIhBOznkgCWIJUfJiQQjtGYA0oeoGG3xWIwYeqKMpEFtj+LOd6FOWX7pN/jr7zjOydUBqGcalbqNr8DT3S7xPSUDc2nhsixvg0P/j46IAdMHHD4kYMydRxY5dvQQGzPwwYKLqJnStB6dgfURwxSqCygeQbAmWVH2TYP1M2TrEiebb/GI/j5HzbVUNm8rBvUNtJmAsfi8R+gtgskx0SOuT3n3B+D+H2GarROtBTyZEWxX6EwZtIIoxfgk63d/ENx+gqT2QSuKRwlzXvn3KRIMa+5VPvdxBzGWbPUQg1P3EdpIsbJ6k64mAsGTZZao6YC1GtDg8VgkK8j8LltPfJJy+wVatZRWWdIdlvPA1vUr7MtrDlx/lLvic6lCEhXftoyywFCmSGgQEVyYob4hRJfK1CIQKzQ25Nrgmm3EetQ5gvaJsaBthOnoODu99c55TrGhQeopkg9oTYmWY3BZeu9681m8Ml7rLU1AU1UpOkWzHjfy08zK+6myQ9RY1O1j4fBDLNzzPrzbR2CZNo5o7D7q9buRhVUIDRIq6kvPM9u6jhjLTgtPPvty8nigxhql1QyiEOtNpN5CorJrl4kUHLHb3J1dJVz8MoN4jUynmDDj/IULZKFiOLtIduNxzlaPU5z/Mub8VxhIBc4SsrzTxUpql3VwBDOiNSN05Xjic8cGP1jlerbErL9EI5GcHeSPGYPbd0e6GXvvYF7RMEkiWsUkD5TQYGJAo4fYJpOhtRPIwbup8nXCgTOwdowyExZ0l/PPf5tYbaPtlCxOOLRu6PlNgmQ0+89gRmuwe4lw7TlcVrJZHmXCmDitoJ3hmilRBRGLizWtKbHrdzMrDnJjcCc7xSFcBqKGcOUcuv90Ahhfvwh5DxNn2OATMFJK9p19I+X+swQzppX8FfTo1yJk72P+q9zye9/5U6/8ymZFUiJ0LlU/9toeqbVjjaPsjVm44/W4coVytsm7z65xfBC4fm2Tly5vs7Wzw40bm68pqP4Pi9u1pfaqhpmLkIhJ2amvKE3Lum6wrxfYqlp81O420RIB0+5iw076+dkNiB6VDKzDK2Ra4SzYMOUkL/EDw6e5s7+DtRkGQxZnaDMjqqPNStpyCAIuVljj0Owodu2NlKfeSOsKVCLOSKKIx7TJI6BE1JWo6RNMRqvJfAMACekW+308lF6JyTbMZY5EHOpG0FsnmhLpj8AkGVlrLRJa1DegETGpr6xNjbiSmPeg2qL+xsdZmzyDEFnqCX/5va/j4bNHmc4aVgaCf+rfc2d2EQkzfBuoW889x9Z429nDWPEJ69zuEpsZdROJrU+2sWETqLGhwrVbWNtAluNjAWqI0VHc/wFGd7+NgMGTkaNQT4j5gMb0CdkIk+WpCvIKxsatz/r7r/Hwx4YmHExDIPQXGb71pxm+/q8wPPt+NCvwFjSzaO4IMiW6GjFTfC+jzgpaitSv14rNZ79GqHYJwXNxp+LTv/c1BnGKY0pmPUpy+svZIpcZBCW79wNkh+/m4TtWyS58kelTnyCrr2KNYmLg2XM3cM7R85vY5z7Lu5cu07v0FeLjH8PEGjVCm/UQSe5yBI8pFrBrp2iGxynu+gEyNRgZwJt+luEjf52ZXcDsO5nEqP6MhWpKBowYokgC2/kmVd2t4GwgCEzNAlIuMTEDGjMg769w8uAa7339XVy/sUlVVSCKMQG++WnyzRfAFjRuGbVD9Nw36G2dIyvHjN/5k4TF4wklHzxZM0kWA/QwvgJ1SLlMS4/VN/wwa2//KFKOyVcPMbnyMrp4hLpX0m5cRrIBSHLJNAAmx9shakfUndEbmkTZXvO180fE/JXtCSXNt9w8J5iMmLl0kZCY6JYo1hqMOKLa5CZqS0oXKKTmTQ+cZqs2PP3SZe44vJ9h+doBKP9j8T2tJucc1to9ueHbMxSrsXMOAw1T4vUXWdQN9m8/zv54gZ3ZLiohGfy0gq93kdnTyO6zRLtAM21TL9U4IFJISyEtTafN3Q83ONg+w6i5grUl3vTA5sS2RsUSrEWdJRKxIVEcvenD6ADlsdezI0MaUyLWJsce7VoAIl1vLzEKjAFnFKea9OTVYNTe7Bd8v57f/NCTmx4G2lVa1C3iOzZEkhU1WOeSQDohiTkZl95HWyWRJ8lwTlmqXma/P0fW7lKK5/1vOMnJg6vUUpL1CvL2GmXYInhPHZXKRw6MMk4tWYwGVBw2TNB2Rlt7dLIJ9Q3C1W9BnGLwuMlVrKbWUAwJBNnWDe7QA5QH7qE1Q6ZuNb32ZkKwGa3J0WwANiezqWyYps+8RHCLINJrGCkpE4y0RIHg+ozPvpfi+Nuxhx8kGIfNBRUPTsnsFJu1WNcwtZYmHzEt1/GaQVuR+02Mr7Ei1OIw+YAizMhsTSbT5CrVVLSbL2DCLsaWlPe8H3v4AdbWRyyZTYr6GmjEkyMhUtGnNkWy1r70FMfcJfb3JmSzK2l+u4LG9rHqIdYpmcsHsHqMWbZEXD4BqkyyJcKdP0j/vvczG+3HHzlNayzzy5Xq7cjc/s8M7dqv6UsiEWKLaZqO0WJRbRK4zQ33KrFic0w2YCFXXnfHAbQc05giSf7GhjzsUDRbhAhkI9SWyPY5bL1JpCA/9RbMaD3Nc3FIqIne0wSDtg3GCC4THIHs4D3YY2+BYj+DI2cxNMRiGR0MoN0BO6bKFwkUe86ogoBxCdCpJEth2u9nQfNViFfWCOZLPboiaSbY5IVC1wohho7eSZKkNkkzppUeGMv6viVqzZlMKt56zzEOrY5vu0r6d3WKz7ECt+IG9ibmd5gQvdaRJqPHxCYtsnqH5vy3WNNN9m98Bf/cZ9mZ7YL1ZCFg6pYeM9pzX2L27FeJ+86mvubuBSTMGNuaH3zDSc4cWsG5mypaWZhx//F11pdGeBxxsEKc3AC/jceQFUWyCraWJuhev8qsnaF/+s1U+QrR5t1qmZ/vCTAnNBgzS0AtPBZN+YEaJGbfZzhO2pZuLanZOfVGcrRYIJoCsSVJT7zzZ/dt6hmjaDGA6DHtNGXZJkei0gu7LMdN+qbFKOQKC0WOYOgVFiOeVoUQI020zIJQSkPZXE+0MnJMMyHTlsJaZPs8N577Che+9Gug0wQMunYRrWdEW2DDBhKu0bYTtFwmyJDy0D0UD/wAZrCCzHawziVAWtZDbfKPF5knXK8sJM6fzWsZyYclYjEYDOr6aNYnuiGGEpEBRnOEBcQXoGMMI8b3/gDjo++iuOtdtOUSiuDabTKJEBqmbaDoDSkl0u8J4zKSxUjcvIyeexRLjUZLzNbQ/j5odnGahJo8BSp9bNsyCwYpR7RuRLj6ImXcpNdupN50NkBsTnBDbGgwfpqEisQQixHOGYyxuP33MnrDj+F6B6A8QnHfjxFHp5JGQrdLi/xxDYM/HTHHf+gedDegUfBuTGt7uBwcDWK61qJNEjlZXmKnVynDdXwEk5WpNdc9IysBK534mzGwfTmBYm0PcQvp6xAhGyNEsjgjY4qGlmgyxBkcnmhKKlPi3RI6OIhYA7ZEigKZbaKLh5C730scHSbtXxGrEYl+z5wa9aCvNaPgj465cPIrvhNQl6EmTxXOjmmQCgQeK5paok5AW0I0eNvHROXo4pB7jiyRtTssuJh8a26zs/J2vtK/OtFdahMkD7BCSU3ebHAknOegucHurKWuG1ycQH0eO7vGKFY4hebw3fQXRsjVJymrS+wzG/zsD97DI/ceIvMTNLS0tocWIx667zRrfY8JAfIRcfcc2lxM1QEpwPSo3RKtG2Njm2Bo63ex8I6fRMdHiVkflWSnnJZK0mqHrn/4iugKWCJ8P+9E0v1Pe1gBFBM7iqMIFINUFTDZ3k+LGIgeYkgizfkAI2Ca3aQA2JlEiTEMbOqJhk4D4tCCYxi2WGMbM7tBHQJNSAjcSaNJ47zaQI2jlQLTTDGhoZc7zNY58uplhvXLCA1RHNbX9LIcXA/nL6DV80icQeZQtWTr99B/y1+itmN0uo214KwByZCs7Baq+YOItFuvC69VSDoukmWs4FQJBnA+qaGRgRtDtKgM0dAj6CKNLNO/78P073gv5b3vx6weJ0SDC1MMgdDM2NjaTmhwhGKQs75/SBErtNlEpheI2hJIyoRZb4TMdlD1RLUoJdYUDPyE0FQ46zCDFayfQjulrDfREBNwUTJwfVxsMfUO2u4SNaI2Sza6tPjlO+g98tPY4Qqar7D+5p/CjU8zaSSh2Pfm5p+lUDTWEGpstMjwAE2xCEYppe5scA1BHGIybFHQa28wmL7EyLas9Q159HgZQudnYrTBSg0OmhuXmFJSNYAa8lhjbEblFkAcxewKdvdJZjsbmJUjxHyBqhijNgeBSIb21/FzUa6iIFQ70F+jeNtfZrp8B94Okr1z54lh6aoE0hkR3bZxa1VgnhZ0HOKsSNexfEiUIl1sVJOVuChGApGE42okI0RFZuc5Fl7mb7xpjTXZZmVp+Nq9tT8ibucRefVChCiWWqEQg/ctw0zI4pSVnrC9k6yK/cazXP7kJ1icXce1Bu9K4mCZfDZh9oVfJ2xfIauuw/O/i2mu0IsTTCxoXA/skKAzrN8k0xpxOfUTnyPrDRHraN0QcQuEgydwq8cTFkGhyVfJ8sNUZoFBXiLGJy4wLt38gXiLQMfcJlXl5lH0J6fiICmjjy1iIioWsiK1D0xa6uk1CsRAUhqbJwMTpJ5gosWNFmmKEaHZpT/o4doMzQaowr6BsBKv0zz1NHLtOXR4dwJ8RsOsVdwApJkkBDYOt72JyXPsSKge+xzZ3acp4xZilBgdtpmm51gMmH3z49QhYmKqUCSn5zFkBzHZmOapz5EdXSezhmgMkhVI2958X38sXO1PNuZ3R6fgImlsnKAyBWmQaCA3eFEwitqa6CyzNuJ6Y3ZdyaDcR+MWcCpksU1lztCyPZ0SfEAUZtNdTLiCbZew1SZFrIhGOunfFiksTbWNlovpqaqhEOg32+zEiqLwkA/ITAtNRcE2Yg0hhNRO6xQIufIyG9sXadsZ4ixiAuI8aiyhXEfVoFgwgh2sURy6K2lFRO0qan/a04FbUxpBokcl0rYRHawRbYFuCgUtViO4PrUdUNgSycok+vPMF+g3Z1mMW+SxpZUezjSpChlbcqmpJdLOJsTRYfLRMmjEhopYlEzqPoVY8t1LxM//L+ysv4d88Qhx4RjV4gnEWHpaA+B7S3iTpRZmllM3FUU+pu2fJi7fgZTLeLU4YY90M3eMvSn3e3tGsh/f+6r7TQFXEDGp+iYFSLuXDIBiTcDmFrKS/toR4vMR//lf5kb1W9z91p/mnlVHf9QjduyX2yn+fCQD3RoTAawQjcOGxKHNyj7STJjEBapqm3jtcYzfJKH5E5DHuwJ34zmc38WGiub6OcSnnpf4BmlniB1g1aFqaMQhhSDNFmF3K/2cg2bpAKMf/vsMh6cg66MChqTFsJUtMhqtUmqDSIvDcqul8CtC+MN///sScwjh/D8VsKlagRjEGlysuzKtIKq4PCfUE0QdLkbUDVAKxE9x5NjD99CunIBLX+fUgVXuH62zb/cJst2WQnOO6jnKrUv0pMXFXZoo2NAj+paivYqpLmNMSYwCZFhydHEIF54jPzclRocvC1xTgURcZmkWDtHWgeLCE+xWc9vbVPHAFvQcmHANdUdpin3J9tUO0JAOH0ybQJ24bqPoJpXKn9RA/EdDJbEe9qpHMSB+wi6OMitJCuotRivMYJXr0x65G1MSOkvXGtdWhNDDhgnO7Ye6JaCELMeMDmI2rkAxhFgjEawYTDvFiE3YgXqDqRsiocVKi7MVFUpdeYqFSEUPZUDpITfbaR2GCpyQkfqrTC5R130GsUVchreLQI9MI17SjdTQnfvH38DagTugXAaxWLl5iN6KAr+tQ+fcdpM8U2hRNUDJRBbItEwXUqZkd70JWVhg9uu/Q0GFsTm4EUaa1MaMA3KnuJ1vsSCHGZguKdMKiR5vS0RMuli4HBHL6tt+AnPsDDrbZDs7RHn2FP1LF9CXn8H4Brn8FFH3wcH7cCunOfjh/y1kw9QjF0FySyj6iO3h7AI1ww4w6Dj87p9K1VFJYl3YIu0kIvxpKOMIJABmd/NSTAK4Sp8sGnzWZztfYT1cTLLrscWrsBy3GJQOesv0H/oI7bMfoz33BLlb4chyyX/3X36EvBylpOg1fo/fGX/22wR7oR0H2adNJXqC9AjGoXFG8BVLMqUfJtjYgChWG5wYkAGunpDHKWIUiRGJggZJtpcmYH2DaRXVhJiV3CASkMkOlohYS1WuwOAMsTyGmh7RCC6CcX3KYw9jF0+C5szLeiqJWjhvBNz6YW75+P5HqlDc3G9dKqPPBY9CTdu23Z9HbFYgviHSQ3CQ9XARJMwQo+CWabIFrLSU9Q3ed8xy5Opn2PrEf8/Vpz7BYbnAwFSEkBTyYvS0dcTXFf7cE0yvPI/pjyi0Ttaqtg+r67T1DeKz36A2K8jKcST6zlTFUe47juZjetVGsne1A3RuQoSlyGbYbJOwcBg5+SGy5TtxZZ9IAkWizZ5VcdyzQn3t7zZz/XSkRQ14hChD3HAf+dlH0HwpIU+ioPRw66cZn30Xki0nN0IgNy3WT4kxT+hzEbQOePWpApAtYH1ApYVqGwkG2oCNNdgcXB+ptqCtEV8jeCSL7ODYbi3G5pRH7yUeeR3TkOG9R/MyCTwZAelBbwjtZXphmsSGbEbUDMgQDalhJklHwEgEN0YHRxA7SIZFt/Zf5XYYmT865q8tzltrmr5TFIoFyv13EWPZyV1XxGKZprefaIa46DBZCabESpXes5bYvKRgi36cktucgEmMKPEEMahYoikh67wrxqchX4Cih554O3L0bagru9eUEXc2kZefpByvgR0QBydA8m7tG4wVrM3BZJhsAVVDzHvkIujwEJIvYiVVkESyvabn/NJ9e4/PfO/1pHEBOhFh6wpk/0myU29Es35SLhVDq8LYtJTlEM2HaO8YwYzJmGGZkBnHcubpEW/LItaf/cpAB8RLwLeQqDoaE9I81FjrmDU5R2YvcTA+SQwtqjFt/pp8rcU4DIEEKbfQzLAxdjQ2TZVz34DWELcxzRaUMfmqb1+gcKvEwX42dxpWbElUSZtgIuxjisOceOtHkaykjSA266oGiiFpkstrlkd+Z6/8O7/PaNwCWexaCMYmpG2MRBW85NhenyJOCW1OGAyAHkhBFmtMe50ffyhjJx9SPv0pVssNjpobZNpHAa+p11lNb3B1o6XX3yUaB8WAfPM5MCVTDIMzD6Dffpy4u8229BgtHsJlL4JPWg9ucSnpOcSAmbtpdge7sY5Q5EyjxY5Ps/DQz4ARNq88RaMx3QrEoFETndHeHitZAKvdxtWxn1SEGQW99QdYfe9hNBunjqcp2CwOMd53N2v3vJcqL0EbQIiuILYN6hsa0wN1eHWEGDFOEGcQSaLezG4kKbaoiK8AQYsesfWYdhfRKh1oriQqhKyHyXv0Hngf3HU327/6/6aKFRkt4htwOZtmmcwN6U2vMHSOWhzOFuQJEfEff/Ov6O3+aY1bG0/JBMiVY4b3PMTmo7+baGvBI7bAYMhpyfGIMWCS8JVq2yljLuB4mbH1uJjEoyCBX+P8KLYZwSVVVOkv0pLjihXW3vghaDfZfOKzONNLWJ82YIc9hvsPJd0B5j309FoNGYU1iAU7WiSTChmtICQ9CswrXT3/9IzR3JugBfHAXKdGCXnO9ZizcuIhFu8aMH3x91E7BJ+o6So53va76WlRW5DFil6cIu00yYV3ioe3W/zZTwZIQ5sQn8l4I8wBNaHBGcNL13Y4EB7l4OD3MdHj2xobPUaStoAYt7fhqjHEZorViIkVBEHVdF4Nu4RLTxF2r6L9ghgs9upLuPUF7L67iHWS40yVMtmbEOr6aEz9X+1M1xKpYO5H8P2VHP6eIhsQDjzAwtKRNPmRJG/rZ5hQ0yJoOURig7QN3gzA9pHeMgK43UuEz/9PDAYrmGtPcSDf4FS5j74rcdYwaxrUpA3v+YvXkSM7VP01YrkPmz+VADpFCW6JkC/RZJFqfIrF5YME/UJSS7N52jgB8R6TKXucNAGMIYzvYWf5nfQW78QPxpgQ8f2TxDBOqPXOsTD5st8+kdqacwCJYlQJRmikR54dSNUwgSA5k5X7GC7dA+V+gqSWB2IIriSEBFZreiuEiaEOJilwGgO2m//tjOnTX6WI6f+xscEaSzQ92lmDqV9GFgZEjZAVif6J4qxAvo64kqlbouhnxGYb8S2Qoytn8GYC5z+HuX6RZnAHuUs3rtccpPknGCqOFouRnFAsEFRAPRoCxhWIGHpa43XWsQIcagDqVOHqL5OrsC9vGeaabviSoaHGlCVtFKzLCbZIjo+uTAmxKZFiH9IdZFEMkpX4uiHvjxHbQ+wctxS7dMAgmmNskV7HYAFbWPLxGkJ+21dm/qhIsKzYAR1SiyCqYLDgFghrZwjFEcRltNkSvqmQMKNUj1PfYbxS205NnuihsYVmByS1WG/HZ/PnIBnoHrtqQriTMbULBCkRbcmzjEYdy7LFWv0iXsqkOtfZpYq41GtTxRqDGpcQ0sbjtEVaCFHAKtJuETaex9QToh5glq1g6stobOnd9WZOn15BbEnyjOvgaHMkdHaz7C90LWk1qSJwmxla3Bp2sMrBH/q7yGCNaHIURaxg/DZZrIko0fXx9MB7gjiwPfrH76d+YYVSlfr8N8lOvJlocgZa8bYHjrOtQ2SjRcTTiqPoD9jZ2iCXwMKbPoTfdNSbzyLtLi2K2hGNGdBfgBM/8DPEa88TXUlsWoIryUwaR7wnK24+e9dtpOP7f5TRXR/ALx4ECYiD1Qc+AKEGVzJnFNwsb84bn69tjq/QbTARNJAjOE0XM4xNc14VyYcc/8BfS4h8N+i2o5R5RlsQ2hpLZOGuhzGPn6PyNpXzrUGdS/PUN/grz9IfLxEmE6yvulwqQ1xOXm1igyMYIZqcHE/PNFhtwQ2AAt8/yOj0cSYvPonxCrbPibf/EM1LS7TPf4aiuUozuBtP9gdYMreZYNurFvN3GVTxomQ2rRE1BrQlBo+RAoslDxN6OsO5ju4qgsYZGGjLJZwP/Oj73sTq+c+gOyXBCFIZWFwl7uxiJQOXJefKsiCT5DHTisNJjslSJS6aHG2Vcnkdsn5qOaCp+ifJUcGYgjpbIjMj/GA/s3KFYW+ZuZ7QnwJowB8eSndVyzseQSe2JjnlwlHu+oG/gRmsEXavoar0wy7xxjOUeclIdyndWlp3NiZtGnEEKbE7VxL42sJr7HD2h8afg2SAzpEtpAHOFugff4hq83F67TWcsRibYeqazNTJuU0UFZc4uibD2JQdBgzRlbStp3RNqjSErkSrLSbsYI2jyHLiyl00kxH9G18DLOQrmP7RvY07YdljAuGJB3yXgNiUBKjpdvS5Bv5r+QT/iDAlLJ5mXkCMpLK7NBMMnqA5WqzSrp3Fbj2egF5GsPvvZrrvAYobz2KtpVVLOzxJfzQityBeMa7EtAFX9lksh7QbNbaZIEtvpLYr+EPnkMtfIRIQehjXQ2MFi6eRja2uVGmIJutETwR828krdwVPBSFDFw4iJI3y1HkHBstATOMyP/Rv0dO4OSiv4eB0suAiBtGA0CIxyWbPe7PaGcawdLyrkHQIbwwYIUpGaCucbzCLh8BcotUksYrJ8DbvmlSRXtiGfJXYglGf8AomQ7KMcjbBhBFqXUoGYp1sWiUJVuFG1Asn0dU7yUKJNi1IgRntxyydYnd8lOz613HDJUw5Jroy2fNG5Q8wa/8Mxk1MjnQaCkBs0eDBpoR0ZDyLyz3miWgkYnQGArFYokAYlR4bJsRiSJv1sD4SyhE6bVCRJHWMgrEYbVICj0PRpKyKJ9o+mIgOF1CX2gaOQOqb23SZKYaEfWfR3gHaYh/twYehXAQiwdx+ALn/9JhX2roB6QywDCBujBn3U3vXbFIYxU0vMfnGJ3l+8m367XUkHrq59hAqGVONjrP75Nc4fOf7kcXha9j2/Y/Hn4MlBnv0EHEEt8i+R34Ud/IhoinIrAUN1GpoTUFGk+TtJe8+EhAwikWzErt6AIxBQwMaiJ1qmI0NTicIFSEa8uNv5uCP/F048XqicaiUBFsAEdHUh7rV5CZVA7rjVGLSG7CgRm7KD9+GERG8WNCk9AigpkzWuq5PXS6hS0cp3/AjEEPaUEIkO3AvKx/4WepskACZ7ZTy/vclwZJW0QB23wkWypK+hcUMVsINBs02ZGPGZ9/B0nv/C2blapdMOazLU4vUjZPYDppAgi4HTGrPtE0HI5nXYHJUksESYhAVpAOuzRXZ5sZQ8orKwK1wztcq5piSiJqEb1FJ/f1OgSDRP+ev0SQVO6BDr6dzWvMe2s7QZoqO9iEmY9ZGQlSCzfBZL0n/OovTCVFdsklWBUxqw9icTFNf1KDgEiZEQk1jyi5p6HPyPX+FwdE3s/jQj7D8yEdTSVVy8v33ML7//agbsHjyDLEcM42doY1Nlbk/c3Hr1NlrC3azyiSdT9QTvMe4HgbL/v3LHDhxiOSoZZMmA3U6v8pFbAQzvYY0E0I5pC0XqU2ZcALGkSzH0lVE54ZBmpJfkWScJNYSbC/N+7yHmoK56LloAjlGIGYFR975o4wOv45i8RgH3/dfQjFGaWhv3y3rPyESeDBVA9Lv2L0zRFCb7a0rYyI2bCGbz9JcfZqCCcaaTnclJC+btTMsfeBnKLQh7FzoWAm33wP6c5EMSDfTVQwzMbS9dVg9hboexiRg4YyciRmkg9oaou0RJCOoJmcvMfgg+HxA4wPa8eijJo97YsvOy8+y8dRjNGqhdwAGJ/DDQwQyUjYNdPfnvV6oQKIxlkCBJtghKuAl0poOYXybhtDpjMcaNJWNgyuptGAnW8LuvxNbrBAXTqExkhkFCTSuTxicwGYlrp1ip9eQYoVQHCaoUDWKH65TGsu+gaPndzhWTNmXt1iXnN0YncD0lzFd08VZhwj4PTOUkABYNh3sCmiIGJMOREVpxdCIJA0lD2iklUg7r3Nq2qJvKpLNVQdf+zER1WRpTUOEhBg36VYeJKfFpZsggGrH7Z5/hL2zKGYl7WQHoxH6S2AM5y5ep/WeYBzR5ajLkbIkqUqmxHhPfdE4cBmoxzez9FtZQW6UoJHKDlJlRnJ0eAhf7sf3jzArD6VEEiHYRab9Y9TSg7IPtkQHKxjjkkT3n9GYt0JEUgnedjNNRBFNCoQx+CQ5LBaDR/1sTwJe5xx3gWjLpGzXbBP9lFAM8OUYb/I0XmKYs5OMCGFPQryT1RFJSaUtCK6f8FHGEdQQdK6ykcYiCmmeFfuRbAExJWFwgpREp7n2fVVJ/75H2hBSgSCxCoQG8Kk+IqR9xZjkbtLukOmUGNvEUBOHEsiyjIlbRtbO4iz4808B7W3Z8/pzkAzMH3okGpMkMW1B+YafwN77HhxKKyXeFASjiI2Iyakp2S0yfEwIazENVhvEFYgapGmInbUvSLqNXX2WcPkFhgcOw8IianqY4X52zDIoZKHuVkiW3AkTMq57ffP+s3SLNllsJq3r1+Cx/SeGqGJjJFqDSpFsZBVsVmB6JeN3/l0GR9/SOQdmxNGh1KuPCm6UfACaCupEz7F5xDaeWiy+6PPAwQH/+7/0JpZHhoHZZTlcBS3QPCLZkMXT78TrIP2bRmjNAq3k4DQ9Oyu0MYfYx9sOFKSjBO4hySAnupPsfewZW83fI995/79dBiTNJXDdS5+/h04DYt7KuOXT/G/twbskI4rF19exDkTGqDFc2bpCiBlIH2sLjBN8OSTYAY0ZogaiCWA8ohXeDQlk2HZCQ4YteozZTTRBumTBCNoBMBMF1yRbsBgwainKHt451EJx8H4OfPDnkOE6mBwnc2T6TZzG7TIK303ME/y5tLeKgBRkmuTHEYuNAaTExBaR0Hl8BMDgsgx0htcF6rgfxGPxzExOCDNsu0vI+lT9fWBzGtdH8DiT+tgBwahHcSD9hFcSQ+06KWtxKVGzBVaEsoM8q+mhSdkDg8XYYRIdQjomUY5QkPOneHxSaaZr18xN7m7dH8CqR/Mx7fAQjfaQ2Q69dpe+VWIMCJ5ARm3K5HA4WKM8fBfh0regupEYa7dZ/DlIBrputklZuCUkPN7CGeLCcTJJGv8uGjJt0ySwi/iVe9hePoMZ7aexC9TliHjwLjRfQ4JiiIgxSY9aAqjSDxN6cUqx0IFubAajg8jyKRI9sOkycMvc8mfead/bsGW+VQum+1u387JKLItALY4gNrU6RHHWIkTs+gNIbx+aw4w+unomyaeqYsQSnUOrCeHyZdSCoUZ8m4BPmWVsppxaLnCiONNQ6hSlB5L48GHhTtrVB6BcpCgynCmS/rmF1o3RYpzEiaRPefAMjfSJkm5JVmts7ArncxK0CFZseu57YzJ/r/Nfb6cxyZnro++BT0lvxXFrItnhu0VubnaQ/q4VjN9EnAHTwwdPMAo4jMmxLkuGU+WYKvYxy4cQkxEwYC0ihlYKmmwRUSG6PtJfpE9NQcSYVJVDFCsRJ4HcKHt3Uk0YDsl7VLZPsAXaW0XX7u50BBKAUfjToyPwx4aA7hn5pPWv2A7PUoN1GCJJZyGtqdiZ/cQQu2cCbv0BsqUHQCzZYJFqsE4ILXWrxKVTxIWTYB0hy9M+FT0+JHKb1TY9RXW4jjoYbJ4EoDQmkKHNMQh5l4hFklufJSQNAUzaMiV9YB0iZef2+ac10mqaG8qn37HQVXhTSzegWU5cOUUo17Ab11nKLMt9Sy83QJNakcUwaasYi13cx+6zj+JferKrDt9e8ecCQJjils1DDEGTvnRmrjPUHcrQkAULWhAGh1n40H/FwrCE/in8zsfYLg5w4IM/h04D+ql/h+DT4g2zDhn6/2/vTWMsS86CzSciznKX3PesrH2vrurFSxs3eKHHjAUMMvjzCAR4GBgjm18fi/AvZMlgsQg34gfYwkhoEIIfWAKJsUeWsBh/g7FsjOxx711d5eruqsqqyspacr957z0nYn7EiZMnb93cM7syK+ORqjLPzXPjxIn1jTfeeF+JxBCYBBN0YGQ3TR3QcfLdnDr0GAQVEJENb8nqU4ko/L/7cdNQwfZbBGgZZxNANtwFHcxXj9B96DwmiLKTEgYhAgJdRzemAIMJyqTaBjeRYYDW80ijiWnS1IvUTaZuNgakoHrsKSqjY9AxiKx0Y+anCU0NohLT4RDloAMpQYQhPe/6KNNXXoUwybYWUoRIsUc3Xakvm/l3N2KdLUW0TpyFK2EIJATzUxD15m59gyAkooESIFQEQhFU+qE8SXTsAosvTNqVPjGoKkEQoc68k8brzyOCCpT67AQhDaFcrmcRWH8NgcuLVKRSEh08Q3PoHGncb1eWwtokFLUajxJtre0FYOyeswFImqRGYlSAEMqOObqJkkDUyYEP/W+g+jGqSnz0XVTPP0MyN0kzHqTvXT8DgWT6pa8QokFra+8hIozzqucygt2WEFJgwpBURJmzIJGNbw/m3u2hP/gCjwLt+5bACnFGhAhdp/vpn8DMvkD64v9D3FnhwhOnma7b0O3SaETcQSOsWhcPMiGo3aM+eYXoTBMrXOwe9o0w4DqeyNZNWkgSEaPSBQbFfSJTR5sSDdFEB52U+y5gOrsQ2na+RHZAzwXgLmpxiqQ5jar2IOfqCNPEiJBAN9E0SYIKqSpZ46y4H1UaABNaAy9jd952ny3pFhASYdeJ2JE7JFGlTPUpEFKgVTeL/Y8ju4+SSInSdoDRsmRXGmYeYwxalWmahEBrZBCTpgmhTumLYTECog4QMVJk/h3CbppRJ0aA7j/B4lyNsjEIFTEnO1A9Y8jOIbSKMJ2nqAWddKo5RKoxlDByd63zHwYKg5q/S1oetTHZMZA26A0XCIRGqMhGaiv1k6ouZOcB66oZjZGhNbQ1hqT3MKZ6CxWWkVGVskyJhCZUUOyBdhox2VFagxGKBJDVYaarp+iRfVZjQMqjXTtLwb/If8tWpTIL8JPWMg1MAEaiCVHpom3/xJiuE8g0wNDExMPo7hH0zddJoi5M9TBBkJISECmJUSGpqhJ0VJmtjCBknNnKubOAqR0XgzJJ0AFyyjrnehTCQ28rgkRI61m2ehBdGcUIRUBCIBOiwI6BAoHpPsT83WkgRAAlmSBq98AZke8iHoowYIwhSZJlRjBKKUxmjOfciqZpml9vDaf2sb+7pq1lRDVO+dj7jjL+jf+E4aMk6SRpJSIOYpqiQiTrlKIEQQyyC6IaqnaXNFLo/mNQm0Upg05BmhmrxpMxRmsCITAytgFmRaYYEst0FIX87VVE7p7fDW2y0oXpHSKt3wchMUIQ9h5k9IO/CB3D1l0zGiUDFlQ/JVHNzvvb89VpWicwTaSMaWpDoBM++hPPcK/vh3TPQrl/1Bo7GasY19IeeopP/hhdo+fQYRcyKKHCkPITHyAYe5pmUEJRRhtFksyBltRFjEFQ3svFvwUMBlJsaNukQT3soaoUgdR0hwlPH4goB6BCa1FOeYBUliHoRoQVNItYYzFBGpQwHQdoDJ5CaSiFkm6xQCwS4iDChpwms5q3uAObRkhSAVp2cOTH/lcqPUN2xWn03u4aq2IFItzKm8JaVCqUilDpIqZ219q+ZAagqYyIG1YzIKSgKSIrbIk6RoUoERA2ZjCyCyFDjAhIgyoJETpVBKKD7nPvpOPAMUTUkT01M1IWAU1RpVE9QPXEWea+dYsgC0+/C4/FP1QMVnOVhj0klYMkRAS6gUmboFN7okrElE4/w+joGVDdpKVOmqnG1Gbp2IUGhA9VM6C1JkkSbt68iTGGgwcPIqVcNvlrrXOhYXNkPv5Z8v+d6wfCmPTGawwN9DEv7iL7DmDqkKgEIRK7ByuayN4BRNdBQCHSJiENZMcISccQJuiCygAiTQhnL9OIBzHlLqRwQZMz4SMzPFlaH/HA1Z4kz7rJpF0bi0CXu0mbs3b1D6i4h84DT1hnT2DV0YTQd46FjucpzV8hlBUgAr1IkDYRskSiIjAJB/r6KfdWkLofEXXa8VPY44Jh5rdBdh2FrsMsEhGrEIm2ESL7z6JFSKgUujrAYlzDUKa593eet46AIIipNVNEeZSqiikFguFggQO1GwTVBKlK1AmodA2zoCIIOqzRYZaEUiHN6hhR9QjzvSlBbZbeKKCDGpFICQO7NaDzRy5pBqyOLLPbECFdo4+R94lHvGqWB6sx2bQMECCDCLk4Q+3y89a5mdCg7Z691Jk7YpzNgV3ZCwFKamRjnjguocwiRnTSqB6kc/Ak9R++hCFAdB4m7BiyAl5+TkZYnyDlIRo9p+kavoCRX7Mnb7wU8ABKgCCgKQJq1YPIoEyYLtohXVlfHgiB6jpEteswKQId2Hg0OqlRPFa+W3howoBSNlrf17/+db797W+Tpikf/vCH+cAHPrDs70oplNqqUt1NyynKaIywpiFGSdK7VyhNzTJSm0aJwzSiXgKjkaZJYCRaRKiD7+HAhw4j407SICARAaLST1juph5W6fzRn0cni8x/4/8kfuonCU89lRkEBUiMbTjLpH+wnbcoCOz1DmePHRkCa60sS9nxGuuLQKJAlpFAQGIFBxEz+t6PwnDA9P/7VyhZRsqIgDpBWkeoMokKMTpF6EWCZAGjytnUYd2iCmOtse2wFpA5g0RISaJiTNCVD3oyrjD6P/8KhBrTOZSZAxVPc+wvnEGhjMqIuErn6fciVIWShCE5zTF9lSCNSWSIURGid4RUKkwUY0KZhTEO0GGJoR/7b4hqL9VDTyOTWZLJNykFkjAxBMoaD2YPzbUDxR4RkNg2Iqzq2mB9bexxUXltnLoEqxW1nqVt+OxQLzB3/RWqpo4Q2q7QhUKkCc6ZeUgKRtk9bIw9197URCXrrySJezn8078OKmHxO19B6UUMEi27MVnEAiPsscJExoxeeD+i8RSm1rBbQ1Ja7ey+MDVfJ8agTNO6GkbScfppzAuHaczPYLTEBNYdsdRNEhHSEJLAJNbJEymmOZ95KHzYL7KchyYMGGNI05Rvf/vbfPKTn6Rer/O3f/u3fPCDHyQIAq5fv87k5CQXL17k3LlzW38eblDRWUeygVfK6QxHqdGvIDIBdSoEsma9u2pBQ5URpcOoAwftOWwV01AViLoplzqoiRAxdAGDZir4v+jpP0tcGSZBkApBiLCGJA+cSy/un+7dAW9pt5MlQyMh7XllYaVje1ZXZNrQFGUadrURxIjOA4hDT7IY9xDLiEDakMgybVibATJhwNSRaR3tbBGyh9pz9ApBEzAoI61vfCGpBV3ooJw7tjWqjDzwHppK0DQxsV6wQ6qs7N0K2DLWiYoOy4QDRxEyIg4kA2qBvvo4EcdYNAE6KGM6++1R0CDEhKAlGFUiISQeepxEBGgg0nOIuTtgBIHQNuS11pkffSsG5L3BCIzQKFPHun+NMgPDgoHbvmBp/0QDKogIREopnUPpxAoD2KPIQtuJRQgFJBgpbcAh00DIgCSVqMwBVU0GVPvPQf0uIAjTWYRukGbB0DBYPyoSEiOJO0bBDNJMb1snRZIHzsTbvr6HDG23Gfv+TRpCkmpN0DkE1V7E3F1MCoRB5iOijhESnZ0as0cwNboxD7r5cF+iDQ9N3nOGKYuLi3R2dlIul2k0GvkWwfT0NK+99lq+hbB5rGGM9Y4nMSKyUQN1io7LJGFMXzLJwXgBoyAQygblCEJ7mESTKZOthzcbiauJChRE3SSqCxP0YEoDhCIhFALCXqs9yJ6vswNDLPv36IjaRkCABGn1LyIVSLGICOyknUucgsweJERgHZ7YYzclmuEgRjVQzCCIaBCgw4BSMgvpAphFVKOGFMoeyTKLKFMrFGN+NhCJRFZGGPrg/0HQccgeEjLSenULKghRJhAgRZDlZb9isL7vm/aIZyxJVIlOFfLT7z1DGNVBKKrHf5TSh/87qvs4XT/+3xEdhxDlYVTQRASSUIARIamLrinLCFWmRy0wqmaodx0Bk6BMkk/0SyoCe35dYFdZtmu4o4PusOSjiWut9jeV/yYR1nbm+Pvs9opU6KAbKQWRnkcnTUxgvUkaa8bmAm0jgiqmOU8aRBhVoWxShAzBwKLogLSJME179NRkTnGlFbpigRWMVSciUiS6CXoOIWqkmfgmjUZqwOyyZe3bjBEhCklJ2tgc+vzP0igNohZvZZEMFIgSAYqKSQkRhINPIn70EzRkbJ207TIemmZAa00QBPT29vLmm2/SaDQYGBiwFuVac/78ec6fP8+//uu/blEYsMZqgI3hbcAFnTFBibqKidM6ioC6AmXsSokgQhgI0EgDUgvS7EC6IkUpCWGZRMWQWeqGukEorK8COwGldq9PhLSf/B+NHWuBQBqVGQuC0IImceacZilcp3MaI0R2pMZgbQdUhBYVjEgRgSDREYlIMWFIqBdJJ15Gl2LE3SvEw2eyUwo2yE4isH72C4OTEUDUS9+p9+L2nqVbBZGdmbZ+eN0L7EusxkbRaEYk0Qg6rGBMTCgDDo/0MxeUSVUZ0X3cnvnXgsqZ48A8uvMkC8EbdgMoU3VLAaEwNhSBiukUdYaiOqbngLWTyzcGnEGvyQyxwJ6nL2RumevnR49cH5gdn7TNc2k8ECaGwTOkb30fqazHTZHUCXQNow2oOLtT5aeTrFKuhDSL9iiiiu02grBeKecrB+mLeiFzQ5z70siea5cvth+JIGShNEqnrhCIMLOvse6v7USnluV3X5G118x82S4VD78H/f3/G7lwG9Vtgzmlwi4opW5gkKjOw0SnP8T0+GVIGg/3HdrwUA0IjTH87M/+LP/wD/+AlJJf/dVfzYWBrRkNtrK8yVrtg0SFMUbaickARipQgfWSlkUttD3MquXshB4iKCGDKiaKSWUKgbZucMMOEuz+UIhCGA1553lEVznCCks2KFBMKkAFAb0n3keaLqBViFxmC1YoAwHGBBBUbGAdGUGpn4YJCZsLqDCkbppM/o+/QdZmqE6/ScfAAeqAkTb2QItHoFxwXG6P8eCj94OB2npIZUT/yfej+4ZJgwFI5jCBIGkaTFqlXuqgJCOkrIAxNCQgIjrOfJD4wBFQ5cL+P0v7RiokCBTlVBOU4mzykNmEv2SnsWyTbHnTeORp3SBs/c0ohW40oFJGSnvqAq2tMLDC+Cjc9oFUmaAVkSCQpQGO/dT/TtTZS6JKOKuDB1LJ+pOq9HP4f/ktZN8xEtFhw6sD9vSIIYHMEdF+RCwNH8aOMzKMkSqEJLVaY1qPY1rtsAwjK77tQhfbD1UzAPDYY4/xR3/0R2it862DVkFg60cLH8QYkEGMFjHOKSgyBKMxspnbOlv3KGlmECiRJkSYCoQdmLhCU0oIFUp2kPadpEEnpdxzVRaC+JEmC4qjI4xQpCIFIymdfBajmiwS5quWtt/O4rKHQttBLOpCBCEdzQWkMCA0XfNXCGYmiGggZAONoSEEJQOByTzue4vnDWOEoCEkpfIB5FAPTVlCyml0WWCaiwgRk1a7EELmDoKMsDEdo/7TlHsOg4jtaZ3iWXQDSEUQBJTShp3IjLTGb/kNS7YkvubaIMCoAJp1tFAIaf0xCJOSGmMDFQFFayiwwoCWCiGzOAYIEiGQskQ0dB6DRjvnGqs9XlUIRt5JU8QkRthttexZOoud0tZp0n4hl2cFxigIrPbE1JsEUi7ZTwFWEy2zbpGFgtZeGADs5K6UWjbJuyOFrVoBJyBs27MBo40Naxx1kIiSDbhhFDIskRqNUUvT19L60qCN3SQQQYxWFUzYyYIsgyojSwP0/sjPoXoOo0WINGCEslHkHlgDPFq4XWD7X+YqNRzEyHRd3xdS2DgPIgBVQgpDrBeRJsWkKXE6i2IRbQJEWCLAagCkadrAUrK8lJYXCtaNIbMkD0sIGWcasSY6MEg9jwogrXSAhkBra0UNGBpoUUGH1WwAWToXYC3PJVIESCUpmRrSaHvePdvbtgKkCyTtWQkhFTJpoIWy84kKkWmT1EpRLKlhLEYIZJBF1FMKYRpg3RTZUz1hB9KkhNnqfrXSN0KioxLCWJsQhUZoGxdBZWPaUp/ff7gtLrBjl1QRYblK89ZstozUBa1LFiTNgJISZTQ6ae46q7GHerRwrc+3TQgQS6dpHVJITFRBxh1oEaKlIghjGmmCUXawspufWacxMtuTMxilSOMKgewkKY1iqGKCTiqnP4AWNtxnZASptGcXwkdYI20P9tlAOS7MbyAFWioSFCHZtugKBSCN3b2sq05SUQGgFAbM3W9SNdYFq9CCuqlYZyiqh9ANgkaDaWIjPj6qJbxzCAyBsMfGUul8cyZoWYK0jpIJOujMIurVQARIAmJSJMaGNbYSAE4taqcoad1MS0WFBaRJ7R4qLhSs7V9a7LrTVbsKIQSkidUMmNRG4tR2tW+9fhZFAXsyScjACgPSRu20J2ysR4gmdgEmTB0lrIvpFfuNMGhSpEjsKSpjrF2OsVOGarvHsL9wwoAVCySVji5qjSZCu6im9nMn+IJBKHuyQKdpFnNi94xb+6Q6iyvzrAKkQqgScaWHFIWRChnGaBmBjKz9QP4NCTo75qQMoqxIgxDZNUr10DsQYRepETRVD1pWsr2kNFOdmiV3n48kAo3COtFIUEaCtms/DQR67cZuZInykXche45iVMwiAbL/GGH3GGkCutakHg4wM/AOdP8ZXChVLUOM9ILAZhEGIg2ClERkE7WJSOUgzSaIKKLzwHkbqlXVSSWkSCQhQhu33llKD7tbow0YFRJEId0lG8xLY70MAnYrDqx2zrMiwhh00kREMags2JMTBuRyUcB+QSCkysIQhxgZWVfGJgG9iPP5YY+9rfl0BApp3NipQLjTVDZvDx6X3i8stXsnBhsEoqMTrXUWkbBQNllwMC2AICDRmqTpDQgfLnn9aHs0RkiCqIImO3YWRmgV55qBJaMoZTUDApCGRqCQKkJ2D3PimZ8EFSPQNFGEGAID6CZK2Hjytrk8mmsg4yRj0cCKTeVspZjYd04lQq6ijkSALDPynp+mGfaR6ikWZZnqyClk10GMEShjSIMuhp/9eaLRJ7BKS6gjiUW0qk2CZ2WEEWBNPGxsHAykZVI5hK7PUlIxQfdREhmAMDSz8E6RiUBrpNL5SjHHgDYGKRVSKgJjz1MbIR8I4W72967zGghkEJGKEBFV8gnF7jU7GxlD7gvclaUMbb+TIUbGNBA4E0/ne3XJh8MqZW+yo51GIrDjmJPrJTozjt5f00eRosGsO5VjSmUgi6zZIigZsNFTg5CmUCRJSpRpBpYbPT889kVtGoxt1AYgAbFISgVlSggpCMQCdR1hojLy0BMkQTnTHiRW5YbVZ0pAlEYw7/hVgv6jyLDHnq1XEUq4U9GZ5KyC/Pzuo7wzalXLgAwKR/4FiixM8xoykCA7JiX7EDJAGEkgNJGpgYpIgxJaGIIoRJT6EaqDFEkTSShsKGmvbN4k1sYVhMpO+RuEgjSOCObvoUUAYQUpwJgqCkXgwtaqQps2wu5rA6CzaIOKRAm0boLqIjCKMmTHQrPw1r7eVkESjb2b6i/8GbKjH8IBRO0uCmgGkd1q0RojIpqAShdJRYzoOIDEkAq7VRMKABsCOiSTG2S8rjHJeqjEfWvJRtfYbYr9itOwJEBoEivoagNhGSmwoaKLPjKyuSEUBoIBuj/wKeKhUw998m9lXwgDDmGyHR6R2ilExjSjKoiIRVmhXOqm89i7SYMK0ESIFOPWncJNXF0MPv7TQHYuOCgYGrqQspk1df6H5b88UjjVcHGFaIsh21ZZY8wQFCeIBGREI+ikIQJCpRBhiMGgpEaoGERgz3cIiI0NRYzwk8qmyfzRurMzKA0hKD2DNgYjZbaOjJBG5L4iKGp7jEEL62/AaonsRKKVslqhoAxIlDEkIlOpoq37Yc8KSGR1lPDkwayUmgju2vJXUTYZp5gsUJQxNRtBstSJKsckKgBE5jvA7lurbMEqCNZW8AuW/D6IZT9wYcn3L3Y+kNlWSYpAyghdHWVRVohDG64+l6OyeUcJQHXQcfSZPBgfPHyNgGMfCQMmNyS0oW0UWgXI0dNMXT4AXYehOmjDtWYGOvlxqbwzZDYE7ghkoRKXVago3v1ok4tCot3na2NcAesk27uO4eDT6K4eEDHSaJRJkVKhArvCESbrWPvF5GVHcRO8M3ayIaeFTjC6iZDLXQIXB7jlWDW1m+qdu1whJeIBYzfP+ij0q8w7k0FiZGC3NUUKmVAlZIoUGiMFutpLEkRLK/kHxqa1+6douUk8+Nd9jLGeGE0Tg42YGhIS9JyE7kOkqsIybaWwJ9h22+Tfyr4QBtxAZLfXJCazR09VSOnU07z1//0PTvzYTyKHTqKNRChnEa3z7y9LL6vM7QmvvL+xtuUGRQJGk8oyw8/8PEj7eRTFVpsjQ4QqQebn223JeIFg6ywdDMx2DoQVzkiTB2eFNt/M96zdkZJsJSqERAoXhdQ4yc+zUZyjJiHQQpLKCCOsXw8hyDxA2k0AI0PSvtM0VA9++2xnsK1Yg2lYe5rMTkB1jhL0DCJSe6Rz2Xd2uSAA+0EYyM/kisyARlrDKQGJUKhomI5T/xNq+ElQPVbidhqAwkSzkkDg2RpLdrcuhKugFg8SAIGeISh1Y1DIuAOkjVgoMLbhiv0WzGbncH0DIQmUxCQNpE6yQFCwZBjV7ptZcG67mYqRduIyUmGy0zTGRcXxtbUJMut1IUhFgOwdQpa7gRLCZL4bTBlhFFKU6XjipynJCC8M7CQ2koTONl2UyRzVCZD1+2AaIEr53Xthvnj0hQGwptICtDBIA8JIpBAkAkR1iEM/9t8gLoMuLxnE2UPztFP374WK3Svk6uPMO10ANIS0+3FGYcoDJCKmHvdQirpIUQQmtS6QWdpm8DWyNXIvwkYQKIVuNuyZjSUbqFW+mbHMPkZmdSraq6s9G0dINBJZ7YagQopAGZEdXY5A26A5wfCTNuiQiwHi2WYy3aQsIZHWAiOtI5SiGXaSGEFsdp+HwbXYB8KAW+VbJxqZVIDEWPfeIoZ4EC0FUkhIRa7t1IVVpx/GdgaR618iEDaIrZW5DcIIRMcYDdWB6h6lGZQzVTQU9Qm+brbO0sLdqvZVaiMMis3GCMkMpISUIO2xQi9EbxS3GDF53aRCEURltD3ghxIGYTQmC46mhSEJu7IIkb68dwarAmtiXQtLnSCywETxifcTdFZBxmumstvYB8JAkWzf0jjFZoIxCmOs/+4wJfO2RmZsCH7VubOIzGrAelkzCJMQGgEmtfN+zwFE7xgdj/8ItaIbVGOWjlh7NknRpK/gQkYI9PQUoU6X7NdMZiD4QIE/4Dwg0wBkmgEhESLbLsD1Jr9dsBa5IX/unMH+1EKhgghjQNtzNQjRQBDbI25AQ0CMfMQDQD9stNXSmKb1DiljakLR8cSHs/Vm3BKgbfezP4QB4eINWmMmoezJqJggOwFo991EQMEm6lGPpr47cIFRl04lqOyoot2waXYfYf7IT9HR9xixSTEysG5Zs0lFGJ1v53g2inUOZcMHa5TRGGEQooRcuAlxJ3bTbCXtgAZt60RkthxGZb0mSGiEVew5xXLmyEtZQ1EaGFOmKSB6W95zb9JEEJgEYRIbXTUQ1IJOYiGQur4kXIncgwASG01QrFhnnu1AoAgAmUWIBEUsQMhydghk741Jj74wUDjTpFwHyc5IFz16ut/zkwIsVeXeqtK9R95xhHlgEOs+cJyuvl+GUjU/yqmdTcHSTvfbnudHAgFLcQW09SgtBPWmpJwsoqp9rGg4KOyq1UUasFjBTGBAJDZ8NQKEtJENnco7C5PTGuTVs4QRgtQYAhIgISVGypCFoJugKekQzsnXUpAAV092feNLd+ewS35rW6byCSJALPO/sdfK/9EXBqAgqUHLj+U1Jtr+6tlRxAP/578ag5AhIurAiBiyM71Ld/mT61vHnp4x2caZQdE1MEISVkiJWb0nZIa5kHvHzTYIwBiUEChpcmd1VgxQ9ly8AeU72dpkQpQGpIjpP/Vuyr2DpKpqA6S3lOHenYr2GsujNj4Kpb0/hAHP3kRgDxEGVUxmMOUNBreTfOq2vxurco76RxGdgyRBF2u6nRXZkd3cqFPkaQkZ2iBHwoobGhvoKCRAGEOQH0v0NdqKwAlYMitjgVZlBt79YSCkIUJfap5txQsDnl1MtmUjVnKf6ofDreAMZJcUygZtBEpEJKqCDitrCgMGYWUIAzYaoZ24FCFalZmTHVTiKmAwGrQkj0ogcmHA0w4JefkLY/sB4YANQiSkb/6ebcX3RM/uRoilY2rCqkWXN1o/Im4eF8Gu4JtLKVAKHcSYsMxa5Wun/qWtARsdT4CM0aV+5uIhCDoAUEI7s0+8z4G1ycQAQBBkW50mqGJkhPQmgp5txmsGPLsck6ugl+wKTB4Mifwzz8YxBVfERedBEh1GEJeWByRq831IsgiVxi5fhY0jqUVM58HTNFJDKsuARpgEJSKcAZbJDD997bXHbqAohLFeBYywIaStQ/WEovGgx7NVvDDg2dVYQSBt/ZSiettPJluhcI5d2HU9wqCDEBFGa1hoWJNAaZyGwODOJiAUlSPnqBw8QV1GKOpgNBLntd1tEvjaa4fIVTX2pyDN3KRkJWjqCOK1bTo8nnXihQHPHiDzfb/s2rNljEGaBERIiiCVoIwGPUsz6CIMwzUkLQlE2bFciQ3bKokAKSUiHsYAgQBJCNIsmQsWT/h42rJUOksasCwsDsKW8sPIlucRxQsDnt3NkmP71j/4qWSLOL2Kjb5pBS6RakibLAR9VLr6QKziw0EIhHUcnSVm77X2AwJkFutDCDAy8yS95MVw77lleRtZdvbZhpdepgcTfuj2bC++RXn2AH7K2AmcOt/uTLsj7QLCbppdx9C9w6we7OZBHxFLc1jLiXfR8nfPBmj1HuBL0bP9eGHA49mv5EGfnGdAa5hpom6O/uhHQIUYf57d49kXeGHA49mvGBf1MTtgKNLMIK2CqFTRBvy+tMezP/DCgMezj1mKVegiDEh7PNBIGyvK4/HsC7ww4PHsUwQuXLdh2Uk2A8t9PnqpwON51Nm1woAxZu2btpBu20hsHs++I80EgqLfBp25FyYLz+rxeLaTnZyH7Omgjae7K4UBYwxaa4QQaK2Rcmv7ljslWHg8ex6xdIZ9WTRIf+7P49lxinPTVgUDN29C5udjg+ntSmEAbMGkaYoQAinltkzoRYnJCwgeDyyb8c3SZ8t6h+8rHs+OsF1zklswG2M2vXjetcKA0wgkScJ3vvMd5ufnt5ReUS2zlQLzeDwej2crOM33dmwXGGN46aWX+NCHPpRfbyY9YXbhEllrnas77t69yyuvvLKlwnLbDa7w/+mf/okvfOEL25Vdj8fj8XjWhRCCP/uzP+Md73jHtqVpjOHpp58mjmMb3VWpR2OboLjfMTQ0xPDw8JbSM8bk0pLWmhdffDF/htNAuC2JorTmNAjuuy6dokqmnZahVTJb6br1p8sP8MC1o10+gGW2FcX8u3SKn7e7LuYFWLY1UyyHdtfFvDmha7Xr4v1r5au1nNdbF8V7iu/T7nozdVGsT/eO7rPidbHdrbcuHDtRF2u9z3rropiue+d27bGYv83WRbE82pXPap+tVhfuvvX069Z0W9Npl7/WumhX9tvRz4vfaZfXzfbzIq11vh39vPUd1lMXm+3nxWdspC420s/bfaeYj2KfeOqpp/jABz6w7LlbYaW2sBF2pTAAO2ftL4Tg3e9+N7/xG79BGIY0m02CIKDZbBJFEc1mkziOaTQaVKtVZmZmqFar1Go1wjCk0Wjk9xWvlVIsLCwQRRGNRoNyuUytViOOY+r1+gPXpVKJJEmW5c0Yg1LqgcboGr+Ukvn5eTo7O1lYWKBUKrG4uJin7a47OjpYWFigXC6TpimNRoMgCEjTlCAIaDQahGFIkiREUcTi4iJxHOeN1b2bKxv3veK1UookSQiCACEEjUYjfzdXBsVrVwbNZvOBgbnd4NY6GZTLZaanp+nq6mJ2dnbFdy+VSgA0Go08j64+gyDI37ler+dl4H4Wy8a1g+J97ntxHGOMoVar5W1jpfx0dnYyMzNDd3c3CwsL+aDQbgApTohCCIIgoFarLWs7rlxdnbWWszEmf5fWekrTNN96i6Logfbg0nJlVewTxbJTSlGr1ahUKszNza347uVyOW/jKw2crjxaCcNw1f7jrl0bL+bV1V9rfy2VSiwsLNDV1cX8/PyydrBSv3Zl4955rX5dvE7TdFm/dguOdu+9mX5eqVTyZ7g+6OrJvUOx7brvrtbPi+3FlakQYsX25say1n7u6r3dJOXeU2udpxXHMfPz86u2pa308+I7F/t1cbxv/V6xn7sxdbW6KPZNV57tBBwhBEeOHHlAkNnKnLcd8+Wu3CbYblpXM+663QqktYLcZysN3u73orEjkA+8Lt3W63arIPdPKfWAdOu+U3z2SpI/PCjFtltxta4Sium5zuMmbNeY20nS7b6zUhpKqRXff6WfG62L1vy1q5vidbt20JrfdvlvZbUJvl3+N1MXa12776x3Fd7u2au1l2L6rauzdt9daxVW1Mi1e2axDIpl33q91bpY6XvFz2Htft16Dcvbzmb7+Up5XKkuNtvPVyuXdt/ZSj/faF1stZ8X879Sv96pft5uzGx9n+2Y0LfCrtUMbDfFgm43Qa40abb7/krXrZOzo12Dav2s3cTurlcbnNr93jrQFweKdj9b89RaJq3vt9Jz17pul/ZaP9uxVl2s9vx2163v7f6+VodvTafdM9rVXfHedj9XGlg2+m7thMT15GW1PLaqxtf67lr5LwoCjqKwUqT1s63URWvfWOl7xbbRynr6eeuzV6ur1fr5Suru4ve3o5+3u7/1b9vVz1vb51p1sdV+vtL7bEc/X8kgcKV5pbjl6Vitj66U9+1kXwgD7SbplSZQWN7xms0mExMTXLx4kVOnTjE1NcX09DTnz5/n6tWrzM3N8fjjj3P9+nUmJyc5fvw4d+7coV6vc/LkSS5evEgcx/T393PlyhVOnTrF4uIi169f58yZMywsLHDt2jWeeuop7t69y/j4OKdPn2ZmZoZbt25x/vx5xsfHmZ6e5ty5c1y+fJnOzk4GBwe5ePEiAwMD9PX1cfHiRQ4ePEh3dzevvvoqg4OD9Pb28uqrrzI2NkYQBFy7do2DBw9ijOHGjRucP3+ea9euMT8/z5kzZ3jjjTdIkoRz584xPj7O/fv382cCHD16lKtXrwJw7tw5XnrpJZRSHD16lMuXL1MulxkeHubFF1/kzJkzCCG4dOkSp0+fpl6v89Zbb/HEE08wNTXFtWvXeMc73sHk5GT+ztPT09y+fZtz587x5ptvEscxJ06c4JVXXqFUKjE2NsYrr7ySv/Nrr73G6OgoAwMDvPDCC4yMjNDb28tLL73EsWPHUEpx9epVDh48SEdHBy+//DJHjhzBGMP4+DgjIyM0m03u3bvH6Ogob731FsePHycIAi5evMi5c+eYmpri3r17PPnkk0xPT3Pp0iXOnDnD9PQ0k5OTnDp1itu3b7O4uMjJkye5fPkySimOHDnC66+/TkdHB4ODg1y9epXOzk4OHz7M888/T09PDz09PfnnfX19vPLKKzzxxBNMT08zPj7O+fPnuXPnDhMTE1y4cIFbt24xNTXFk08+ybVr17h//z5nzpxhfHycmZkZTp8+zeXLl+nt7eXo0aNcuXKF2dlZzpw5w8svv8zIyAg9PT1cvHiR4eFhqtUqly5d4tChQwRBwA9/+MO87d2/f58nn3ySqakpXn/9dc6cOcPMzAy3b9/m1KlTTE5OUqvVOHPmDK+//jpBEHDkyBEuXbpER0cH/f39vPbaa5w/f55SqcQLL7xAX18fvb29vPnmm5TLZQYGBrh06RIXLlzI+0R/fz/lcpnLly9z/vx55ufnuX79OgcPHuTq1ascOnQIpRRvvvkm58+f5/79+9y8eXNZuxobG8MYw8TEBKdOneLGjRvUajVOnjzJ+Pg49Xqd48eP8+abb5KmKSdPnuT555/n1KlTVCoVfvjDHyKl5OjRo7z88sscPXqUKIq4ePEiJ0+epNFocO3aNc6cOcPU1BS3b9/m+PHjTE5OkiQJFy5cYGJigjfffJPHH3+cN954A6UUx44d4/XXX8/b9YsvvkipVOLQoUNcuXIl7z+vvfYaAwMDDAwMcPHiRcbGxpBS8sYbb/D4448zPT3N9evXeeqpp7h//z7Xr1/P33l8fJwLFy5w7do1FhYWOH36NG+99Rb1ep0TJ05w7dq1/PdXX32VI0eO0NHRwZtvvokQVn390ksvceLECZRSvP7665w6dYogCHjxxRc5ffo0UkouX77M6dOnaTQavPHGG4yNjXHjxg1OnTqFEIKLFy9y9uxZ5ufnuXHjBhcuXKBWq3Hp0iXOnTvHzMwMN2/e5OzZs9y/f5+JiQnOnj3LzZs3mZmZ4cKFC3n/GR4e5pVXXmFsbIyBgQFefvll+vr68jY2OjpKtVrllVde4eTJkxhjuHbtGseOHWNhYYHJyUkee+wxbty4wfT0NI8//jhvvfUW9+/f57HHHuPWrVtMT09z5swZLl26RKlU4uzZs1y8eJHFxUVOnDjBlStXlvVrNwa/8sornD17Fq01V65c4fTp08zNzeXj6+LiIhcvXuTChQt5v3bjimu3t27dyvNy8eJFuru783cbGxvjyJEjRFGUb60YYwiC7Z+694Uw4FhJsmz9W5IkNJtNXnjhBb74xS/yrW99i1u3bjEyMsLc3ByNRoORkRHu3btHkiSMjY1x584d5ufnGR4eZmpqiiRJGBwc5Pbt25RKJaIo4t69ewwODtJoNJienmZkZIT5+Xnm5uY4dOgQ09PTTE9PMzw8TK1WY2ZmhgMHDnDv3j2azSYjIyN5etVqlZs3b9Ld3U25XGZiYoKBgQHiOOb69ev09vYSRRETExP09/djjGF6epqBgYH8+QcOHODu3bukacrQ0BC3b99GKcXw8DD379+nVqsxPDycf97V1cX9+/cJgoChoSGuXbtGGIb09vYyOTlJGIZ0dXUxMTHB0NAQaZpy584dhoeHqdfr3L9/nyNHjjA7O8vU1BSHDx9mZmaGqakphoeHWVhYYHZ2lrGxMSYmJgjDkMHBQW7evEkYhvT09DA+Pk5vby+lUombN28yODhIuVzm2rVr+TvfunWLgYEBjDFMTU3R19dHGIbcuHGDgYEB0jRlenqaoaEharVavo987949+vv7EUJw+/btvH4ajQajo6MsLCxw+/ZtDhw4wPz8PAsLCwwNDXHv3j2EEPT393Pr1i2iKKKnp4eJiQmq1SqVSoV79+5RrVbp7Ozk2rVrdHV1EUURd+/epbu7myAImJyc5MCBA8zNzTE7O8vo6Chzc3PL2lWz2czbW61WY3R0lMnJSYwxjIyMcP36dbq7u+nu7ub27ds0Gg2GhobytlKpVPJykFJy+/bt/J0nJyfz95yfn+fQoUPMz89z+/btPC+1Wo2hoSGmp6fRWjMwMMCtW7cIw5C+vj5u3bpFuVymUqlw+/btXBC9ceMGlUqFUqnE5OQk3d3dxHHMxMQEY2NjJEnC5OQknZ2dKKW4c+cOY2NjeZvo7u7m3r179Pb2IoTg3r17jI2N5WV18OBB5ubm8vpO05S5uTkGBwe5d+8eWmuGhoa4c+cOxhj6+vq4c+cOYRjS3d3NrVu3GBwcJAxD7ty5g1KKnp4ebty4wYEDB9BaMzk5ycDAAPV6nampKUZHR5mdnaVWq3HgwAHu3LmDEILh4WGmp6e5d+9e/rlSiv7+fiYmJoiiiMHBQW7cuEEcx3R2djI5OZn/XuzXri1rrbl3717+ngsLC/l45MrHtevWfj05OYmUMu9LQRDQ39/P+Pg4g4ODeT1IKenp6eHmzZsMDQ3l/WB4eBilVP65K4vR0VHq9Xpuy3P//n3GxsZoNpt5m5mfn2dmZoaDBw9Sr9eZnJxkbGyM2dlZ5ubmGBkZYWZmhlqtxuDgIDMzMyRJwsjICDdv3qRUKtHZ2cmNGzfo6+ujs7OT8fHxvP3cvn077z9u3Gk0GszMzNDf30+9Xmd+fj4fRxuNBmNjY9y9e5d6vc7g4CBTU1M0Gg0GBweZmJggjmPGxsYYHx9Ha72sX7s2XqlU8r40OjoKkI8Zbux27brYf2ZmZvJxZX5+npGREe7fv0+9Xmd4eJiJiQkqlQodHR2Mj48zPDzME088wW/91m/xzDPP5NsXOzI/mo3qJvYBaZpy9+5dfuEXfoHLly9z69YtkiTJ1VjOGAiWW+C2U23CkqBR3Ddy+1Lus3b7ei5tJw22U08VDZHa5aV1j611P7NVDdq6F9j6PJdOMY+t+XKnM9rR+p1ieu5zZ3zTmmYxP8V9V3ftVHWtpw5ajRRd/RVVma1768Wyb7UEdv+K0rnLWzt1YeuerEvb7S+3WnQXy6pY1sX3Llrqt5Zf0UixtQ6Le6PF77jnun3sYjkX22DrYFTMj0vXXbvnu+8V33ul57XLr3v34vdcmxBC5IZvK1nku3uLp4Zc+3LGZe3KojUdZ1RXrI/iOwoh8rZVLLPiuxTLy+1dF9uiS7PYh1oXLO3GmlY1+0r92qXZ2kday761HRXHq9a6c+/h0iuWR7FNFvNeLO9i3ypeu3wW+2A7lXyxDxTHzeIY0prXlcq+tc5b20O7cbL1XYtl1ZpfN960PrNYrsXP3XNOnjzJX/7lX/LBD35w2ZiynXjPOxnFQR6gWq3y27/923z+85/PVyuw1EmKjdV9x1nWtxtQihOVS6dY+avtSYEdtFo7f+s/95xiGsVGWxzIW/PnBl2tNWmathUc3H3FNNvltXXQdvloV87F/LQKTcWO5gbY4uDi8tsqLBUHNWcJXnzndvlbKV8uvdZBrihoFMu2mEcn2Bhj8gmrWE/tJrl2QkGx7MMwfOCoWbvya7cnWbzP1XfrIAUP7pu2DrStk1zx/tZJzZWJG5iLA3SxD7TmoZhf9/zWPeVWlalrm8X6LqZfbCvFybG1H7UKw65+nSBQrJ/WsihOXK24z4pjiXt+q01Au4nBPas4ubSWyWr92uXNtcnWMmpNx713UchpbQvF/lm8bieQt44p7mdR4Cv2pWK/L/aX1rGn9V1cftuVvWsrRaG0OJa3Lgrc89r1k+Lfi99pFQyK/aDdmN2aZvE5Lo/Xr1/nL/7iL7h69WrbtrUdeM0AyyeJ//qv/+Lzn/884+PjGGOoVqu8+uqrTExMAGsbYzlWGlhXu3+le1aSUreb1s611r1beaftSH870nCdrnXlv5nnrPS8tfKx0/W6nc98u/PaTjhY6b715mur926kn2xHHjabZlFgaBV0tiuvK2m1Wr9f/HvxeqP5Wa3s1ztObuaZm2l3rRN8KysdM3bfLb5PpVJhZGSEf/zHf+TJJ5/cEc3AvrIZWAnXUWq1Gn/wB3/Av//7v9NoNIAHJf+NDiLuHP968rCRdHeCjaS73s72MCY6x0aEmtZz4Nv5vN1Qt63stTXAWvld70S0nrTWk+5Wy287hJrV0lxpq2gzaa9nslst362fb6XstmOhstHnbzYtJ4ittJJfbYXvtCvOFqe3t5ff//3f5/z58zvWd70wwPL99FKpRLPZREqZG9UV1YMbTXdwcDA39tosRVXzZhuCU6EmSbKjq1QhRO68ZSvqrDAMc7XkTk5czshodnZ202m4sm02m5vOq1PfbiWN9eJUqCvZdayGy5vbEtts31gvPT091Go1Go3GprQ2xph8q6her+efbYZiP9wJXN9zDslanZJtNC3nXGcn6erqotFosLCwsOI9K2ncipqLMAy3lNftGnda87ZZnN3TSnlRShEEAfV6ve1zOjo6OHr0KF1dXTz33HP09fVx9OjRHV0w7EubgZX2baIo4pOf/CQjIyNorZmens4ltM08Q2vNnTt3tjxgtu5tbZTivt1aaWzHiscJHFtZZbs0NvvO62VqaiofyDbb0ZydxVbKbjvSeDso2iXs1KRYZG5ubkuTItj+UzQA3grt9oy3C1f3awns66G4R7+TfWh2dnZNzWfr9kDr527M2ArFxdJO1c9GKdqvtFLsP+3yu7i4yI0bN5BScvz4cY4fP77pbcz1sm81A25wcJNks9lkcXGRV199lZGRESYnJ5mfn3/Aycp6cRW2FY2AY6uS7k42oHZsxySxU0YyrWzHynY76ge2p9zWw1ae4/L6dtbPVldDbmLcKludsN7O5xhjdlxrs14tyXq2eLaj7W9n/Wx1vFwrL60CUPH0gaNUKvE7v/M7dHd3P2CwvhMCz74UBtzk+IMf/IAvfelLLC4uMjc3x9zcHN/85jdz4aB4v8fjeTj4/ud5VHGT+sjICOVymaeffpojR45QLpd59tlnee973/vA6Yud0nzsS2EAbICLz33uc/zbv/0bi4uLy1Toa5079ng8Ho9nq7htnI9//ON86lOfYnh4OPd9UTz++7bk5W15yi6gaCPgVFKf+cxn+PKXv8xP/MRPAEuqneK50OK1Z2/iOtxOHMfxeDyejeIm+SAIcrfPFy9e5MqVK7md2nYcYd1Qnsw+WPYWDVW++93v8id/8idcuXKFNE1J05TZ2Vlu3rzpNQAej8fj2XFanRiFYciBAwf4q7/6K5599tlljpjc/Tuep/0iDDg7gI9//ON85StfIUmSt80IyuPxeDwehztKDORxM/78z/+cn/u5n8tPIbzdWsx9YzPgzqtXKhWvAfB4PB7PQ0MpxeOPP86JEyd45zvfydNPP8373ve+HQ1EtBaPpM1Aqx8Bp46Joohf+7Vf49ChQ14g8Hg8Hs9DIUkSXn31Vb773e/yzDPP5AGIHqa/kUdWM+ACXDSbTer1Oo1Gg0ajwfe+9z16enqIomjHvXN5PB6PZ3/SquZvDXbX09PDn/7pn/IjP/IjDziHehiGzo+sMADwve99j8985jO89dZbuY3A+Pg4SZLkUeTeLkcvHo/H49kfOCdC1WqVzs7O3D30Rz7yET72sY+hlKJcLnPu3LncduBhn3R6JA0IjTFMT0/zi7/4i/zHf/wHSZLQbDYJwzD3Xf0IvrbH4/F4dgnulECpVKKnp4ff+73f45d+6ZcIw3BZGOnWo4QPLb97URhYK8tpmjIzM8NXv/pVZmdn+f73v8+Xv/xl6vV6Hpmu6PrRnyrweDwez3ZRDMLkOHv2LF/72tcYHBwkiqJ8HnOCwMMWBvbsNkEx/rzDGMPzzz/PN7/5TRYWFgiCIL/PbQlsNZynZ+dp3TsrdpqizwgXHrQYrrU1ZGsr7u+uPbS2oe3KfzFfrX8rPrf1uuhytPiu24V7phBiXSGbvaDs8Wyc1jEgiqLcwVAYhg8Ej3rYggDsYWGgiCv0qakpPvvZz/L1r3+dRqMBPDhpwNsbN96zcdYb/3ul6JPrqVvnbXInbEZcPtu9R6sXzNbrlSK7bSfFd/b9wOPZGeI4zuecwcFBPv3pTzM4OJj/fTcIAEX2/DZBMeznwsIC3/jGN7h9+zZ///d/z7e//e38ntaIUHvwtfc1RY9dG53415PWdrNW2q2uRt9O16Nvt5tTj2e/oZTiYx/7GMePH+fs2bM89dRTnDt3DqUUxpiH4lRoLfa0MOAm+BdeeIEvfOELvPbaa7lG4NatW9y4cSNXhRYH/z34yvua1SavzUzoOykMbCTt1ntav+s1WB7P3sRtBYyNjfHXf/3XuR+Bogvi1q2Ch82eFQZcvO5Go8Ev//Iv87Wvfc2rPz0ej8fztuPscIwxBEFAEAT09PTw3HPP8dGPfpQ4jpfdv9u0ArBHbAZa1cLuaKAzCGw0GjtibOXxeDwez1oUI92+//3v53Of+xyVSoUzZ84QhuGye3Yre0IYcBQn+kuXLvHVr36VmZmZB4zIPB6Px+N5u3CG6uVyGYB3vetducfBovH6bmZPCQNgC/bq1av8yq/8Ci+88EJuFe6PQHk8Ho/n7SaKIqIoQkrJ0NAQn/jEJ/K/OduA4rHh3cqeEwaMMczNzfHEE09w7NgxfvCDH/DGG28su2ctQ6z1XLtnrZTWdhp5rZV28Ry9y9d63qXd7xt5n7XKaSPv0Fq2reW72vu03ruZvK/3fTZSFxup963UhXtuq4+FtU4rrPcZu7Uu1nqX1rpYbz/far9YL+tJs+gvpV2drFUXm6mPlfK50vV636ldftb7jK2MuRu9bvce7fx9rFZuLgSxEILnnnuOp59+ms7OTjo6OhgeHl52WkCIh+9QaD3sCQPC1ixqranX6yRJwmc/+1m++MUvkiRJPnA6ttqRi04jVvvpntuuQ6x0vdIzN9OhV0t7Pc9dz/dW6vhrsVKeWwfE1cpqI4Nqa1prvVu79ylONCvV92ba1Ebep1UY2GhbWuvZ7a6LdbHS5LvWO6+nz220bW1kEt1InaxVzxvt5xvJf7t2u1bb2kq9r5TXrfbztd5tPULDZstprfLZyX4uxNJpgMOHD3Po0CG+9KUvcerUqTzuzV7YGiiyJzQDrRUspcw9OjnprOhNzTUed3/x53px97c6kFnpZ7tnrHW90jPb5blV0Fnpuxv923rys1L+NpPGWmm3u16pXFp/ttb5evPV7v6V6rlYD1st1/X+bPes7arT1dJeqXzXk/562/p6vrda+axWZuthvf17vf18I/lvzYN7n53oy6vldSv9fK13W+/fV7t3pbF4tfysln6R1jFjvf3cCQtaa2ZnZ/nEJz7B4cOH8/lpL7InhAFXGa1SnlKKD3/4w8zPz+e2A+0kwPVKqcVnFNNa62e7525GSt3oimy1/KyUj/Wynnde73dXY63V6EormdV+unSL+Sl+VrzebF20rhjWqv+VnrsdbWujFL+/Ec3ASs/cSF2sdf9W6mKl/BfzsNk2tZ662Ez+V1vxbqUPrlZPG3n3zdbbetrSVvq5u7e1bteq65XeZ72aAfeZuy8MQ5599ll+5md+Zplmci8KBHtqm2Clwdz9e1RpbZCeh4evC4/HUxwHVpr4tyKwPwz2hDDg8Xg8Ho9n59h7ugyPx+PxeDzbyp6wGfB4PDtPUUm4sLCQ752WSqW2qtB6vf6Am9VW9pqq1OPZr3hhwOPx5BhjmJmZ4dOf/jRjY2NorRkbG+PjH/84YMMfl0olarUaf/iHf8jv/u7v0tXVBcDi4iJxHBNFUZ6e89nu8Xh2N14Y8Hg8Oc4wqlqt8pu/+ZsYY/jjP/5jvvnNb/LDH/6QiYkJjh8/znve8x7+8z//k7/7u7/jIx/5CP/8z//M4uIinZ2d/Pqv/zodHR3e0NLj2UN4mwGPx5NTPIIlpaSjo4OjR49y69Ytjh49Sn9/P//yL/9CT08Pjz/+OJ/61Ke4evUqr732Gv39/Xz/+9/n6tWrJEniXYR7PHsIrxnweDzLcKHAhRA0m03Gx8cZHBzktdde46d+6qf4zne+kx/nVUqRpimHDh3ix3/8x3n22Wc5ePBg7gzM4/HsDbxmwOPx5DinKffu3eNLX/oSzz33HIODg3zoQx9ibm6Ob33rWyRJQhAEDA4O8jd/8zeMjY0hhOArX/kK3/jGN2g2m36LwOPZY3g/Ax6PB7BbBGmaorVmamqKNE0JgoCuri6UUty/fz83COzq6mJhYYGFhQV6e3tpNpvMzc0RRRFdXV257UExYIvH49m9eGHA4/EAVhhIkmSZW1WtNUqp/HMX3U0ptczzp7s3COzOo9YaY4zfLvB49gh+m8Dj8eQopYClqGxuIldK5QaB7h5YOjpY9MfuBITifR6PZ3fjNQMejydnu4aD1QIVeTye3YcXBjwej8fj2ef4bQKPx+PxePY5XhjweDwej2ef44UBj8fj8Xj2OV4Y8Hg8Ho9nn+OFAY/H4/F49jleGPB4PB6PZ5/jhQGPx+PxePY5XhjweDwej2ef44UBj8fj8Xj2OV4Y8Hg8Ho9nn+OFAY/H4/F49jleGPB4PB6PZ5/jhQGPx+PxePY5XhjweDwej2ef8/8DlI9cI0ZYHv8AAAAASUVORK5CYII=", "text/plain": [ "
" ] @@ -450,102 +499,112 @@ "--------------------------------------------------------------------------------\n", "\u001b[33mCritics\u001b[0m (to Commander):\n", "\n", - "The provided figure shows a time series plot of high and low temperatures in Seattle. Here are a few suggestions for improving the plot:\n", + "The plot depicting high and low temperatures in Seattle can be improved in several ways:\n", "\n", - "1. **Resolution and Clarity**: The image appears to have low resolution, which makes the text and lines a bit blurry. Increasing the resolution would enhance clarity.\n", + "1. Date Axis: The dates on the x-axis are not visible or readable, which makes it hard to associate the temperature data with specific time periods. Consider formatting the date axis so that the dates are displayed at a readable angle or with sufficient spacing.\n", "\n", - "2. **Color Contrast**: The colors chosen for high and low temperatures (red and blue) are good for contrast, but ensuring that they are distinguishable by all audiences, including those with color vision deficiencies, can be useful. Consider using colorblind-friendly palettes.\n", + "2. X-axis Labeling: There appears to be an issue with the x-axis labels or ticks as it shows a dense black area, indicating overlapping or condensed labels. The frequency and format of the labels should be adjusted to prevent overlap and allow for clear reading.\n", "\n", - "3. **Line Thickness**: The lines look slightly thick, which can cause them to blur together when they cross or when viewed at smaller sizes. Thinner lines might provide better clarity.\n", + "3. Y-axis Range: Consider starting the y-axis at a lower value if the temperature data permits, to give more space to the temperature lines and improve readability.\n", "\n", - "4. **Smoothing**: The data appears to be quite noisy. If the aim is to show trends, consider applying a smoothing filter or showing a moving average to make the general trends more apparent.\n", + "4. Gridlines: Adding horizontal gridlines can aid in reading specific temperatures at a glance.\n", "\n", - "5. **Legend**: The legend is clear, but it is positioned in such a way that it could potentially cover up data points. Consider placing the legend outside the main plot area or making it semi-transparent so that no data is obscured.\n", + "5. Legend: The legend clearly indicates which color corresponds to high and low temperatures, which is good. Ensure the legend does not obscure any important data.\n", "\n", - "6. **Axes Labels**: The font size for the axes labels and the title could be increased to improve legibility, especially if the image is scaled down.\n", + "6. Resolution: The actual resolution of the image may be fine, but the x-axis issue might give the illusion of a low-resolution image. Once the x-axis is corrected, the overall clarity of the chart may naturally improve.\n", "\n", - "7. **Grid Lines**: The grid lines are helpful, but if they are too prominent, they can distract from the data. Lightening the grid\n", + "7. Color Contrast: The blue and orange color choices are generally good for contrast, but ensure they are differentiable to all users, including those who may be colorblind. Consider using colorblind-friendly palettes.\n", + "\n", + "8. Title: The title \"High\n", "\n", "--------------------------------------------------------------------------------\n", "\u001b[33mCommander\u001b[0m (to Coder):\n", "\n", "Here is the feedback to your figure. Please improve! Save the result to `result.jpg`\n", - "The provided figure shows a time series plot of high and low temperatures in Seattle. Here are a few suggestions for improving the plot:\n", + "The plot depicting high and low temperatures in Seattle can be improved in several ways:\n", + "\n", + "1. Date Axis: The dates on the x-axis are not visible or readable, which makes it hard to associate the temperature data with specific time periods. Consider formatting the date axis so that the dates are displayed at a readable angle or with sufficient spacing.\n", "\n", - "1. **Resolution and Clarity**: The image appears to have low resolution, which makes the text and lines a bit blurry. Increasing the resolution would enhance clarity.\n", + "2. X-axis Labeling: There appears to be an issue with the x-axis labels or ticks as it shows a dense black area, indicating overlapping or condensed labels. The frequency and format of the labels should be adjusted to prevent overlap and allow for clear reading.\n", "\n", - "2. **Color Contrast**: The colors chosen for high and low temperatures (red and blue) are good for contrast, but ensuring that they are distinguishable by all audiences, including those with color vision deficiencies, can be useful. Consider using colorblind-friendly palettes.\n", + "3. Y-axis Range: Consider starting the y-axis at a lower value if the temperature data permits, to give more space to the temperature lines and improve readability.\n", "\n", - "3. **Line Thickness**: The lines look slightly thick, which can cause them to blur together when they cross or when viewed at smaller sizes. Thinner lines might provide better clarity.\n", + "4. Gridlines: Adding horizontal gridlines can aid in reading specific temperatures at a glance.\n", "\n", - "4. **Smoothing**: The data appears to be quite noisy. If the aim is to show trends, consider applying a smoothing filter or showing a moving average to make the general trends more apparent.\n", + "5. Legend: The legend clearly indicates which color corresponds to high and low temperatures, which is good. Ensure the legend does not obscure any important data.\n", "\n", - "5. **Legend**: The legend is clear, but it is positioned in such a way that it could potentially cover up data points. Consider placing the legend outside the main plot area or making it semi-transparent so that no data is obscured.\n", + "6. Resolution: The actual resolution of the image may be fine, but the x-axis issue might give the illusion of a low-resolution image. Once the x-axis is corrected, the overall clarity of the chart may naturally improve.\n", "\n", - "6. **Axes Labels**: The font size for the axes labels and the title could be increased to improve legibility, especially if the image is scaled down.\n", + "7. Color Contrast: The blue and orange color choices are generally good for contrast, but ensure they are differentiable to all users, including those who may be colorblind. Consider using colorblind-friendly palettes.\n", "\n", - "7. **Grid Lines**: The grid lines are helpful, but if they are too prominent, they can distract from the data. Lightening the grid\n", + "8. Title: The title \"High\n", "\n", "--------------------------------------------------------------------------------\n", "\u001b[33mCoder\u001b[0m (to Commander):\n", "\n", - "To address the feedback and improve the figure, I'll make several adjustments to the script. The improvements will include:\n", + "To address the feedback received on the figure, we'll make the following improvements to the plot:\n", "\n", - "1. Increase the resolution by specifying a higher DPI (dots per inch) when saving the figure.\n", - "2. Use a colorblind-friendly palette for the high and low temperature lines.\n", - "3. Decrease the line thickness for better clarity.\n", - "4. Apply a rolling window to smooth the high and low temperature data.\n", - "5. Move the legend to an optimal location to avoid covering data points and make it semi-transparent.\n", - "6. Increase the font size for axes labels and title to improve legibility.\n", - "7. Adjust grid line style to be less prominent.\n", + "1. Format the date axis for better readability.\n", + "2. Adjust the frequency and format of the x-axis labels to prevent overlap.\n", + "3. Extend the y-axis range if possible.\n", + "4. Add horizontal gridlines for ease of reading temperatures.\n", + "5. Ensure the legend is placed properly to avoid obscuring data.\n", + "6. Check for clarity once x-axis labels are resolved.\n", + "7. Use a colorblind-friendly palette for the plot.\n", + "8. Ensure the title is descriptive and relevant.\n", "\n", - "Please execute the updated Python script:\n", + "Here's an updated Python script to make these improvements:\n", "\n", "```python\n", - "# filename: plot_temperatures_improved.py\n", + "# filename: improved_plot_temperatures.py\n", "import pandas as pd\n", "import matplotlib.pyplot as plt\n", - "import seaborn as sns # For colorblind-friendly palette\n", - "\n", - "# Ensure you have seaborn installed: pip install seaborn\n", + "import matplotlib.dates as mdates\n", "\n", - "# URL of the CSV file\n", + "# URL to download the CSV data\n", "url = \"https://raw.githubusercontent.com/vega/vega/main/docs/data/seattle-weather.csv\"\n", "\n", - "# Read the data from the URL\n", + "# Download the data\n", "data = pd.read_csv(url)\n", + "data['date'] = pd.to_datetime(data['date'])\n", "\n", - "# Extract the Date, Temperature High, and Temperature Low columns\n", - "dates = pd.to_datetime(data['date'])\n", - "temp_high = data['temp_max'].rolling(window=7).mean() # 7-day rolling average\n", - "temp_low = data['temp_min'].rolling(window=7).mean() # 7-day rolling average\n", + "# Now, let us plot the high and low temperatures\n", + "plt.figure(figsize=(10, 5))\n", + "plt.plot(data['date'], data['temp_max'], label='High Temp', color='tab:blue')\n", + "plt.plot(data['date'], data['temp_min'], label='Low Temp', color='tab:orange')\n", + "\n", + "# Set the x-axis major locator and formatter for better date display\n", + "plt.gca().xaxis.set_major_locator(mdates.AutoDateLocator())\n", + "plt.gca().xaxis.set_major_formatter(mdates.DateFormatter('%Y-%m'))\n", + "\n", + "# Rotate the dates on x-axis for better readability\n", + "plt.gcf().autofmt_xdate()\n", "\n", - "# Plot the high and low temperatures using seaborn's colorblind-friendly palette\n", - "plt.figure(figsize=(10, 5), dpi=150)\n", - "plt.plot(dates, temp_high, label='High Temperature', color=sns.color_palette('colorblind')[2], linewidth=1)\n", - "plt.plot(dates, temp_low, label='Low Temperature', color=sns.color_palette('colorblind')[0], linewidth=1)\n", - "plt.xlabel('Date', fontsize=12)\n", - "plt.ylabel('Temperature (°C)', fontsize=12)\n", - "plt.title('High and Low Temperatures in Seattle (7-day Rolling Average)', fontsize=14)\n", + "# Improving Y-axis Range\n", + "temp_min = data['temp_min'].min() - 5 # Give some padding below the min temp\n", + "temp_max = data['temp_max'].max() + 5 # Give some padding above the max temp\n", + "plt.ylim(temp_min, temp_max)\n", "\n", - "# Adjusting the legend\n", - "leg = plt.legend(loc='upper left', frameon=True)\n", - "leg.get_frame().set_alpha(0.5)\n", + "# Adding gridlines and formatting the grid\n", + "plt.grid(True, which='both', linestyle='--', linewidth=0.5)\n", + "\n", + "# Providing labels and title\n", + "plt.xlabel('Date')\n", + "plt.ylabel('Temperature (°C)')\n", + "plt.title('High and Low Temperatures in Seattle Over Time')\n", "\n", - "# Adjusting the grid\n", - "plt.grid(True, linestyle='--', linewidth=0.5, color='grey', alpha=0.7)\n", + "# Adjusting legend position\n", + "plt.legend(loc='upper right')\n", "\n", - "# Increase tick label size\n", - "plt.tick_params(labelsize=10)\n", + "# Check done, no need to adjust color contrast as colorblind-friendly colors are used\n", "\n", - "# Save the figure with high resolution\n", - "plt.savefig('result.jpg', format='jpg', dpi=150)\n", + "# Save the figure in high resolution\n", + "plt.savefig('result.jpg', dpi=300)\n", "\n", - "# Show the plot\n", - "plt.show()\n", + "print(\"The improved plot has been saved as 'result.jpg'.\")\n", "```\n", "\n", - "This script should create a higher-quality figure with the suggested improvements. Once the script has run, please check the `result.jpg` file for the enhanced plot.\n", + "Please execute this script. Make sure that the `matplotlib.dates` module is available in your environment before running the script. If you encounter any issues, let me know.\n", "\n", "--------------------------------------------------------------------------------\n", "\u001b[31m\n", @@ -554,17 +613,17 @@ "\n", "exitcode: 0 (execution succeeded)\n", "Code output: \n", - "Figure(1500x750)\n", + "The improved plot has been saved as 'result.jpg'.\n", "\n", "\n", "--------------------------------------------------------------------------------\n", "\u001b[33mCoder\u001b[0m (to Commander):\n", "\n", - "The script executed successfully and created an improved figure with high resolution, colorblind-friendly colors, thinner lines, smoothed data, a better-positioned and semi-transparent legend, enhanced legibility for labels and title, and less prominent grid lines.\n", + "The improved plot has been saved successfully as 'result.jpg'. The improvements should address the feedback points provided earlier, resulting in a clearer and more readable figure.\n", "\n", - "The updated figure is saved as `result.jpg` in the current directory. You can view the figure by opening the `result.jpg` file on your computer.\n", + "The dates on the x-axis are now formatted for better visibility, the frequency of x-axis labels has been adjusted, the y-axis range has been extended, gridlines have been added, and the legend has been positioned properly. The colors used should be distinguishable by individuals with color vision deficiencies.\n", "\n", - "If there are any more changes you would like to make or if you need further assistance, feel free to let me know.\n", + "If no further improvements are needed, the task is now complete.\n", "\n", "TERMINATE\n", "\n", @@ -573,7 +632,7 @@ }, { "data": { - "image/png": "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s3DhQtatW8df//pXtmzZwoIFCzjnnHN46KGHOPXUU9NnJRKdW2+9lWnTpvHcc89x1FFHMWXKFO6++256e3s5+uijOfjgg1FK8dhjj7F06VKKxSKLFy9O+x3ANE3mzp2LlJKVK1fy8ssvp58XL16c/pbg4YcfZtOmTfzsZz8jk8lQqVRwHAetNX19fdx777309PRw9NFHs2DBAqIo4vHHH+f555+nWCxywgkn0NHRwc0338z1119PZ2cnBx98MNdffz0vv/wyrutyyimnDOr7arXK/fffz9q1azniiCM4/PDDsW170Jj5wx/+wEknnUQ+n2fevHl861vfQgjBQw89xKpVq5g/f346tpJ33/e57777eO2115g6dWpaVm9vL/fffz8bN25k/vz5HHPMMVSrVe6++27OPPNMLMtiYGCAu+++m7POOgvHcdJ7fd/nYx/7GCeffDI33XQTP/3pT1Npw+OPP87SpUuZPXs2b3jDG1IGtHGMCyHI5XLMnDkzrb9t2ylzcOqpp9Le3k4QBDz++OO88MILLFq0iJUrV3L66aeTy+UG0W7Dhg0sW7aMww8/nLvvvpt3vOMd3HnnnRx00EFMnz4drTW33347Bx10EFOnTuXZZ5/l8ccfZ9KkSZxyyink83nuvfdeWlpaWLFiBXPnzmXq1Kk88MADlEolFi1axGGHHYZhGFQqFe644w6q1SoLFixg48aNnHLKKSilePLJJ3n22WeZOXMmixcvJpPJcMopp3D11VfT09MzSDrQxPhA02bgbwTJAr5mzRqeeeYZnnnmGZYvX56esJ9++mmuueYaoiji29/+Nn/5y18QQnDFFVfwk5/8JD0V/eEPf6BcLvPII4/wf//v/x10QgZYtWoVK1eupFAo8Lvf/Y6f//znCCG44447+PznP8+mTZtYunQpl112WSoavOyyyzBNk+uuu47Vq1dvswgMJyrv7+/nk5/8JC+88ALlcpmLL76Yl19+mdWrV3PVVVcRBAHf+973+O53v4vv+1x99dWsXr0awzCQUmKaJqZppnSRUhIEAV/96ld55JFHyGQyfOc73+HOO++kVCrx5S9/mT/96U8IIfjsZz/L5ZdfTqVS4ZZbbuFnP/sZANdeey1f+MIXqFarPPLII3zxi1/E933uvvtuvva1r2EYBs8//zyXXXYZruty7bXX8vnPf55yuYxt2yxbtoy+vj6y2Wz6bMdxyGQydHV1MW3aNKIo4sc//jGVSiXdUG644QYAfvzjH/ONb3wjVQF9/vOfZ+nSpZimyeWXX85jjz3GI488wr//+7+TzWYplUqsWbNmkFTB932+//3v47ouy5Yt45/+6Z9YsmQJAwMDfOYzn6G/v3/Q5tLS0sKrr77KX/7yF1588UUsy8K2bSqVCl/84hdZsmRJ+vxHH32UcrnMU089RT6fZ8WKFXz+858nCALa2trIZDJMmzaN9vZ2isUixWKRadOmkc/nB6kxLr/8cu6//35yuRzf+973uPXWWweNF9/3eeyxxzjyyCORUiKlTE+f11xzDWeeeWYqYVJKoZRCa82VV17Jf//3f2OaJldffTXVahWtNa+88grr16+nUCjws5/9jD/96U/Yts0vf/lLli1bhhCC22+/ndtuuy09uQ8dv1prKpUKhUIBwzD44x//yDe/+U0ymQy/+tWv+M///M9UgpcgofPKlSv5xS9+gVKK66+/ni9/+csMDAzw6KOPcsUVV6CU4tZbb+XrX/86lmVx9dVX8+Uvf5lyuTyoLK01d955J0cccQQf+MAHuP7664miiGeeeYbf/e53APT09PDtb38bKSU33ngj3/3ud3Ech8cff5yvfvWrBEHAb3/7Wy677DI8z8OyLJYsWUK1WsWyLP7t3/6Nhx56CKUUX/va17j11ltRSvFv//ZvXHXVVURRxG9+8xuuvPJKcrkct912G9/5zndQStHe3k5HRwdLly7d/kLWxJihyQz8DaDx5P7oo4/ym9/8ht/85jfceOONhGE46LpSqcSdd97J5z73Od797nfz/ve/f1BZb3/727ngggv41Kc+xbPPPovneYN+nzt3LtOmTWPt2rXk83luu+02giBAa82pp57K+9//fi6++GJWrlxJqVTij3/8I+9973t573vfy6c+9Sna29t3qk3PPvssQRDw2c9+lg996EMcd9xx3HjjjSxcuJAVK1awcuVKHMehUCiwcuVKli5dypFHHjmsqDvByy+/zF133UV7ezu9vb20trZyww03oLWmtbWViy66iPe+970sWLCA+fPnc8EFF/CRj3yERx55JF3wzz33XD7wgQ/whS98geeff57Vq1fzy1/+kvb2dvr7+8lmszz66KNs2rQJIQTnnHMO73vf+zj66KM55JBDyOfzrF+/Htu2ueWWW+ju7mb69Om88Y1v3OakN9wp8kMf+hDnn38+lUqFJ598kkKhQKlUIp/Pc8MNN+C6LoZhMG3aNM4++2yOOOKIbcTsjeUdeuihXHjhhXzsYx8jk8lsw6wtWrSIL33pS9x5551cfPHFXHDBBbzwwgs899xzPPPMM6nqIJ/Pc9NNN1EsFlm0aBEbNmwgiiKeffZZNmzYwKGHHsq0adN461vfysKFCznkkEOYP38+5557LjNmzEif98orr3DnnXfS0dFBT08PbW1tXHvttYP6sVar0dvby6RJkwa1a/PmzTzwwAOcc845qWTp6aefTpmdv/zlL1xyySWcf/75fPSjH03nzLx582hvb2fNmjXk83luvvlmHMfhnHPO4U9/+hO+73PNNddw/vnnD2IGEonct7/9bT7wgQ/wzW9+k0996lMpU/2Zz3yGCy64gC996UvceOONVCqVbZjrRiRtOeuss3j/+9/PRRddxNKlS3Fdlz/84Q98/OMf54ILLuDiiy+mWCxuM7593+cvf/kL5557LocddhjlcpmXX36Zc845h7vuuotKpcL999/P/vvvT2dnJ7/4xS+YPHlyqgJKpFYA5513Hu9973tT6Zlpmqxbtw4pJbfffjubNm3ioYce4gtf+AL/8A//wHnnnYcQAtd1+e///m+6u7vp7e2lo6ODW2+9lYGBAQzDoLOzk1WrVm2XBk2MHZpqgr8BNG4e73znO/nIRz4CwNNPP80ll1wy6JpEjZCcxjo6OtIFTghBZ2cnALZtE0XRNovXT3/6U1566SXe+ta30t3dzfPPP5+eeJLF2bKs9CTe39+fGgYWCgUymcwOdc3Jb9VqlZaWllRnO3nyZDZt2sTkyZOxbZsbb7yRQw89FNu2uemmm9INcEcolUrkcjnmzJmDYRjMmjWL6dOnA5DL5SgUCmityeVydHZ2orUmk8ngeV6qa25vb0cIkZ7oS6US/f39HHLIIcydO5cwDPnXf/1X2tvb0Vozbdo0DMMgiiK+8pWvMGnSJBYvXozv++miOJyhWKOOO6GLaZppvQYGBmhpaWHmzJlIKZkxYwZz585l//33JwgCbr75Zr797W/zoQ99iLe+9a3bNRZrb29P+9+yLIIgGEQz27Y588wzOfPMM6lUKlx22WVcddVVLF68mEKhwOzZsxFCMHv2bObOncsTTzzBV7/6VT74wQ8yf/58brrpJnzf36bPhzPqE0IwMDCAZVnMmTMHy7KYPXt2agiXIJEEhGE4qJy77rqLefPmMWfOHIQQrFixguuvv55cLsd73/tewjCkWCwC0NHRgWVZRFHEt771LXzfT9VBt912GwBnnHEGF154IQ8++CCVSoWjjjpqmzYYhsGFF17IkUceyQ9/+ENuueUWFixYQK1WS+dSsVhEKUUYhq8rGhdCMHny5JT2ENsBlEqlVP9fKBQGqSoSPP/88zz66KN8+9vfxrIsVq1axfXXX8+nP/1pWlpaeOKJJ7j++us5//zzASiXy8yaNYtZs2YB8K//+q9pXadOnYoQAs/z+NznPschhxzC0UcfzcDAwCB1ZGIIPHny5HScu67L3LlzmTRpElprjjnmmHTeh2GI4zhNFcE4RFMy8DeCoZv29hbbQqGQ6rNLpRK33347QRAMEmE2GkkNLWf58uUcf/zxHHvssfT19aWLQnJP471SShYuXMjNN99MX18fDz30EOvWrRu27kop+vr66O/vp7+/n5kzZ7J69WpefPFFtmzZwj333MOiRYtwHIfDDjuMK6+8kmOOOYZjjjmGn//85xx88MHDLpCw9cQ1Z84cbNums7OTk08+maOPPjpdeBMaNda/8RSYGJXdcccd9PT08PTTT+O6LjNmzODv/u7v2LJlC8cddxwnnXQS8+bNI5PJpDRITpCrV6/mtNNOY+HChaxfvz5tt+M49Pb24nketm1j2zYvvPACmzdv5t57702va6zngQceSBAETJ8+nVNPPZUjjzySzs5Oent7Oeyww/jnf/5nzjzzzHRjG2pAtz2Dx6FGaatXr2bp0qWUy2XCMEyZuoMPPpgoipg6dSqnnnoqRxxxBB0dHaxdu5bp06fzpje9iUKhwKZNm9BaY9s2vu9TqVQIgoBMJsPAwADVajUde1pr5s6dSz6fp62tjZNOOim1jWhELpdj+vTprFq1KlUBeJ7Hn/70J971rndh2zZCCN74xjfyta99jcsuuyxl/O69917K5TK33347ruuilOKll17ilFNO4ZhjjmHDhg0prbu7uznkkEP40pe+xOmnn5726dCxlTBln/rUp7jzzjtZvXo1Bx54ILfccgv9/f3cc889TJ48eZA6ZKhaLJkHQw0VDcPANE0OO+wwbr75ZkqlEg8++CCbN28eNDejKOLaa6/lwx/+MN/+9rf5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e9/7OPvssw/7dJMkCT/96U/55S9/SV9fH+95z3uI45g777wTgHe/+924rssdd9zB1NQUH/3oR7Ftm/vuu4+nn36aZcuW8c53vnOa73Xjxo384Ac/4PTTT+eaa67hhRde4Otf/zrnn38+11577RGdxJrNJnfddRe7du3i/PPP58orr+SZZ57hBz/4ASeffDJvfvOb8/E877zzuO6666jVatxxxx1MTExw5ZVXcumll+bPj6KIe+65h61bt/KWt7yFNWvW8JWvfIXx8XEmJib44Ac/yGmnnXZYJ/Qsxeruu+9m586dnH/++bz2ta/lqaee4vvf/z6nnnoq1157LVu3buWuu+7iggsu4Jprrsk31G9+85sUi0WuvfbafGMNgoB77rmHl19+mbe85S2ccsop3Hffffzyl7/kd3/3d1m+fPlhyRXSTXnLli185zvfQWvN29/+dlasWME///M/88ILL+TP+/73v89DDz3Eb//2b7Ny5crcEnfrrbfy/ve/n5UrV+b33L17N3fddReO4/C+972PHTt2cO+99+Yvk4997GN51s+hthXS4Lqvf/3r7Nmzh8svv5zLLruMRx99lPvvv58NGzbwxje+kWeffZavf/3rvPrVr+Y1r3kNY2NjfPazn8X3fc4//3ze+MY35vcMw5BvfOMb7Ny5k7e+9a2sWbOGb3/722zcuJGPfexj+yXZmgviOOZ73/seTz31FCtWrOD666+nXq9z55134vs+73nPe0iShK985StIKfmd3/kdhBDcdttt1Ot1+vv7uemmm6YFwT700EM88MADXHjhhbz61a/mvvvuY/PmzTQaDS6++GLe9KY3HVF6ajZXpZS84x3vYHBwkHvuuYcdO3bw1re+lXXr1nHvvfeyceNGfvd3f5ehoSHa7Tb33nsv27Zt4w1veAPnnntuPl4vv/wy3/jGNxgcHORd73oXjUaDr3zlK1QqFf79v//3h93OxY6Fbf9bIDDGUK1Wefe7302SJHz961/nzjvvxLIsTj31VP7u7/4OYwwnn3wymzdvJggCjDGsXLmS97///Tz66KP88pe/zLXZdrvNLbfcwtVXX81jjz3G448/juM4rF27lsceeyx/5uG21RjDmWeeybvf/W6+9rWv8cILL3DLLbfwxje+kU2bNvHoo4+ilGL16tU8+eST+ecuv/xy3vzmN/PpT3+aRqOR3/PJJ5/kgQce4E1vehOf//znieOYt73tbXzgAx/glVdewfO8I5ItQH9/P+9+97up1+vce++9/OM//iPVapXly5fzD//wDwCcfPLJPP3004RhiDGG8847jxtvvJGtW7fyi1/8Ir9ns9nks5/9LNdccw0PPvggzzzzDI7jsHz58ry/RwJjDGeddRY33HADX/7yl9m2bVs+no888ghPPPEEtm2zYsUKnnrqKSCtXX/NNddwww038IUvfIFms5lvpr/61a/YuHEj11xzDbfffjsA119/Pe9///vZvn37EQXwZfPhnHPO4Z3vfCdf/vKXeemll/jMZz7Dddddxy9+8Qu2bNmC67p5e7N2ZS/l7t8BPPzwwzz11FNcffXV3HbbbURRxNKlS5mcnDwq0ddKKa677jrOPfdcbr75Zh555BEefvhhrr76am699Vba7TZLlixhamqKsbGx/HPf/va3efDBB/dpwxe/+EXWr1+P7/t861vfYu3atXzwgx/kkksuYefOnTkN8uEgi18577zzuP7667ntttvYunUrn/vc5/iN3/gNfvzjH/Piiy/ieR5Llixh8+bNCCGo1WrUajXe8573cPHFF0+7309/+lNefPFFXvOa13DrrbeitWblypXs3r2bqampw25rdv8VK1bwvve9L2dYvf3221m/fj2e5/Gtb30LIQSnnXYaGzduzC0Cjz/+ONdffz1vf/vbcRwnTz0eHR3ly1/+Mm9961u599572bFjB695zWu46aabSJIkv/ZIYFkWb3nLW1i/fj233norDz74IM8++yyvec1ruP322wmCgBUrVrBr166cUv3uu+9mamqKd77znbliKERaY+P222/n/PPPJwgCvve976GU4tRTT+Wxxx47IWMFMvSUgTlACMGZZ56ZR5V6nsdTTz3FVVddxaWXXsrzzz+P4zhccsklFItFpJTYts25557L8PAwwDRK16mpKbTWnHnmmZx//vk89dRTrF69mrPPPjv3bx3uAsrad8455zA8PIxlWdTrdaIo4uyzz+bSSy/l8ccfZ9WqVWzYsCHf5AcGBjjzzDOpVCq51p/5jp966inOP/98Tj/9dFzXZXx8nMHBQYIgoFKpsG7dusP2y2WfOfvss1mxYgVSShzHYdOmTbz61a/miiuuYPPmzXiexyWXXJKTtAgh6O/v59577+W5555j9erVwN6UIsuyOPPMM3nVq17Fli1bWLt2bW69ONLNqVgscv7559Pf35/zy1uWxVlnncVFF13Epk2bWLNmDWeffXZu4cn40u+44w6Gh4encfZv3LiRSy65hDPPPBOtNZOTkwwODlKr1ViyZAnLly8/7E0qi6k455xz8sDQjA//zDPP5LzzzuPpp59mzZo1nHHGGblsWq0Wd999N29729vy3yVJQpIkbNy4kUsvvZSzzjoLrTW1Wo0LL7wwv/+RYu3ataxfvx7btnEch6eeeoqLLroof16z2eSCCy6Yljb2wgsvsHv3bs4//3xgrxIUxzFbtmzh0ksv5YorrmDTpk04jsPQ0BC/+tWvuO66645orUkp6evr45xzzsnTBLMU0jPOOINzzjmHLVu2sG7dupzuHNI6Dbt37+bWW2/l5z//+TTK9Mcee4zLL7+cc845h1arRavV4sILL6S/v/8IJZua+Tds2MDSpUsxJiVce+mll7jsssu46qqrePzxxymXy1x00UW5JVNKieu6fOlLX+Kf/umfCIIgd3nt2LGD4eFhTjnlFE4++WSef/55yuUyxWKRnTt3cuGFFx5xm0899dR8Pniex2OPPcZll13Gq171qnxvu+iiixgcHMzXyY9//GM2b97MrbfeyrPPPpvvZXEcs337di688EIuu+wynnjiCarVKhdccMGCj4051ui5CQ4BDz30EFu2bOHjH/84v/zlL/NAu5n+suzfWmvuuusu+vr6OO+88/jud7/L1q1bueSSS/LrukldjpavSoi0kMfnPvc5Lr/8cpYtW5ab6bICIt1uiMxiMTk5yac//WluvPFGtNZ84QtfoFqt0m6383TDrF/GGH74wx/ymte85oh4Cbr9vT/96U/Zvn07N910E/fffz9KqWkFT7JnZ+21bZs3vvGN1Ot1tm7dyqZNm3jllVfyDSgrqNJdGe5oybjVanHbbbdx7bXXMjg4uI8sZ7p5jDEsX76ct771rfzDP/wDu3bt4jvf+Q7Dw8N54Z2szZlMfvjDH/K6173uiChrM6Uus0a9+c1vpq+vL/etd5emzaC15kc/+hFBEDA6OsrWrVvZvn079957L8uXL88LL2Xt7R6fo5GSKoRg27Zt3HHHHfz+7/8+P/zhD/O1Npt8s7l6wQUXcP/99/Pcc88RRREPPvggV1xxRe477pZtu93miSee4Kabbjrs9nZ/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b+fGG2/kkUce4etf/zq//du/zeDgICeddBKlUon/8B/+A1/72td46aWXeMtb3sKuXbu47bbbGB8f5wtf+AJhGB5RexcreqmFc0D3i3l/4srMsQdKu+k2zWbmyu5T1Mw0o8NhPZy5SXSnjM10R2it93lG9nnbtvN2ZmbgrK0zTcNHksfb3eZMPjPlONvpYraUqExm3W3u7ld3OtKRUMBmaUvd9+seuwOlr2W/y75nJuTuscnkrLU+Ik6CTKbdY5+1u3sMZ7qMshrzM/tiWdY+49U9vzIz8UyT+KHIOVsT2b9n3qN77s42R7qfn/VxtnS0rL1H4ieeuS66+5B9n1lyubsP3T9n8s7a233P7PfZv7PPH451YOZeNnPuzfxdhv25KbrlnlkNss/OTPk9HGT3nW0f63YNZHtZtwu024KSfb57bc3m0upeHydaDEFPGZgDujeZmZv/TMy2Kc3cOGe7/8xFCYdeQnjmpjNbm2b+Lmtj98sz2yiza7o33u4XdnafI/ETd7erWw4zN8zuZ83sS4Zun/LMv8+895G2uVsmM326B9r0D7Thdt+/+/ojNWPP9n1mIaqZz5hNyZnZn/3N29leGIfS5u52HaiN3dfMpijOppztr0+Hg+zFPVM2B9snDqQczoy/mE2RyMav+7NzxWyynU1+M/eF/Sm1+5PtbH07HMw2H2bKfH8v9tnm5YHW3Mw97kjmxmJETxmYA46liA40QY9koR8NzPZCPti1h4pDafOBZHUo13Rfezg4nkvmSDakA218B3qBz3wJzbZRzhXzPYcPhmMh38PFoczd7s8cCuZru19Icp4respADz308GuNzM2RVaJTSuG67j58EZkiYIzJgy6Pxom6hx56WHjoZRP00MMJBiEEQRDw4Q9/mIGBAVzXxRjDBz7wAS677LL8Gtjrs80q7GVpiTN97z0FoYceFjd6ykAPPZygaLfb/Pf//t8ZHh7mqaee4uMf/zi33norTzzxBD/72c8olUrceOONjI6O8k//9E85Pe6ll17KV7/6VV588UUuvvhi3vrWtx5RKmwPPfQw/zixwiV76KGHfSCl5Oyzz2bJkiVs2bKFFStW8N73vpfly5dz++23c9JJJ3HqqafykY98hMsuu4zPfOYzaK1573vfy7/8y7/wyCOPzJtft4ceejg66FkGeuihhzy9LQxD7r77brZv347WmrGxMWzbxvd9li5diud5/OQnP2HFihU8/fTTBEFAs9mc7+b30EMPR4ieMtBDDycwsvSx559/nu3btzMwMMATTzzBbbfdxhNPPMFf//Vf51HuWY72ihUr+NCHPsQVV1xBEAS9evE99PBrgF42QQ89nGAwxtBsNvnABz7AmjVrcF2XWq3Gu9/9bi677DL+9E//FEhJhiYmJrjlllv4m7/5G15++WXe/va3MzQ0xC233EKlUkFrzcc+9jFOOeWUnkLQQw+LGD1loIceTjBkqYWjo6M5a1ypVMo52VutFpOTk5RKJYIgoFqtEscxExMT+L5PqVSi3W5Tq9XwfZ9yuZyztvXQQw+LEz1loIceTjDMpOjN0E2TDfsyF3YTFM0kJjoRGdt66OHXCT1loIceTjDsj4Z2LnStB6LV7ikDPfSweNFTBnrooYceeujhBEfPyddDDz300EMPJzh6ykAPPfTQQw89nODoKQM99NBDDz30cIKjpwz00EMPPfTQwwmOnjLQQw899NBDDyc4espADz300EMPPZzg6CkDPfTQQw899HCCo6cM9NBDDz300MMJjp4y0EMPPfTQQw8nOHrKQA899NBDDz2c4OgpAz300EMPPfRwgqOnDPTQQw899NDDCY6eMtBDDz300EMPJzj+b3fTRHwPX2MrAAAAAElFTkSuQmCC", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAgMAAAEMCAYAAABZZbUfAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOy9eZweVZ3v/z6nqp6l905nJSQh7BCWsC8KKupFBJdx19Fh3MZRR/25XfXqHcf56ajz08E796KOjsi44rggeN1AEAEFCWEJhCSQkH3pdNLrs1XVWX5/nKrqpzvdWaC7k2fyfHg1ne6up+rUqVPnfM/3+/l+vsJaa2miiSaaaKKJJo5ayMPdgCaaaKKJJppo4vCiaQw00UQTTTTRxFGOpjHQRBNNNNFEE0c5msZAE0000UQTTRzlaBoDTTTRRBNNNHGUo2kMNNFEE0000cRRjqYx0EQTTTTRRBNHOZrGQBNNNNFEE00c5WgaA0000UQTTTRxlKNpDDTRRBNNNNHEUY6mMdBEE0000UQTRzmaxkATTTTRRBNNHOVoGgNNNNFEE000cZSjaQw00UQTTTTRxFGOpjHQRBNNNNFEE0c5msZAE0000UQTTRzlaBoDTTTRRBNNNHGUo2kMNNFEE0000cRRjqYx0EQTTTTRRBNHOZrGQBNNNNFEE00c5WgaA0000UQTTTRxlKNpDDTRRBNNNNHEUY6mMdBEE0000UQTRzmaxkATTTTRRBNNHOVoGgNNNNFEE000cZSjaQw00UQTTTTRxFEO/3A3oIkmAKy1B/y7EAIhxD6/T/8G7PP3Z9qW8eesb98zvUZ6jvpz1/9tovtrdNT35YHubbIx8Gz65FDHx/g2PNvncaBxPRXXaKKJqUDTGGjiiMHmzZvxfZ+FCxdirWX16tUsWrSIbdu2sXXrVq688sp9PmOM4bvf/S6veMUr6Orqyibf+gl2ogl+okm6/vc333wz5513HkuWLMn+vnr1ahYvXkxHR8eE5x1/3YlgjOHJJ59k27ZtY9q3ePFiTjnllDHt399CcjD3UN+e/Z0rDENKpRI9PT37bf/BLGzjrwtw77330tLSwvnnn7/fNhtjeOKJJ3jqqadob2/nvPPOo7u7+6Cua62lt7eXefPmIYSgr6+Pzs5OcrkcK1eupFKpcNlll+23ndZaBgcHWbFiBZVKheXLl2fPfyLjbbL7GH/cmjVr2LFjx5i/zZ49m1WrVvHmN78Zz/Mmva+Jztk0HpqYDjTDBE0cMbj11lu54447ADeJ/uu//itPP/00bW1tzJ49O/t9rVbDGIMxBmstv//97ymVStRqtTG77/R7+hmlVPY7Ywxaa6rV6phj4zgmDEPuv/9++vr6srZZa/lf/+t/sWHDhjHnN8ZQrVbRWmc/p9fUWmfXMsYAbiIfHh5m586dfOc73+E///M/2blzJyMjI9RqNeI4HtPGOI6JogiAKIqyf6d/V0oRhuGE95D+rLXGGJP1j1KKarWatenxxx/nuuuuy9qbfq//9/hzaK2z55AiiqLs7/ULWFdXFx0dHfvc0/hn9Ic//IEvfOELKKVYv349a9asGXPutG/q+z19pqVSiY9//OOUSiWMMfzzP/8zTz75JMYYnn76adasWZMtomEYjunH9Ku3t5e/+7u/Y/Xq1QwPD/Oxj32Mu+++O2t3fZ+kGH+udFyl/Q8wODjIzp07+da3vsUtt9zCrl27qNVqHHPMMQghss+kfVffz2kfKaXG/O5QDLMmmjgYND0DTRwxSCdapVQ2QQoh2L17N08++STLly/nm9/8JqtWrWLBggUopfjkJz9JFEX8+7//O729vSxbtox3v/vd2W5La803vvEN1q1bhzGGd73rXZx88sl85jOfoVgssmXLFi655BL+6q/+ilWrVvG1r32Njo4OnnrqqQPuBoeGhrjuuuvo6+ujo6ODD3/4w9xxxx0sXbqU+fPn8+lPf5ovfelLPPjggwBceeWVCCG48MILufDCC+nv76etrY3Xv/713HDDDfzHf/wHQRDwN3/zN3R0dPClL32J1tZWdu7cydVXX83KlSvp6+vjIx/5CD09PXz2s5+lWCyye/duXvOa1/DiF7+YFStW8IMf/ACtNZdccglveMMb+Jd/+RdqtRpRFPHGN76R7373u5RKJY455hje97738etf/5rf/OY31Go13v72t/Ozn/2Mj3/841SrVb7yla/w0Y9+lC9/+cvZc3nTm97EjTfeSKlUYv78+bzvfe9j5cqV/OhHPyKXy/HiF7+Ya665JuunjRs30t7ejud5fO1rXyOfz7Nr1y7e+973cs4552THrVq1ijPPPJNrrrmGfD4PuEXwpptu4s9//jNCCP7qr/6KM888k+uvv57NmzfjeR7ve9/72LBhA/fffz8f+9jHuPzyy7n77rvZuXMnV1xxBa2trdm5fvCDH7BixQqEEFx77bWcd9552bO96aabOPPMM/nABz6AEIITTzyRr3zlK7S1tfHAAw/wrne9i3K5zJe+9CU+/OEPc/vtt3PXXXdhreU1r3kNF1xwAf/wD/9AsViku7ub973vfXiex6WXXsqll17Ktm3bWLp0KW94wxvo7+/n61//Os9//vP54he/CMC2bds466yziOOYJ554ghe84AW89rWvZc2aNdxwww3EccyyZct429veRi6Xm8pXr4kmmp6BJo4s3HTTTXz4wx/mIx/5CA8//DAAAwMDbN26lXXr1rFixQo+//nPc9lll/HQQw9hrSUMQy677DI+97nP8cc//pE9e/Zk5xNC8N/+23/jFa94Bccffzzf+ta3UErx0EMPceWVV/KP//iP/PKXv2RgYID//b//N29/+9v52Mc+Rq1WO2Bbb731VnK5HF/84hc55phj+OEPf0h3dzd33nknDzzwADt37uSxxx7jd7/7HXPmzMnaM97IuO+++3j00Ud55zvfyaWXXspXv/pVyuUyq1ev5r3vfS+vf/3rufHGG/ngBz/Ii1/8Ym6++WaiKGLFihW8/e1v5xOf+ATf/OY32bVrF9dddx2veMUreNvb3satt97Ktm3bePzxx1m2bBmf/OQnWbJkCa997Wt56UtfyuOPP85DDz3EFVdcwfOe9zw+85nP0N3dzZo1azIPwhNPPIHWmlWrVnHeeefxsY99jO985zscf/zxvPOd72RoaIg77riDW265hauvvprPfOYzXHbZZWMMp507d9LX10e5XGbt2rV88IMf5I1vfCM/+tGPxjyna665hkcffZQ3vvGNfPKTn8za/tvf/pa3ve1tXHXVVXz1q1/FGMPVV1/Ny1/+crq7u/ne977Heeedx5lnnsk//MM/8MpXvpLzzz+fD3zgA7zpTW/K+jt9Fm9729t4yUtewvXXXz/GE/PEE09w7rnnZs/opJNOYu/evfT09HD33XczODjIgw8+SBiG9Pb28qMf/Yi3vOUtvPrVr+brX/865XKZlStX8qpXvSozSMc/77Rfoihi7dq1GGNYtWoVF110EZ/5zGf4yU9+wsUXX8ynPvUpbrnlFkZGRvjSl77EC17wAt7xjndw3333sXbt2kN6p5po4mDQ9Aw0ccRACMGrXvUq/vIv/xJjDO9///vH/H3nzp0sWbKErq4uTj31VNra2gBoa2vj1FNPpauri5aWljEL+dDQEJ/5zGc455xzUEplrv/Ozk5OPPFEWltbyeVylMtlRkZGOOWUU+jo6OC0006btJ3phL5hwwYuueQSWltbOe+88/jpT3/Kq1/9ar7//e8zNDTEW9/6Vu6++2527drFCSecMOk9P/XUU/T29vLzn/8cYwzLli0DYPHixcybN489e/awZMkSenp6OPbYY3n44Yex1rJo0SIWLVoEQBAEbN++nS1btnD33XcjpeSUU05BSkmhUOCss86iUChw22238aMf/YiLLroIgD179rB48WJ836e1tZVyuZzdYz1/oaWlhWXLlpHL5Vi7di2VSoUdO3aQy+Xo6enh2muv5Xvf+x6/+MUvePnLX85VV1014f2ecMIJ2X2MjIyMIfcdf/zx3HDDDezevZsf//jHfOELX+BFL3oRvb29/OIXv8Bay1lnnUVvby//+I//yMUXX4wxhr6+Pnzfz+6hUCjg+z4tLS0UCoXs2ps2bdrnXPX32NnZyeDgYHb/lUoF3/fp6elh2bJl3Hvvvdx11128+tWvZseOHezatYtf//rXAJx99tlYa5kzZw4nnHAC+Xz+oGP7LS0tnHrqqXR3d7NgwQKOP/74bGyXSqXM6/Hwww+zaNGizGvSRBNTiaYx0MQRA2MMhUKBtrY2jDH4/tjhuWTJEm644QY2b97MQw89xPDwMDC6254ojrp3716stbz1rW/ll7/8JStXrtxntyaEIJ/P093dzWOPPcaJJ57I6tWr9zmXtZaRkRGGhoYyN/L999/PBRdcwP3338+JJ57I7Nmz0Vrz9NNP84EPfIAbb7yRE088MZvcJzrnKaecwooVK7LdZK1Wo1arTciAr//d5s2bMw6DUopFixaxePFirrnmGk499VT6+/uZO3cuAFI6J+Djjz/O85//fF7ykpdw5513As6QGB4epr+/H8/zCMOQXbt2sXnzZgYHB7N+lVLieR6nn346S5cu5dWvfjWlUomWlhbK5TKf+tSnePzxx/nGN77BlVdeOSExbrIMDWstmzZtIggCenp6OOmkk1i7di3HH388c+bM4Z3vfCctLS0MDw/T29tLZ2cnb37zm/nud7/Lrl27kFJijGHPnj1IKQmCgN7eXo477rjsGkuXLmX27Nm84x3voK2tjeHh4WyMCSF42ctexle/+lUuvPBC2tvb+e53v8vzn/98Wltbufrqq/nc5z5HEAScffbZ7N69m7lz53LttdfS3d3N4OAghULhGWeE1H+u/vOFQoETTjiBK664gosuuoiBgQFmzZp1yOdvookDoWkMNHHEYOnSpVl8VwjBmWeeSVtbG1prjj/+eJYuXcqrXvUqrrvuOubMmUN3dzdCCM4666xsJ5bugFMsWrSIZcuW8alPfYpFixZx/vnnA3DOOecQBAFA9vn3ve99fP3rX6etrY0LLrggyxpIcdppp/HDH/6Qn/70pxQKBd75zneydetW/v7v/545c+bwtre9jSAIeMlLXkKpVGLu3LlcfvnlnH322RMujMcddxyFQoGLL76YDRs28JnPfAbf93nRi17EeeedxxlnnAFAa2tr5i3o7Ozk5JNPxlpLV1cXP/jBD+jr6+M973kP8+bNy9z4WmvmzZvH+9//fs4880yKxSIAL3vZy7juuutYtWoVp512GvPmzWPp0qUsWLCAL3zhC7z//e/nL/7iL/j85z/PkiVLuOSSS8b0McDf/d3fcf311/OpT32KfD7P3/zN33DvvfdmYZ1rr712zP0uXryYtrY22tvbM49LS0sLZ5xxxpiFb9u2bfzkJz/BGEMQBHzoQx/i5JNP5pWvfCWf+9zn8H2fiy66iGuuuYbZs2fz6U9/moULF3L22WdTKBR42ctexr/8y7/w2te+lle/+tX86Ec/YvPmzdlOe9myZbziFa/g85//PJ7ncfHFF/P6178+G2+XXnop/f39fOlLX8IYw4knnsg73vEOhBCcdtppHHfccZx77rm0trZy3HHH8fa3v50vfelLSCk544wzeMMb3sDy5cszw2s8TjjhBObNmwdALpdj+fLlWd+mHIDly5fj+z5SSs455xxaWlr45Cc/yTe/+U1uvfVWOjs7+cAHPpC9J000MVUQtklLbeIIQMqirt/l17uQ059/85vfYK3lj3/8I8cccwzvfe97gbEpdOk50vOkTPh0gUoZ3OnP6XWBjCkupdznPONZ3OlnlFJ4npctAinDPt2t1p9n/P2OP48QItutGmOQUmbXrf93b28vn/jEJ/jGN76RfaY+RU9rnS0q4/t1/D2m7RnflvR+0uvW30OayVB/32n762Pl459rek/19ze+T+rbnv4+zWpI+yb9XfoM6/sm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HvX19Vx88cVcc801tLa28rOf/Yyzzz6boUOHeuZYlWmavPbaayxevJijjz6aCy64AF3XaWxs5I033ii2vD2wLIuXX36ZJUuWcOyxxzJlyhTOPvts7rrrLhYuXMg555wDeCPIUUrJJ598wnPPPUdJSQlXXnklpaWltLW1uaWrvTTOAOrr63n66afJ5XJceeWVXH/99axevZo//vGPjBs3zjcpnr1G4Bk4AJYuXUp7ezs/+MEPmD17NuvWrSMej/P973+fhx56iEWLFtHa2uoJS9UwDJ544gkuv/xy4vE4//3f/41lWSQSCSzLIpVKFVtiB6SUPP7445x33nmMHTuW3/zmNxiGwTHHHENpaSnz589nyZIl7uqr2Lz11luoqsrll1/OH//4R3fFOnz4cD7//PMiq9uTRYsWEY1GmTZtGvfffz9bt26lvLyciy++mIcffpiFCxeSTqc90bY7d+5k4cKFXHfddSxbtoyXX34ZgEGDBnly9bpt2zbeeustfvzjH/Pee++xYMECVFVl+vTpPPvss7zxxhts3rzZE7oty2Lu3LlcdtllDBgwgN///veYpkksFkNVVU9ucc2bN48zzjiDiRMn8utf/5p0Os1RRx3FsGHDePbZZ3nnnXc8v5XoRQJjYB/oyrUKdr7u5uZmhg0bxhVXXMG8efMAqKioYMuWLbS0tPR6spbutAohyGQyqKrKZZddRn19PRs3bkTXdQYMGEAymexVnXvTC/ZEZRgGkydPJhaL8cEHHyCl5LDDDuOtt96itLS0VyfUrrQW9oWWlhZGjBjBd7/7XZ5++mnANgaKuQ/fXdtqmkZrays1NTVccsklPPPMM0gp6d+/P+vWrSObzbpHIIutVVVVWltbKSsr47rrruP555+nvb2diooKNE0r6sTfXV9obW2lvLycH//4x8yfP590Ok0oFEJVVdasWdPrCch6GmdOyt2LL76YpqYm1q5di6qqDB48uKjGQE+as9ksp59+OoMHD+add95BSjtvw9tvv01JSYknvC5+IzAGeqCwE27ZsoUPPviA9vZ29/fjx49nw4YNrF+/nmOPPZbGxkZyuRzRaJT77ruPCy+8sFeNAWewpNNpPvzwww4rUlVV+eY3v8m8efPQdZ1Jkyaxdu1ahBBcf/319O/fv9d0diabzbJixQqWLl3qBgEJITjvvPN46qmnMAyDb3zjG9TW1iKlZOLEidxzzz2MHj26115YTttKKamrq2PRokW0tLS4vz/++OP56KOPqK+vZ+LEiWzbtg3DMBgzZgzTpk3rFY3d0dDQwMKFCzvEsUycOJEPPviALVu2cOKJJ7Jp0yYMw6CsrIzf//73nH322UXJOmgYBq+99hrJZNJt88rKSqqrq1mwYAHV1dUMGDCAhoYGYrEYP//5z4tSi8CZF9ra2njppZdobW11f1dVVUW/fv1YtGgRgwYNorKykl27dgFwyy23cPXVV1NWVtarWsF+6S9evJjPPvvM/Z2iKEyePJknn3wSIQSnnXaaG5R57bXXMmTIkF7T2VmzlJL333+fF198sUPfPffcc5k3bx7pdJozzzyT2tpaACZMmMB9993HhAkTAmNgPwjyDPSAE1izcOFC3n33XSzLIhqNcuONN1JfX89bb73FEUccwRNPPMH48ePJ5XLMmDGjwwuqNzullJLm5mYeeOABKioqeP/997n99tvp378/CxYsoF+/fvzf//0f8XicpqYmrrrqKo488siiaHXIZDI8/PDDhMNhPvzwQ6688kqOOeYYlixZgmEYrFq1ioaGBhRF4Zxzztkj13hvaXYmp1dffZWPPvoIRVFQFIXrr7+ejRs38t577zFo0CD+8pe/MHr0aHRd50c/+lEHfcVoXyklL774Ir/5zW/44x//SE1NDevXr2fZsmVUVVUxf/58Ro0aRTQa5Yc//OEeGnu7/27bto0rr7yS6dOnM23aNJqbm3nppZcYO3YsDz30EGPHjmXr1q3cfPPNxOPxouh0tK5Zs4Y5c+YwefJkTjnlFDRNo6mpiZdffpmxY8fy4IMPMn78eFdv573s3uy7bW1t/O53v2PYsGFMnTqVRCJBLpfjjTfeIBaLubEX6XSayy67rENK52L126VLl7JgwQK+973v0b9/fxRFYenSpTQ3N1NXV0ddXR2xWIyTTz6Z0047rehjze8EAYRd4ERYW5aFpmlEIhFuuOEG2tvbufPOOzFNk9raWiZNmsTw4cMZPnw4DQ0N1NTU9HrGK+cllc1mCYVCpNNpzj//fMaNG0cmk2Hr1q3uGdzx48czYcIE1q5dS//+/amurgZ6f8IH2wgIhUIIIZgyZQoVFRWsW7eO9957j379+rFz507OOussTj31VD799FNisdhBSS+6P3qd3BGaplFTU8Opp57Kiy++yKJFi1i3bh2rV6/m5JNP5rDDDuPII4+kqamJmpqaXs/WVrgCFEK4K+Z0Os20adN47LHHuPnmm6mtreWkk05i6NCh1NTU0NLS4uqF3n1JWZbVIUgtnU5zwQUXsGDBAk499VQ2bdrEyJEjGTNmDDNnzmTDhg2MGDGCeDxelLYt1OtsB2zcuJGXXnqJ0047jfLyclfvrFmz2LBhAyNHjnQNgd42XrPZLLquo+s6DQ0NDB8+nHvuuYd+/fpx/vnnk8lkOOWUUzjhhBNYu3YtlZWVDB48uFe1Onqh47ywcuVKhgwZwqOPPkpjYyPTpk1j8+bNnHnmmZx55pmsW7cOXdcZPny4bzIjehoZIKWU0rIsaVmWlFLKlpYWefvtt8sHHnhAGoYhLcuSpmnKjz/+WP7617+WuVxO5nI59/pi6rUsS7755pvyqquukps2bZKmabr/3HrrrXLTpk0yk8lI0zSLprWz3lWrVsnp06fL2tpa92crV66Ur776qnzkkUfkvffe67Z7MbVKKWVjY6O85ZZb5OzZs6VpmtKyLNnU1CSfe+45uXDhQnnNNdfItrY2z/SFL774Qt58881y7ty5rt7HH39cLlu2TH73u9+VN998s2xvb3d/V0ytuVxOzp07V/7bv/2bbG9vl5ZlyY8//lg+8cQT8t5775XnnXee3LBhQ1HbtlBzNpuVc+bMkT/96U9lOp2WhmHIuXPnytdff13W1dXJq6++WtbX13uibS3Lku+995688sor3Tb84IMP5MMPPyy3bt0q7777bvncc88VdV4oHGeWZck1a9bIH/7wh3Lp0qXSsiy5aNEi+U//9E9yzZo1csmSJfLmm28u+rz7VSaIGWC3VZrNZjFNk507d3L00UezYsUK1q1bB9hWcm1tLdXV1cyePZsNGzYUTauUdkazbDaLZVns2LGDM844g7lz57rHwZLJJC0tLXzyySc8/fTTRct74Oi1LItMJuPuuV900UU8+uijZDIZAMaMGcMZZ5zBYYcdhqqqvR68VqgX7BWKaZps376dk046ibfeeotNmzYBUFpaykUXXcTIkSN7fYXaWWuhXsuy2Lp1K6eccgoLFixg8+bNgH0E9oknnuDss8/GNE1UVS2a6xdsz4VhGKRSKUKhEKWlpbz22muuF+a1115D1/Wil4912tfR297eTjQaJRqN8vrrr6MoCt///vc5/fTTKS8vdwNai9m2lmWRzWbdOKdzzjmH2bNnuydxfvjDH1JVVUVVVVVRj446eqWU7qkVZ16YPXs2qVSKE044gQkTJlBbW4sQglgsVrR5oS8QbBNgd8jXX3+dRYsWoSgKM2bM4MILL6SiooLHHnuM22+/HUVRWL16NW1tbVxxxRWMGDGiaHobGxt55JFH2L59O2eddRZTp04lm83y85//nFWrVjF27Fi2b9/O+vXr2blzJ1OnTi1qPfpUKsXs2bP5/PPPOfroo7n00ksRQvDhhx/yxhtvcNZZZ9HW1saf/vQnpJRcccUVQHH2/SzL4qWXXmLx4sVEIhF+8pOfUFNTg67rzJkzh1tuuQUhBC+88AK1tbX867/+K9FotNd1Fup98cUXWbx4MfF4nOuuu45Ro0ahKAp/+tOf+Pd//3c370FlZSXNzc3oul60l8Ann3zCM888Q1tbG1dddRWXXnopW7Zs4bbbbuOUU05h5MiR/OIXv2Do0KG0tbUV/cz46tWrefrpp90jxN/+9rc56aSTuP322znppJMoLS1l5cqVPPfcc5x77rlFrezX0tLCo48+6hqEF1xwAYZhcMstt7B8+XKOP/54mpqamDNnDolEgsmTJ/e6xkIymQxz585l3bp1jBo1iu9973tomsbq1at55ZVXuPDCC7n11lt5+umn2bZtmxuDE2wHHCJ60QvhGRz3lONOT6VS8qabbpK7du2Szz//vPyP//gPmclkZDqdlj//+c/lgw8+KN944w25Y8cOmUqletVN1VmraZry+eefl/PmzZM7d+6U1113nVy5cqU0TVO+//778tprr5VPPfWU3Llzp9yxY0dRXJad9S5btkzec889sqmpSd58883ytddek6Zpyg0bNsjp06fLJ554QtbX18tdu3a5bsDe0ty5fVtbW+VNN90kGxsb5TPPPCNnzZols9msbG9vlzfccIN89NFH5eLFi2VjY6NMp9NFcwcX6r3xxhtlc3OzfOqpp+Rdd90lc7mcTKVScsaMGfLRRx+V7777btH6QaFWwzDknXfeKT/66CO5atUqec0118iGhgZpGIZ87LHH5C9/+Us5f/78Dn2g2H33jjvukKtWrZIfffSRvOaaa2RTU5M0TVM+/PDD8o477pDz58+Xzc3NsqWlxW3j3tDc1bzwj3/8Qz7yyCOyoaFBXn/99fL999+XhmG42p988km5c+dOt82L3barV6+Ws2bNki0tLfK2226Tzz//vLQsS27evNmdF+rq6tzri9Ef+hJ90ucipWTjxo3cf//9PPDAA66bqrGxkcmTJ5NKpfj000/JZDLE43EMw2DcuHFUVVURiUR63TLNZDK88MILzJw5k/fff5+KigrWr19PWVkZV155JX/+85+xLIu2tjY0TWPUqFFUVFS4Ebi9HQhkmiaLFi3izjvv5NVXXyWRSFBfX08kEuFf/uVfmD9/PoZh0NraSklJCUOGDKF///5UVlaiaVqvWv9SSj777DPuu+8+HnroIQzDIJfL0drayoUXXsi2bduoq6sjlUqRSCSQUjJ69GjKysoIh8O93raWZbF27VruvfdeHnnkEXe7qLW1lalTp1JfX8+WLVtcvUIIjjrqqF7T2JnGxkbmzp3Lr371KzZv3kxZWRkbN25k1KhRnHjiibz22mtugGs2m+XYY491tzGKEYDZ2NjInDlzuPvuu9m6dSulpaXU1dUxevRojj/+eF5//XXXvZ7L5Tj++OMpKSmhpKTEHWu9pTmbzfLKK68wa9Ys3n77bcrLy9m4cSOlpaVcc8017vZgW1sb4XCYkSNHUl5eTmVlZa9vFTnzwjvvvMNdd93FCy+8QCwWY+vWre7Jm7///e9kMhlaW1tJJBIMGDCAAQMGIITo9bbti/RJY6C5udndQ21vb2fJkiVMmTKFOXPmIKXkmGOOYdOmTWiaxo9+9COuvfZaysvLi6b373//O+l0mqlTp/LYY48xZswYNm3axKpVqzjqqKNobW3FNE2+9rWv8atf/Ypjjz22qHtrb7/9Np9++imXXnopzzzzDOXl5USjURYtWsTgwYPRdZ10Os3gwYO58847Of3004uWCnnXrl38+c9/ZsqUKWzdupXa2lrOOuss/vSnP6EoCuPGjWPz5s2EQiFmzJjBD37wA0pLS4uiFWD79u0888wzXHDBBW4fOPPMM3n88cdRVZUxY8awZcsWIpEIN954I1dddZVrFPQ2pmkyZ84campqGDduHPPmzePcc8/lr3/9K42NjZx44ols3LgRIQRnnXUWt956a1HTNudyOWbPns1RRx3FqFGjmDdvHlOmTOF//ud/aGpqYuLEia7ec889l//8z/9k6NChRXtBvfrqqzQ0NHDJJZcwd+5cRowYQXNzMx988AFHHnkk2WyWXC7H8OHDufvuu5k4cWJRtws/+OADVqxYwWWXXcZf//pXQqEQVVVVvPLKK1RVVVFSUkJbWxv9+/dn5syZnHXWWUXJddFX6ZMxA4lEghtvvJFEIsHy5csRQnDGGWewZs0afvGLX6DrOmeeeaYbLATFPbd69tlnE4/HSaVSRKNR4vE4N9xwAw888AADBgzg5JNPRtd1d7+y2HqPO+44Jk2ahBCCsrIyNE3jJz/5Cf/1X//Fe++9R01NjZvutNh6KyoquOmmmygpKXEn9vPOO4/PPvuMX/7yl2iaxsUXX0w8HnfPtRezbfv16+fqHTx4sHs08w9/+AMzZ85EURS+9rWvEYlEiEQiRdWrqio/+MEPKC8vZ9WqVaxdu5bhw4dzySWXcMcdd1BWVsaFF16IqqoMHTrU/XvF0qtpGldffTXl5eVu0q7hw4dz0UUXMXPmTBKJBN/61rcQQhTl+F1nTjvtNGKxGNlslng87hqA9957LwMHDuSEE04gHA67R4iLrXfcuHEcc8wxqKrqZo+87rrruPvuu1mxYgWHHXaYO194QW9fo08aA6qqui7f9evXc+KJJ7J9+3Z+9KMf0djYSCKR6PVzwT3hrETr6+sZMmQIyWSSgQMHcuedd9Le3k7//v095UJzUq3u2rWLaDSKoihomsasWbNoaWmhX79+RYto74ymaZSUlGBZFps2beK8885jx44dzJgxg8bGRsrKyjxhEDo4Z8Yty6K+vp6pU6fS0NDADTfcQGNjI6WlpcRiMU9oBVyP2ieffOIGtp5++ulMnDgRRVEoLy/3TN8VQrh6V69ezbhx49i5cyff/OY3mTRpkqvXubbYJBIJAHbs2EFVVRXpdJqysjLuuusukskkVVVVvb5N2BPOnNrU1ISiKIRCIZLJJHfccQdNTU1UVVW524QBvU+f3CZwOlsqlWL9+vXMnz+fBQsWuFXmCvf/io0zUUopWb58OQ0NDdx///3uxF9dXe2ZFyvs1iuEYO3atTQ3N3PfffdRV1dHNBpl0KBBblIRL+DoaG1tpa6ujnnz5vH222+jaRrV1dXui9ULegvbtqWlhfr6ep544gneeecdVFWlurq6qEcdO+PosCyLFStW8NFHH/HUU0+Ry+Xo168flZWVnhln0HGsrVixguXLlzNv3jxP6i3UWltbS1NTE3/4wx/YsWMHJSUlDBw40FMv1sIxtGHDBpqbm/nDH/7Axo0biUajDB482FPzQl+kT3oGHAzDYOTIkUyZMsU9juVlYrEY48eP54ILLuj1Qif7g7Pnfumll1JZWVlsOT1iGAY1NTV861vfYuTIkZ6flJwYkUsuuYQjjjjC031XSsnAgQOZMGECkyZN8lyp7M5IKRk8eDDHHXccEydO9Py+dSgUYty4cVxyySWut8DrjB07lmnTptGvX79iSwnI02drE8iCpBd+yGkt8wlQ/KDVoXPX8qpev/UF2LM/eFXrV6Ftwbt6/aQV9pwTwNt6+xJ91hgICAgICAgIsPGubzEgICAgICCgV+jTMQMBAX0Zx8Xs1K3o6qhn4NYNCOgbBMZAQEAf5s033+Qvf/kLAwYMIBqN8t3vfrfDmX+wk3QtXLiQiy66yI1gLyQwDgIC/E9gDAQE9GF27drFcccdxz//8z+zePFifvOb3/Cf//mfvPTSS6RSKSZPnsymTZvcyneTJ09mwYIFbN++nTPOOIOamppiP0JAQMBBIIgZCAjo46iqSjgcZuLEiTQ0NJBOpxk6dCiRSIQHHniAqqoqhgwZwvHHH8+LL77IZ599xujRo3nggQfcstQBAQH+JjAGAgICAGhra0NRFFauXMnLL79MOp1m+/btlJSUUFFRwbBhw1izZg3btm1j6dKlDBs2DMMwii07ICDgIBBsEwQE9GGEEKxcuZLnnnuOJUuWcNFFF9HW1kZFRQW6rmMYBuFwmKamJhYuXMhJJ53E4sWLmTBhApZlufUPAgIC/E2QZyAgoI8ipWTXrl2sXbsWTdMYOnQo1dXVZLNZli5d6pbmHTFiBJ9//jlNTU2MHTuWdevWUV9fz/Dhw6mpqQkCCAMCvgIExkBAQEBAQEAfJ4gZCAgICAgI6OMExkBAQEBAQEAfJzAGAgICAgIC+jiBMRAQEBAQENDHCYyBgICAgICAPk5gDAQEBAQEBPRxAmMgICAgICCgjxMYAwEBAQEBAX2cwBgICAgICAjo4wTGQEBAQEBAQB8nMAYCAgICAgL6OIExEBAQEBAQ0McJjIGAgICAgIA+TmAMBAQEBAQE9HECYyAgICAgIKCPExgDAQEBAQEBfZzAGAgICAgICOjjBMZAQEBAQEBAHycwBgICAgICAvo4gTEQEBAQEBDQxwmMgYCAgICAgD5OYAwEBAQEBAT0cQJjICAgICAgoI8TGAMBAQEBAQF9nMAYCAgICAgI6OP8/0gG3+PHKXOJAAAAAElFTkSuQmCC", "text/plain": [ "
" ] @@ -593,21 +652,27 @@ "\u001b[33mCommander\u001b[0m (to Coder):\n", "\n", "Here is the feedback to your figure. Please improve! Save the result to `result.jpg`\n", - "Improve \n", + "Improve \n", "\n", "--------------------------------------------------------------------------------\n", "\u001b[33mCoder\u001b[0m (to Commander):\n", "\n", - "I'm sorry, but as an AI developed by OpenAI, I don't have the capability to view images directly or interpret visual feedback. My previous response provided an updated script intended to address the initial feedback points you provided.\n", + "I apologize for any confusion, but as an AI, I don't have the capability to directly view the images generated. However, I can certainly help you further refine the plot based on standard practices if there is anything specific that you feel needs further adjustment.\n", "\n", - "If there are specific aspects of the figure from the `result.jpg` file that you would like to further adjust, please provide clear textual feedback about what specific improvements you would like to see. For example, you can ask for:\n", + "You mentioned feedback for a figure referenced as \"\". Since I can't view images, I'm assuming this feedback is a placeholder. In case there are specific changes or additional improvements you want to implement in the figure, please provide me with those details explicitly.\n", "\n", - "- Adjustments to the graphical elements such as line style or markers.\n", - "- Changes to the axes or grid to improve visibility.\n", - "- Modifications to the smoothing function or its parameters.\n", - "- Any other specific visual modifications to the plot.\n", + "For instance:\n", + "- Are there any specific elements in the legend that still need repositioning?\n", + "- Should the date formatting be adjusted further for better clarity?\n", + "- Are there any other specific elements (e.g. colors, lines, labels, title) that require modification?\n", "\n", - "Once I have your specific feedback, I can provide you with an updated code script to address those points.\n", + "Without specific feedback, I can suggest some general improvements, such as:\n", + "\n", + "- Ensuring the plot does not appear cluttered.\n", + "- Checking if the aspect ratio is appropriate for the data being presented.\n", + "- Verifying that the font sizes are readable.\n", + "\n", + "If specific feedback can be provided, we can proceed accordingly. Otherwise, please let me know if we should conclude the task.\n", "\n", "TERMINATE\n", "\n", @@ -616,7 +681,7 @@ }, { "data": { - "image/png": "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s3DhQtatW8df//pXtmzZwoIFCzjnnHN46KGHOPXUU9NnJRKdW2+9lWnTpvHcc89x1FFHMWXKFO6++256e3s5+uijOfjgg1FK8dhjj7F06VKKxSKLFy9O+x3ANE3mzp2LlJKVK1fy8ssvp58XL16c/pbg4YcfZtOmTfzsZz8jk8lQqVRwHAetNX19fdx777309PRw9NFHs2DBAqIo4vHHH+f555+nWCxywgkn0NHRwc0338z1119PZ2cnBx98MNdffz0vv/wyrutyyimnDOr7arXK/fffz9q1azniiCM4/PDDsW170Jj5wx/+wEknnUQ+n2fevHl861vfQgjBQw89xKpVq5g/f346tpJ33/e57777eO2115g6dWpaVm9vL/fffz8bN25k/vz5HHPMMVSrVe6++27OPPNMLMtiYGCAu+++m7POOgvHcdJ7fd/nYx/7GCeffDI33XQTP/3pT1Npw+OPP87SpUuZPXs2b3jDG1IGtHGMCyHI5XLMnDkzrb9t2ylzcOqpp9Le3k4QBDz++OO88MILLFq0iJUrV3L66aeTy+UG0W7Dhg0sW7aMww8/nLvvvpt3vOMd3HnnnRx00EFMnz4drTW33347Bx10EFOnTuXZZ5/l8ccfZ9KkSZxyyink83nuvfdeWlpaWLFiBXPnzmXq1Kk88MADlEolFi1axGGHHYZhGFQqFe644w6q1SoLFixg48aNnHLKKSilePLJJ3n22WeZOXMmixcvJpPJcMopp3D11VfT09MzSDrQxPhA02bgbwTJAr5mzRqeeeYZnnnmGZYvX56esJ9++mmuueYaoiji29/+Nn/5y18QQnDFFVfwk5/8JD0V/eEPf6BcLvPII4/wf//v/x10QgZYtWoVK1eupFAo8Lvf/Y6f//znCCG44447+PznP8+mTZtYunQpl112WSoavOyyyzBNk+uuu47Vq1dvswgMJyrv7+/nk5/8JC+88ALlcpmLL76Yl19+mdWrV3PVVVcRBAHf+973+O53v4vv+1x99dWsXr0awzCQUmKaJqZppnSRUhIEAV/96ld55JFHyGQyfOc73+HOO++kVCrx5S9/mT/96U8IIfjsZz/L5ZdfTqVS4ZZbbuFnP/sZANdeey1f+MIXqFarPPLII3zxi1/E933uvvtuvva1r2EYBs8//zyXXXYZruty7bXX8vnPf55yuYxt2yxbtoy+vj6y2Wz6bMdxyGQydHV1MW3aNKIo4sc//jGVSiXdUG644QYAfvzjH/ONb3wjVQF9/vOfZ+nSpZimyeWXX85jjz3GI488wr//+7+TzWYplUqsWbNmkFTB932+//3v47ouy5Yt45/+6Z9YsmQJAwMDfOYzn6G/v3/Q5tLS0sKrr77KX/7yF1588UUsy8K2bSqVCl/84hdZsmRJ+vxHH32UcrnMU089RT6fZ8WKFXz+858nCALa2trIZDJMmzaN9vZ2isUixWKRadOmkc/nB6kxLr/8cu6//35yuRzf+973uPXWWweNF9/3eeyxxzjyyCORUiKlTE+f11xzDWeeeWYqYVJKoZRCa82VV17Jf//3f2OaJldffTXVahWtNa+88grr16+nUCjws5/9jD/96U/Yts0vf/lLli1bhhCC22+/ndtuuy09uQ8dv1prKpUKhUIBwzD44x//yDe/+U0ymQy/+tWv+M///M9UgpcgofPKlSv5xS9+gVKK66+/ni9/+csMDAzw6KOPcsUVV6CU4tZbb+XrX/86lmVx9dVX8+Uvf5lyuTyoLK01d955J0cccQQf+MAHuP7664miiGeeeYbf/e53APT09PDtb38bKSU33ngj3/3ud3Ech8cff5yvfvWrBEHAb3/7Wy677DI8z8OyLJYsWUK1WsWyLP7t3/6Nhx56CKUUX/va17j11ltRSvFv//ZvXHXVVURRxG9+8xuuvPJKcrkct912G9/5zndQStHe3k5HRwdLly7d/kLWxJihyQz8DaDx5P7oo4/ym9/8ht/85jfceOONhGE46LpSqcSdd97J5z73Od797nfz/ve/f1BZb3/727ngggv41Kc+xbPPPovneYN+nzt3LtOmTWPt2rXk83luu+02giBAa82pp57K+9//fi6++GJWrlxJqVTij3/8I+9973t573vfy6c+9Sna29t3qk3PPvssQRDw2c9+lg996EMcd9xx3HjjjSxcuJAVK1awcuVKHMehUCiwcuVKli5dypFHHjmsqDvByy+/zF133UV7ezu9vb20trZyww03oLWmtbWViy66iPe+970sWLCA+fPnc8EFF/CRj3yERx55JF3wzz33XD7wgQ/whS98geeff57Vq1fzy1/+kvb2dvr7+8lmszz66KNs2rQJIQTnnHMO73vf+zj66KM55JBDyOfzrF+/Htu2ueWWW+ju7mb69Om88Y1v3OakN9wp8kMf+hDnn38+lUqFJ598kkKhQKlUIp/Pc8MNN+C6LoZhMG3aNM4++2yOOOKIbcTsjeUdeuihXHjhhXzsYx8jk8lsw6wtWrSIL33pS9x5551cfPHFXHDBBbzwwgs899xzPPPMM6nqIJ/Pc9NNN1EsFlm0aBEbNmwgiiKeffZZNmzYwKGHHsq0adN461vfysKFCznkkEOYP38+5557LjNmzEif98orr3DnnXfS0dFBT08PbW1tXHvttYP6sVar0dvby6RJkwa1a/PmzTzwwAOcc845qWTp6aefTpmdv/zlL1xyySWcf/75fPSjH03nzLx582hvb2fNmjXk83luvvlmHMfhnHPO4U9/+hO+73PNNddw/vnnD2IGEonct7/9bT7wgQ/wzW9+k0996lMpU/2Zz3yGCy64gC996UvceOONVCqVbZjrRiRtOeuss3j/+9/PRRddxNKlS3Fdlz/84Q98/OMf54ILLuDiiy+mWCxuM7593+cvf/kL5557LocddhjlcpmXX36Zc845h7vuuotKpcL999/P/vvvT2dnJ7/4xS+YPHlyqgJKpFYA5513Hu9973tT6Zlpmqxbtw4pJbfffjubNm3ioYce4gtf+AL/8A//wHnnnYcQAtd1+e///m+6u7vp7e2lo6ODW2+9lYGBAQzDoLOzk1WrVm2XBk2MHZpqgr8BNG4e73znO/nIRz4CwNNPP80ll1wy6JpEjZCcxjo6OtIFTghBZ2cnALZtE0XRNovXT3/6U1566SXe+ta30t3dzfPPP5+eeJLF2bKs9CTe39+fGgYWCgUymcwOdc3Jb9VqlZaWllRnO3nyZDZt2sTkyZOxbZsbb7yRQw89FNu2uemmm9INcEcolUrkcjnmzJmDYRjMmjWL6dOnA5DL5SgUCmityeVydHZ2orUmk8ngeV6qa25vb0cIkZ7oS6US/f39HHLIIcydO5cwDPnXf/1X2tvb0Vozbdo0DMMgiiK+8pWvMGnSJBYvXozv++miOJyhWKOOO6GLaZppvQYGBmhpaWHmzJlIKZkxYwZz585l//33JwgCbr75Zr797W/zoQ99iLe+9a3bNRZrb29P+9+yLIIgGEQz27Y588wzOfPMM6lUKlx22WVcddVVLF68mEKhwOzZsxFCMHv2bObOncsTTzzBV7/6VT74wQ8yf/58brrpJnzf36bPhzPqE0IwMDCAZVnMmTMHy7KYPXt2agiXIJEEhGE4qJy77rqLefPmMWfOHIQQrFixguuvv55cLsd73/tewjCkWCwC0NHRgWVZRFHEt771LXzfT9VBt912GwBnnHEGF154IQ8++CCVSoWjjjpqmzYYhsGFF17IkUceyQ9/+ENuueUWFixYQK1WS+dSsVhEKUUYhq8rGhdCMHny5JT2ENsBlEqlVP9fKBQGqSoSPP/88zz66KN8+9vfxrIsVq1axfXXX8+nP/1pWlpaeOKJJ7j++us5//zzASiXy8yaNYtZs2YB8K//+q9pXadOnYoQAs/z+NznPschhxzC0UcfzcDAwCB1ZGIIPHny5HScu67L3LlzmTRpElprjjnmmHTeh2GI4zhNFcE4RFMy8DeCoZv29hbbQqGQ6rNLpRK33347QRAMEmE2GkkNLWf58uUcf/zxHHvssfT19aWLQnJP471SShYuXMjNN99MX18fDz30EOvWrRu27kop+vr66O/vp7+/n5kzZ7J69WpefPFFtmzZwj333MOiRYtwHIfDDjuMK6+8kmOOOYZjjjmGn//85xx88MHDLpCw9cQ1Z84cbNums7OTk08+maOPPjpdeBMaNda/8RSYGJXdcccd9PT08PTTT+O6LjNmzODv/u7v2LJlC8cddxwnnXQS8+bNI5PJpDRITpCrV6/mtNNOY+HChaxfvz5tt+M49Pb24nketm1j2zYvvPACmzdv5t57702va6zngQceSBAETJ8+nVNPPZUjjzySzs5Oent7Oeyww/jnf/5nzjzzzHRjG2pAtz2Dx6FGaatXr2bp0qWUy2XCMEyZuoMPPpgoipg6dSqnnnoqRxxxBB0dHaxdu5bp06fzpje9iUKhwKZNm9BaY9s2vu9TqVQIgoBMJsPAwADVajUde1pr5s6dSz6fp62tjZNOOim1jWhELpdj+vTprFq1KlUBeJ7Hn/70J971rndh2zZCCN74xjfyta99jcsuuyxl/O69917K5TK33347ruuilOKll17ilFNO4ZhjjmHDhg0prbu7uznkkEP40pe+xOmnn5726dCxlTBln/rUp7jzzjtZvXo1Bx54ILfccgv9/f3cc889TJ48eZA6ZKhaLJkHQw0VDcPANE0OO+wwbr75ZkqlEg8++CCbN28eNDejKOLaa6/lwx/+MN/+9rf5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e9/7OPvssw/7dJMkCT/96U/55S9/SV9fH+95z3uI45g777wTgHe/+924rssdd9zB1NQUH/3oR7Ftm/vuu4+nn36aZcuW8c53vnOa73Xjxo384Ac/4PTTT+eaa67hhRde4Otf/zrnn38+11577RGdxJrNJnfddRe7du3i/PPP58orr+SZZ57hBz/4ASeffDJvfvOb8/E877zzuO6666jVatxxxx1MTExw5ZVXcumll+bPj6KIe+65h61bt/KWt7yFNWvW8JWvfIXx8XEmJib44Ac/yGmnnXZYJ/Qsxeruu+9m586dnH/++bz2ta/lqaee4vvf/z6nnnoq1157LVu3buWuu+7iggsu4Jprrsk31G9+85sUi0WuvfbafGMNgoB77rmHl19+mbe85S2ccsop3Hffffzyl7/kd3/3d1m+fPlhyRXSTXnLli185zvfQWvN29/+dlasWME///M/88ILL+TP+/73v89DDz3Eb//2b7Ny5crcEnfrrbfy/ve/n5UrV+b33L17N3fddReO4/C+972PHTt2cO+99+Yvk4997GN51s+hthXS4Lqvf/3r7Nmzh8svv5zLLruMRx99lPvvv58NGzbwxje+kWeffZavf/3rvPrVr+Y1r3kNY2NjfPazn8X3fc4//3ze+MY35vcMw5BvfOMb7Ny5k7e+9a2sWbOGb3/722zcuJGPfexj+yXZmgviOOZ73/seTz31FCtWrOD666+nXq9z55134vs+73nPe0iShK985StIKfmd3/kdhBDcdttt1Ot1+vv7uemmm6YFwT700EM88MADXHjhhbz61a/mvvvuY/PmzTQaDS6++GLe9KY3HVF6ajZXpZS84x3vYHBwkHvuuYcdO3bw1re+lXXr1nHvvfeyceNGfvd3f5ehoSHa7Tb33nsv27Zt4w1veAPnnntuPl4vv/wy3/jGNxgcHORd73oXjUaDr3zlK1QqFf79v//3h93OxY6Fbf9bIDDGUK1Wefe7302SJHz961/nzjvvxLIsTj31VP7u7/4OYwwnn3wymzdvJggCjDGsXLmS97///Tz66KP88pe/zLXZdrvNLbfcwtVXX81jjz3G448/juM4rF27lsceeyx/5uG21RjDmWeeybvf/W6+9rWv8cILL3DLLbfwxje+kU2bNvHoo4+ilGL16tU8+eST+ecuv/xy3vzmN/PpT3+aRqOR3/PJJ5/kgQce4E1vehOf//znieOYt73tbXzgAx/glVdewfO8I5ItQH9/P+9+97up1+vce++9/OM//iPVapXly5fzD//wDwCcfPLJPP3004RhiDGG8847jxtvvJGtW7fyi1/8Ir9ns9nks5/9LNdccw0PPvggzzzzDI7jsHz58ry/RwJjDGeddRY33HADX/7yl9m2bVs+no888ghPPPEEtm2zYsUKnnrqKSCtXX/NNddwww038IUvfIFms5lvpr/61a/YuHEj11xzDbfffjsA119/Pe9///vZvn37EQXwZfPhnHPO4Z3vfCdf/vKXeemll/jMZz7Dddddxy9+8Qu2bNmC67p5e7N2ZS/l7t8BPPzwwzz11FNcffXV3HbbbURRxNKlS5mcnDwq0ddKKa677jrOPfdcbr75Zh555BEefvhhrr76am699Vba7TZLlixhamqKsbGx/HPf/va3efDBB/dpwxe/+EXWr1+P7/t861vfYu3atXzwgx/kkksuYefOnTkN8uEgi18577zzuP7667ntttvYunUrn/vc5/iN3/gNfvzjH/Piiy/ieR5Llixh8+bNCCGo1WrUajXe8573cPHFF0+7309/+lNefPFFXvOa13DrrbeitWblypXs3r2bqampw25rdv8VK1bwvve9L2dYvf3221m/fj2e5/Gtb30LIQSnnXYaGzduzC0Cjz/+ONdffz1vf/vbcRwnTz0eHR3ly1/+Mm9961u599572bFjB695zWu46aabSJIkv/ZIYFkWb3nLW1i/fj233norDz74IM8++yyvec1ruP322wmCgBUrVrBr166cUv3uu+9mamqKd77znbliKERaY+P222/n/PPPJwgCvve976GU4tRTT+Wxxx47IWMFMvSUgTlACMGZZ56ZR5V6nsdTTz3FVVddxaWXXsrzzz+P4zhccsklFItFpJTYts25557L8PAwwDRK16mpKbTWnHnmmZx//vk89dRTrF69mrPPPjv3bx3uAsrad8455zA8PIxlWdTrdaIo4uyzz+bSSy/l8ccfZ9WqVWzYsCHf5AcGBjjzzDOpVCq51p/5jp966inOP/98Tj/9dFzXZXx8nMHBQYIgoFKpsG7dusP2y2WfOfvss1mxYgVSShzHYdOmTbz61a/miiuuYPPmzXiexyWXXJKTtAgh6O/v59577+W5555j9erVwN6UIsuyOPPMM3nVq17Fli1bWLt2bW69ONLNqVgscv7559Pf35/zy1uWxVlnncVFF13Epk2bWLNmDWeffXZu4cn40u+44w6Gh4encfZv3LiRSy65hDPPPBOtNZOTkwwODlKr1ViyZAnLly8/7E0qi6k455xz8sDQjA//zDPP5LzzzuPpp59mzZo1nHHGGblsWq0Wd999N29729vy3yVJQpIkbNy4kUsvvZSzzjoLrTW1Wo0LL7wwv/+RYu3ataxfvx7btnEch6eeeoqLLroof16z2eSCCy6Yljb2wgsvsHv3bs4//3xgrxIUxzFbtmzh0ksv5YorrmDTpk04jsPQ0BC/+tWvuO66645orUkp6evr45xzzsnTBLMU0jPOOINzzjmHLVu2sG7dupzuHNI6Dbt37+bWW2/l5z//+TTK9Mcee4zLL7+cc845h1arRavV4sILL6S/v/8IJZua+Tds2MDSpUsxJiVce+mll7jsssu46qqrePzxxymXy1x00UW5JVNKieu6fOlLX+Kf/umfCIIgd3nt2LGD4eFhTjnlFE4++WSef/55yuUyxWKRnTt3cuGFFx5xm0899dR8Pniex2OPPcZll13Gq171qnxvu+iiixgcHMzXyY9//GM2b97MrbfeyrPPPpvvZXEcs337di688EIuu+wynnjiCarVKhdccMGCj4051ui5CQ4BDz30EFu2bOHjH/84v/zlL/NAu5n+suzfWmvuuusu+vr6OO+88/jud7/L1q1bueSSS/LrukldjpavSoi0kMfnPvc5Lr/8cpYtW5ab6bICIt1uiMxiMTk5yac//WluvPFGtNZ84QtfoFqt0m6383TDrF/GGH74wx/ymte85oh4Cbr9vT/96U/Zvn07N910E/fffz9KqWkFT7JnZ+21bZs3vvGN1Ot1tm7dyqZNm3jllVfyDSgrqNJdGe5oybjVanHbbbdx7bXXMjg4uI8sZ7p5jDEsX76ct771rfzDP/wDu3bt4jvf+Q7Dw8N54Z2szZlMfvjDH/K6173uiChrM6Uus0a9+c1vpq+vL/etd5emzaC15kc/+hFBEDA6OsrWrVvZvn079957L8uXL88LL2Xt7R6fo5GSKoRg27Zt3HHHHfz+7/8+P/zhD/O1Npt8s7l6wQUXcP/99/Pcc88RRREPPvggV1xxRe477pZtu93miSee4Kabbjrs9nZ/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b+fGG2/kkUce4etf/zq//du/zeDgICeddBKlUon/8B/+A1/72td46aWXeMtb3sKuXbu47bbbGB8f5wtf+AJhGB5RexcreqmFc0D3i3l/4srMsQdKu+k2zWbmyu5T1Mw0o8NhPZy5SXSnjM10R2it93lG9nnbtvN2ZmbgrK0zTcNHksfb3eZMPjPlONvpYraUqExm3W3u7ld3OtKRUMBmaUvd9+seuwOlr2W/y75nJuTuscnkrLU+Ik6CTKbdY5+1u3sMZ7qMshrzM/tiWdY+49U9vzIz8UyT+KHIOVsT2b9n3qN77s42R7qfn/VxtnS0rL1H4ieeuS66+5B9n1lyubsP3T9n8s7a233P7PfZv7PPH451YOZeNnPuzfxdhv25KbrlnlkNss/OTPk9HGT3nW0f63YNZHtZtwu024KSfb57bc3m0upeHydaDEFPGZgDujeZmZv/TMy2Kc3cOGe7/8xFCYdeQnjmpjNbm2b+Lmtj98sz2yiza7o33u4XdnafI/ETd7erWw4zN8zuZ83sS4Zun/LMv8+895G2uVsmM326B9r0D7Thdt+/+/ojNWPP9n1mIaqZz5hNyZnZn/3N29leGIfS5u52HaiN3dfMpijOppztr0+Hg+zFPVM2B9snDqQczoy/mE2RyMav+7NzxWyynU1+M/eF/Sm1+5PtbH07HMw2H2bKfH8v9tnm5YHW3Mw97kjmxmJETxmYA46liA40QY9koR8NzPZCPti1h4pDafOBZHUo13Rfezg4nkvmSDakA218B3qBz3wJzbZRzhXzPYcPhmMh38PFoczd7s8cCuZru19Icp4respADz308GuNzM2RVaJTSuG67j58EZkiYIzJgy6Pxom6hx56WHjoZRP00MMJBiEEQRDw4Q9/mIGBAVzXxRjDBz7wAS677LL8Gtjrs80q7GVpiTN97z0FoYceFjd6ykAPPZygaLfb/Pf//t8ZHh7mqaee4uMf/zi33norTzzxBD/72c8olUrceOONjI6O8k//9E85Pe6ll17KV7/6VV588UUuvvhi3vrWtx5RKmwPPfQw/zixwiV76KGHfSCl5Oyzz2bJkiVs2bKFFStW8N73vpfly5dz++23c9JJJ3HqqafykY98hMsuu4zPfOYzaK1573vfy7/8y7/wyCOPzJtft4ceejg66FkGeuihhzy9LQxD7r77brZv347WmrGxMWzbxvd9li5diud5/OQnP2HFihU8/fTTBEFAs9mc7+b30EMPR4ieMtBDDycwsvSx559/nu3btzMwMMATTzzBbbfdxhNPPMFf//Vf51HuWY72ihUr+NCHPsQVV1xBEAS9evE99PBrgF42QQ89nGAwxtBsNvnABz7AmjVrcF2XWq3Gu9/9bi677DL+9E//FEhJhiYmJrjlllv4m7/5G15++WXe/va3MzQ0xC233EKlUkFrzcc+9jFOOeWUnkLQQw+LGD1loIceTjBkqYWjo6M5a1ypVMo52VutFpOTk5RKJYIgoFqtEscxExMT+L5PqVSi3W5Tq9XwfZ9yuZyztvXQQw+LEz1loIceTjDMpOjN0E2TDfsyF3YTFM0kJjoRGdt66OHXCT1loIceTjDsj4Z2LnStB6LV7ikDPfSweNFTBnrooYceeujhBEfPyddDDz300EMPJzh6ykAPPfTQQw89nODoKQM99NBDDz30cIKjpwz00EMPPfTQwwmOnjLQQw899NBDDyc4espADz300EMPPZzg6CkDPfTQQw899HCCo6cM9NBDDz300MMJjp4y0EMPPfTQQw8nOHrKQA899NBDDz2c4OgpAz300EMPPfRwgqOnDPTQQw899NDDCY6eMtBDDz300EMPJzj+b3fTRHwPX2MrAAAAAElFTkSuQmCC", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAgMAAAEMCAYAAABZZbUfAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOy9eZweVZ3v/z6nqp6l905nJSQh7BCWsC8KKupFBJdx19Fh3MZRR/25XfXqHcf56ajz08E796KOjsi44rggeN1AEAEFCWEJhCSQkH3pdNLrs1XVWX5/nKrqpzvdWaC7k2fyfHg1ne6up+rUqVPnfM/3+/l+vsJaa2miiSaaaKKJJo5ayMPdgCaaaKKJJppo4vCiaQw00UQTTTTRxFGOpjHQRBNNNNFEE0c5msZAE0000UQTTRzlaBoDTTTRRBNNNHGUo2kMNNFEE0000cRRjqYx0EQTTTTRRBNHOZrGQBNNNNFEE00c5WgaA0000UQTTTRxlKNpDDTRRBNNNNHEUY6mMdBEE0000UQTRzmaxkATTTTRRBNNHOVoGgNNNNFEE000cZSjaQw00UQTTTTRxFGOpjHQRBNNNNFEE0c5msZAE0000UQTTRzlaBoDTTTRRBNNNHGUo2kMNNFEE0000cRRjqYx0EQTTTTRRBNHOZrGQBNNNNFEE00c5WgaA0000UQTTTRxlKNpDDTRRBNNNNHEUY6mMdBEE0000UQTRzmaxkATTTTRRBNNHOVoGgNNNNFEE000cZSjaQw00UQTTTTRxFEO/3A3oIkmAKy1B/y7EAIhxD6/T/8G7PP3Z9qW8eesb98zvUZ6jvpz1/9tovtrdNT35YHubbIx8Gz65FDHx/g2PNvncaBxPRXXaKKJqUDTGGjiiMHmzZvxfZ+FCxdirWX16tUsWrSIbdu2sXXrVq688sp9PmOM4bvf/S6veMUr6Orqyibf+gl2ogl+okm6/vc333wz5513HkuWLMn+vnr1ahYvXkxHR8eE5x1/3YlgjOHJJ59k27ZtY9q3ePFiTjnllDHt399CcjD3UN+e/Z0rDENKpRI9PT37bf/BLGzjrwtw77330tLSwvnnn7/fNhtjeOKJJ3jqqadob2/nvPPOo7u7+6Cua62lt7eXefPmIYSgr6+Pzs5OcrkcK1eupFKpcNlll+23ndZaBgcHWbFiBZVKheXLl2fPfyLjbbL7GH/cmjVr2LFjx5i/zZ49m1WrVvHmN78Zz/Mmva+Jztk0HpqYDjTDBE0cMbj11lu54447ADeJ/uu//itPP/00bW1tzJ49O/t9rVbDGIMxBmstv//97ymVStRqtTG77/R7+hmlVPY7Ywxaa6rV6phj4zgmDEPuv/9++vr6srZZa/lf/+t/sWHDhjHnN8ZQrVbRWmc/p9fUWmfXMsYAbiIfHh5m586dfOc73+E///M/2blzJyMjI9RqNeI4HtPGOI6JogiAKIqyf6d/V0oRhuGE95D+rLXGGJP1j1KKarWatenxxx/nuuuuy9qbfq//9/hzaK2z55AiiqLs7/ULWFdXFx0dHfvc0/hn9Ic//IEvfOELKKVYv349a9asGXPutG/q+z19pqVSiY9//OOUSiWMMfzzP/8zTz75JMYYnn76adasWZMtomEYjunH9Ku3t5e/+7u/Y/Xq1QwPD/Oxj32Mu+++O2t3fZ+kGH+udFyl/Q8wODjIzp07+da3vsUtt9zCrl27qNVqHHPMMQghss+kfVffz2kfKaXG/O5QDLMmmjgYND0DTRwxSCdapVQ2QQoh2L17N08++STLly/nm9/8JqtWrWLBggUopfjkJz9JFEX8+7//O729vSxbtox3v/vd2W5La803vvEN1q1bhzGGd73rXZx88sl85jOfoVgssmXLFi655BL+6q/+ilWrVvG1r32Njo4OnnrqqQPuBoeGhrjuuuvo6+ujo6ODD3/4w9xxxx0sXbqU+fPn8+lPf5ovfelLPPjggwBceeWVCCG48MILufDCC+nv76etrY3Xv/713HDDDfzHf/wHQRDwN3/zN3R0dPClL32J1tZWdu7cydVXX83KlSvp6+vjIx/5CD09PXz2s5+lWCyye/duXvOa1/DiF7+YFStW8IMf/ACtNZdccglveMMb+Jd/+RdqtRpRFPHGN76R7373u5RKJY455hje97738etf/5rf/OY31Go13v72t/Ozn/2Mj3/841SrVb7yla/w0Y9+lC9/+cvZc3nTm97EjTfeSKlUYv78+bzvfe9j5cqV/OhHPyKXy/HiF7+Ya665JuunjRs30t7ejud5fO1rXyOfz7Nr1y7e+973cs4552THrVq1ijPPPJNrrrmGfD4PuEXwpptu4s9//jNCCP7qr/6KM888k+uvv57NmzfjeR7ve9/72LBhA/fffz8f+9jHuPzyy7n77rvZuXMnV1xxBa2trdm5fvCDH7BixQqEEFx77bWcd9552bO96aabOPPMM/nABz6AEIITTzyRr3zlK7S1tfHAAw/wrne9i3K5zJe+9CU+/OEPc/vtt3PXXXdhreU1r3kNF1xwAf/wD/9AsViku7ub973vfXiex6WXXsqll17Ktm3bWLp0KW94wxvo7+/n61//Os9//vP54he/CMC2bds466yziOOYJ554ghe84AW89rWvZc2aNdxwww3EccyyZct429veRi6Xm8pXr4kmmp6BJo4s3HTTTXz4wx/mIx/5CA8//DAAAwMDbN26lXXr1rFixQo+//nPc9lll/HQQw9hrSUMQy677DI+97nP8cc//pE9e/Zk5xNC8N/+23/jFa94Bccffzzf+ta3UErx0EMPceWVV/KP//iP/PKXv2RgYID//b//N29/+9v52Mc+Rq1WO2Bbb731VnK5HF/84hc55phj+OEPf0h3dzd33nknDzzwADt37uSxxx7jd7/7HXPmzMnaM97IuO+++3j00Ud55zvfyaWXXspXv/pVyuUyq1ev5r3vfS+vf/3rufHGG/ngBz/Ii1/8Ym6++WaiKGLFihW8/e1v5xOf+ATf/OY32bVrF9dddx2veMUreNvb3satt97Ktm3bePzxx1m2bBmf/OQnWbJkCa997Wt56UtfyuOPP85DDz3EFVdcwfOe9zw+85nP0N3dzZo1azIPwhNPPIHWmlWrVnHeeefxsY99jO985zscf/zxvPOd72RoaIg77riDW265hauvvprPfOYzXHbZZWMMp507d9LX10e5XGbt2rV88IMf5I1vfCM/+tGPxjyna665hkcffZQ3vvGNfPKTn8za/tvf/pa3ve1tXHXVVXz1q1/FGMPVV1/Ny1/+crq7u/ne977Heeedx5lnnsk//MM/8MpXvpLzzz+fD3zgA7zpTW/K+jt9Fm9729t4yUtewvXXXz/GE/PEE09w7rnnZs/opJNOYu/evfT09HD33XczODjIgw8+SBiG9Pb28qMf/Yi3vOUtvPrVr+brX/865XKZlStX8qpXvSozSMc/77Rfoihi7dq1GGNYtWoVF110EZ/5zGf4yU9+wsUXX8ynPvUpbrnlFkZGRvjSl77EC17wAt7xjndw3333sXbt2kN6p5po4mDQ9Aw0ccRACMGrXvUq/vIv/xJjDO9///vH/H3nzp0sWbKErq4uTj31VNra2gBoa2vj1FNPpauri5aWljEL+dDQEJ/5zGc455xzUEplrv/Ozk5OPPFEWltbyeVylMtlRkZGOOWUU+jo6OC0006btJ3phL5hwwYuueQSWltbOe+88/jpT3/Kq1/9ar7//e8zNDTEW9/6Vu6++2527drFCSecMOk9P/XUU/T29vLzn/8cYwzLli0DYPHixcybN489e/awZMkSenp6OPbYY3n44Yex1rJo0SIWLVoEQBAEbN++nS1btnD33XcjpeSUU05BSkmhUOCss86iUChw22238aMf/YiLLroIgD179rB48WJ836e1tZVyuZzdYz1/oaWlhWXLlpHL5Vi7di2VSoUdO3aQy+Xo6enh2muv5Xvf+x6/+MUvePnLX85VV1014f2ecMIJ2X2MjIyMIfcdf/zx3HDDDezevZsf//jHfOELX+BFL3oRvb29/OIXv8Bay1lnnUVvby//+I//yMUXX4wxhr6+Pnzfz+6hUCjg+z4tLS0UCoXs2ps2bdrnXPX32NnZyeDgYHb/lUoF3/fp6elh2bJl3Hvvvdx11128+tWvZseOHezatYtf//rXAJx99tlYa5kzZw4nnHAC+Xz+oGP7LS0tnHrqqXR3d7NgwQKOP/74bGyXSqXM6/Hwww+zaNGizGvSRBNTiaYx0MQRA2MMhUKBtrY2jDH4/tjhuWTJEm644QY2b97MQw89xPDwMDC6254ojrp3716stbz1rW/ll7/8JStXrtxntyaEIJ/P093dzWOPPcaJJ57I6tWr9zmXtZaRkRGGhoYyN/L999/PBRdcwP3338+JJ57I7Nmz0Vrz9NNP84EPfIAbb7yRE088MZvcJzrnKaecwooVK7LdZK1Wo1arTciAr//d5s2bMw6DUopFixaxePFirrnmGk499VT6+/uZO3cuAFI6J+Djjz/O85//fF7ykpdw5513As6QGB4epr+/H8/zCMOQXbt2sXnzZgYHB7N+lVLieR6nn346S5cu5dWvfjWlUomWlhbK5TKf+tSnePzxx/nGN77BlVdeOSExbrIMDWstmzZtIggCenp6OOmkk1i7di3HH388c+bM4Z3vfCctLS0MDw/T29tLZ2cnb37zm/nud7/Lrl27kFJijGHPnj1IKQmCgN7eXo477rjsGkuXLmX27Nm84x3voK2tjeHh4WyMCSF42ctexle/+lUuvPBC2tvb+e53v8vzn/98Wltbufrqq/nc5z5HEAScffbZ7N69m7lz53LttdfS3d3N4OAghULhGWeE1H+u/vOFQoETTjiBK664gosuuoiBgQFmzZp1yOdvookDoWkMNHHEYOnSpVl8VwjBmWeeSVtbG1prjj/+eJYuXcqrXvUqrrvuOubMmUN3dzdCCM4666xsJ5bugFMsWrSIZcuW8alPfYpFixZx/vnnA3DOOecQBAFA9vn3ve99fP3rX6etrY0LLrggyxpIcdppp/HDH/6Qn/70pxQKBd75zneydetW/v7v/545c+bwtre9jSAIeMlLXkKpVGLu3LlcfvnlnH322RMujMcddxyFQoGLL76YDRs28JnPfAbf93nRi17EeeedxxlnnAFAa2tr5i3o7Ozk5JNPxlpLV1cXP/jBD+jr6+M973kP8+bNy9z4WmvmzZvH+9//fs4880yKxSIAL3vZy7juuutYtWoVp512GvPmzWPp0qUsWLCAL3zhC7z//e/nL/7iL/j85z/PkiVLuOSSS8b0McDf/d3fcf311/OpT32KfD7P3/zN33DvvfdmYZ1rr712zP0uXryYtrY22tvbM49LS0sLZ5xxxpiFb9u2bfzkJz/BGEMQBHzoQx/i5JNP5pWvfCWf+9zn8H2fiy66iGuuuYbZs2fz6U9/moULF3L22WdTKBR42ctexr/8y7/w2te+lle/+tX86Ec/YvPmzdlOe9myZbziFa/g85//PJ7ncfHFF/P6178+G2+XXnop/f39fOlLX8IYw4knnsg73vEOhBCcdtppHHfccZx77rm0trZy3HHH8fa3v50vfelLSCk544wzeMMb3sDy5cszw2s8TjjhBObNmwdALpdj+fLlWd+mHIDly5fj+z5SSs455xxaWlr45Cc/yTe/+U1uvfVWOjs7+cAHPpC9J000MVUQtklLbeIIQMqirt/l17uQ059/85vfYK3lj3/8I8cccwzvfe97gbEpdOk50vOkTPh0gUoZ3OnP6XWBjCkupdznPONZ3OlnlFJ4npctAinDPt2t1p9n/P2OP48QItutGmOQUmbXrf93b28vn/jEJ/jGN76RfaY+RU9rnS0q4/t1/D2m7RnflvR+0uvW30OayVB/32n762Pl459rek/19ze+T+rbnv4+zWpI+yb9XfoM6/sm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HvX19Vx88cVcc801tLa28rOf/Yyzzz6boUOHeuZYlWmavPbaayxevJijjz6aCy64AF3XaWxs5I033ii2vD2wLIuXX36ZJUuWcOyxxzJlyhTOPvts7rrrLhYuXMg555wDeCPIUUrJJ598wnPPPUdJSQlXXnklpaWltLW1uaWrvTTOAOrr63n66afJ5XJceeWVXH/99axevZo//vGPjBs3zjcpnr1G4Bk4AJYuXUp7ezs/+MEPmD17NuvWrSMej/P973+fhx56iEWLFtHa2uoJS9UwDJ544gkuv/xy4vE4//3f/41lWSQSCSzLIpVKFVtiB6SUPP7445x33nmMHTuW3/zmNxiGwTHHHENpaSnz589nyZIl7uqr2Lz11luoqsrll1/OH//4R3fFOnz4cD7//PMiq9uTRYsWEY1GmTZtGvfffz9bt26lvLyciy++mIcffpiFCxeSTqc90bY7d+5k4cKFXHfddSxbtoyXX34ZgEGDBnly9bpt2zbeeustfvzjH/Pee++xYMECVFVl+vTpPPvss7zxxhts3rzZE7oty2Lu3LlcdtllDBgwgN///veYpkksFkNVVU9ucc2bN48zzjiDiRMn8utf/5p0Os1RRx3FsGHDePbZZ3nnnXc8v5XoRQJjYB/oyrUKdr7u5uZmhg0bxhVXXMG8efMAqKioYMuWLbS0tPR6spbutAohyGQyqKrKZZddRn19PRs3bkTXdQYMGEAymexVnXvTC/ZEZRgGkydPJhaL8cEHHyCl5LDDDuOtt96itLS0VyfUrrQW9oWWlhZGjBjBd7/7XZ5++mnANgaKuQ/fXdtqmkZrays1NTVccsklPPPMM0gp6d+/P+vWrSObzbpHIIutVVVVWltbKSsr47rrruP555+nvb2diooKNE0r6sTfXV9obW2lvLycH//4x8yfP590Ok0oFEJVVdasWdPrCch6GmdOyt2LL76YpqYm1q5di6qqDB48uKjGQE+as9ksp59+OoMHD+add95BSjtvw9tvv01JSYknvC5+IzAGeqCwE27ZsoUPPviA9vZ29/fjx49nw4YNrF+/nmOPPZbGxkZyuRzRaJT77ruPCy+8sFeNAWewpNNpPvzwww4rUlVV+eY3v8m8efPQdZ1Jkyaxdu1ahBBcf/319O/fv9d0diabzbJixQqWLl3qBgEJITjvvPN46qmnMAyDb3zjG9TW1iKlZOLEidxzzz2MHj26115YTttKKamrq2PRokW0tLS4vz/++OP56KOPqK+vZ+LEiWzbtg3DMBgzZgzTpk3rFY3d0dDQwMKFCzvEsUycOJEPPviALVu2cOKJJ7Jp0yYMw6CsrIzf//73nH322UXJOmgYBq+99hrJZNJt88rKSqqrq1mwYAHV1dUMGDCAhoYGYrEYP//5z4tSi8CZF9ra2njppZdobW11f1dVVUW/fv1YtGgRgwYNorKykl27dgFwyy23cPXVV1NWVtarWsF+6S9evJjPPvvM/Z2iKEyePJknn3wSIQSnnXaaG5R57bXXMmTIkF7T2VmzlJL333+fF198sUPfPffcc5k3bx7pdJozzzyT2tpaACZMmMB9993HhAkTAmNgPwjyDPSAE1izcOFC3n33XSzLIhqNcuONN1JfX89bb73FEUccwRNPPMH48ePJ5XLMmDGjwwuqNzullJLm5mYeeOABKioqeP/997n99tvp378/CxYsoF+/fvzf//0f8XicpqYmrrrqKo488siiaHXIZDI8/PDDhMNhPvzwQ6688kqOOeYYlixZgmEYrFq1ioaGBhRF4Zxzztkj13hvaXYmp1dffZWPPvoIRVFQFIXrr7+ejRs38t577zFo0CD+8pe/MHr0aHRd50c/+lEHfcVoXyklL774Ir/5zW/44x//SE1NDevXr2fZsmVUVVUxf/58Ro0aRTQa5Yc//OEeGnu7/27bto0rr7yS6dOnM23aNJqbm3nppZcYO3YsDz30EGPHjmXr1q3cfPPNxOPxouh0tK5Zs4Y5c+YwefJkTjnlFDRNo6mpiZdffpmxY8fy4IMPMn78eFdv573s3uy7bW1t/O53v2PYsGFMnTqVRCJBLpfjjTfeIBaLubEX6XSayy67rENK52L126VLl7JgwQK+973v0b9/fxRFYenSpTQ3N1NXV0ddXR2xWIyTTz6Z0047rehjze8EAYRd4ERYW5aFpmlEIhFuuOEG2tvbufPOOzFNk9raWiZNmsTw4cMZPnw4DQ0N1NTU9HrGK+cllc1mCYVCpNNpzj//fMaNG0cmk2Hr1q3uGdzx48czYcIE1q5dS//+/amurgZ6f8IH2wgIhUIIIZgyZQoVFRWsW7eO9957j379+rFz507OOussTj31VD799FNisdhBSS+6P3qd3BGaplFTU8Opp57Kiy++yKJFi1i3bh2rV6/m5JNP5rDDDuPII4+kqamJmpqaXs/WVrgCFEK4K+Z0Os20adN47LHHuPnmm6mtreWkk05i6NCh1NTU0NLS4uqF3n1JWZbVIUgtnU5zwQUXsGDBAk499VQ2bdrEyJEjGTNmDDNnzmTDhg2MGDGCeDxelLYt1OtsB2zcuJGXXnqJ0047jfLyclfvrFmz2LBhAyNHjnQNgd42XrPZLLquo+s6DQ0NDB8+nHvuuYd+/fpx/vnnk8lkOOWUUzjhhBNYu3YtlZWVDB48uFe1Onqh47ywcuVKhgwZwqOPPkpjYyPTpk1j8+bNnHnmmZx55pmsW7cOXdcZPny4bzIjehoZIKWU0rIsaVmWlFLKlpYWefvtt8sHHnhAGoYhLcuSpmnKjz/+WP7617+WuVxO5nI59/pi6rUsS7755pvyqquukps2bZKmabr/3HrrrXLTpk0yk8lI0zSLprWz3lWrVsnp06fL2tpa92crV66Ur776qnzkkUfkvffe67Z7MbVKKWVjY6O85ZZb5OzZs6VpmtKyLNnU1CSfe+45uXDhQnnNNdfItrY2z/SFL774Qt58881y7ty5rt7HH39cLlu2TH73u9+VN998s2xvb3d/V0ytuVxOzp07V/7bv/2bbG9vl5ZlyY8//lg+8cQT8t5775XnnXee3LBhQ1HbtlBzNpuVc+bMkT/96U9lOp2WhmHIuXPnytdff13W1dXJq6++WtbX13uibS3Lku+995688sor3Tb84IMP5MMPPyy3bt0q7777bvncc88VdV4oHGeWZck1a9bIH/7wh3Lp0qXSsiy5aNEi+U//9E9yzZo1csmSJfLmm28u+rz7VSaIGWC3VZrNZjFNk507d3L00UezYsUK1q1bB9hWcm1tLdXV1cyePZsNGzYUTauUdkazbDaLZVns2LGDM844g7lz57rHwZLJJC0tLXzyySc8/fTTRct74Oi1LItMJuPuuV900UU8+uijZDIZAMaMGcMZZ5zBYYcdhqqqvR68VqgX7BWKaZps376dk046ibfeeotNmzYBUFpaykUXXcTIkSN7fYXaWWuhXsuy2Lp1K6eccgoLFixg8+bNgH0E9oknnuDss8/GNE1UVS2a6xdsz4VhGKRSKUKhEKWlpbz22muuF+a1115D1/Wil4912tfR297eTjQaJRqN8vrrr6MoCt///vc5/fTTKS8vdwNai9m2lmWRzWbdOKdzzjmH2bNnuydxfvjDH1JVVUVVVVVRj446eqWU7qkVZ16YPXs2qVSKE044gQkTJlBbW4sQglgsVrR5oS8QbBNgd8jXX3+dRYsWoSgKM2bM4MILL6SiooLHHnuM22+/HUVRWL16NW1tbVxxxRWMGDGiaHobGxt55JFH2L59O2eddRZTp04lm83y85//nFWrVjF27Fi2b9/O+vXr2blzJ1OnTi1qPfpUKsXs2bP5/PPPOfroo7n00ksRQvDhhx/yxhtvcNZZZ9HW1saf/vQnpJRcccUVQHH2/SzL4qWXXmLx4sVEIhF+8pOfUFNTg67rzJkzh1tuuQUhBC+88AK1tbX867/+K9FotNd1Fup98cUXWbx4MfF4nOuuu45Ro0ahKAp/+tOf+Pd//3c370FlZSXNzc3oul60l8Ann3zCM888Q1tbG1dddRWXXnopW7Zs4bbbbuOUU05h5MiR/OIXv2Do0KG0tbUV/cz46tWrefrpp90jxN/+9rc56aSTuP322znppJMoLS1l5cqVPPfcc5x77rlFrezX0tLCo48+6hqEF1xwAYZhcMstt7B8+XKOP/54mpqamDNnDolEgsmTJ/e6xkIymQxz585l3bp1jBo1iu9973tomsbq1at55ZVXuPDCC7n11lt5+umn2bZtmxuDE2wHHCJ60QvhGRz3lONOT6VS8qabbpK7du2Szz//vPyP//gPmclkZDqdlj//+c/lgw8+KN944w25Y8cOmUqletVN1VmraZry+eefl/PmzZM7d+6U1113nVy5cqU0TVO+//778tprr5VPPfWU3Llzp9yxY0dRXJad9S5btkzec889sqmpSd58883ytddek6Zpyg0bNsjp06fLJ554QtbX18tdu3a5bsDe0ty5fVtbW+VNN90kGxsb5TPPPCNnzZols9msbG9vlzfccIN89NFH5eLFi2VjY6NMp9NFcwcX6r3xxhtlc3OzfOqpp+Rdd90lc7mcTKVScsaMGfLRRx+V7777btH6QaFWwzDknXfeKT/66CO5atUqec0118iGhgZpGIZ87LHH5C9/+Us5f/78Dn2g2H33jjvukKtWrZIfffSRvOaaa2RTU5M0TVM+/PDD8o477pDz58+Xzc3NsqWlxW3j3tDc1bzwj3/8Qz7yyCOyoaFBXn/99fL999+XhmG42p988km5c+dOt82L3barV6+Ws2bNki0tLfK2226Tzz//vLQsS27evNmdF+rq6tzri9Ef+hJ90ucipWTjxo3cf//9PPDAA66bqrGxkcmTJ5NKpfj000/JZDLE43EMw2DcuHFUVVURiUR63TLNZDK88MILzJw5k/fff5+KigrWr19PWVkZV155JX/+85+xLIu2tjY0TWPUqFFUVFS4Ebi9HQhkmiaLFi3izjvv5NVXXyWRSFBfX08kEuFf/uVfmD9/PoZh0NraSklJCUOGDKF///5UVlaiaVqvWv9SSj777DPuu+8+HnroIQzDIJfL0drayoUXXsi2bduoq6sjlUqRSCSQUjJ69GjKysoIh8O93raWZbF27VruvfdeHnnkEXe7qLW1lalTp1JfX8+WLVtcvUIIjjrqqF7T2JnGxkbmzp3Lr371KzZv3kxZWRkbN25k1KhRnHjiibz22mtugGs2m+XYY491tzGKEYDZ2NjInDlzuPvuu9m6dSulpaXU1dUxevRojj/+eF5//XXXvZ7L5Tj++OMpKSmhpKTEHWu9pTmbzfLKK68wa9Ys3n77bcrLy9m4cSOlpaVcc8017vZgW1sb4XCYkSNHUl5eTmVlZa9vFTnzwjvvvMNdd93FCy+8QCwWY+vWre7Jm7///e9kMhlaW1tJJBIMGDCAAQMGIITo9bbti/RJY6C5udndQ21vb2fJkiVMmTKFOXPmIKXkmGOOYdOmTWiaxo9+9COuvfZaysvLi6b373//O+l0mqlTp/LYY48xZswYNm3axKpVqzjqqKNobW3FNE2+9rWv8atf/Ypjjz22qHtrb7/9Np9++imXXnopzzzzDOXl5USjURYtWsTgwYPRdZ10Os3gwYO58847Of3004uWCnnXrl38+c9/ZsqUKWzdupXa2lrOOuss/vSnP6EoCuPGjWPz5s2EQiFmzJjBD37wA0pLS4uiFWD79u0888wzXHDBBW4fOPPMM3n88cdRVZUxY8awZcsWIpEIN954I1dddZVrFPQ2pmkyZ84campqGDduHPPmzePcc8/lr3/9K42NjZx44ols3LgRIQRnnXUWt956a1HTNudyOWbPns1RRx3FqFGjmDdvHlOmTOF//ud/aGpqYuLEia7ec889l//8z/9k6NChRXtBvfrqqzQ0NHDJJZcwd+5cRowYQXNzMx988AFHHnkk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", "text/plain": [ "
" ] @@ -630,15 +695,23 @@ "text": [ "\u001b[33mFigure Creator~\u001b[0m (to User):\n", "\n", - "result.jpg\n", + "tmp/result.jpg\n", "\n", "--------------------------------------------------------------------------------\n" ] + }, + { + "data": { + "text/plain": [ + "ChatResult(chat_id=None, chat_history=[{'content': '\\nPlot a figure by using the data from:\\nhttps://raw.githubusercontent.com/vega/vega/main/docs/data/seattle-weather.csv\\n\\nI want to show both temperature high and low.\\n', 'role': 'assistant'}, {'content': 'tmp/result.jpg', 'role': 'user'}], summary='tmp/result.jpg', cost=({'total_cost': 0}, {'total_cost': 0}), human_input=[])" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" } ], "source": [ - "\n", - "\n", "creator = FigureCreator(name=\"Figure Creator~\", llm_config=gpt4_llm_config)\n", "\n", "user_proxy = autogen.UserProxyAgent(\n", @@ -656,36 +729,19 @@ ")" ] }, - { - "cell_type": "code", - "execution_count": 8, - "id": "f0a58827", - "metadata": {}, - "outputs": [], - "source": [ - "if os.path.exists(\"result.jpg\"):\n", - " os.remove(\"result.jpg\") # clean up" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "c6206648", - "metadata": {}, - "outputs": [], - "source": [] - }, { "cell_type": "markdown", "id": "a95d87c2", "metadata": {}, "source": [ - "## Group Chat Example with Multimodal Agent" + "## Vision Capability: Group Chat Example with Multimodal Agent\n", + "\n", + "We recommend using VisionCapability for group chat managers so that it can organize and understand images better." ] }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 8, "id": "56bd5742", "metadata": { "scrolled": false @@ -697,7 +753,7 @@ "text": [ "\u001b[33mUser_proxy\u001b[0m (to chat_manager):\n", "\n", - "Describe the image:\n", + "Write a poet for my image:\n", " .\n", "\n", "--------------------------------------------------------------------------------\n", @@ -705,14 +761,51 @@ ">>>>>>>> USING AUTO REPLY...\u001b[0m\n", "\u001b[33mimage-explainer-1\u001b[0m (to chat_manager):\n", "\n", - "In the soft embrace of a quiet room, a curly-haired sentinel of joy rests upon the floor—a puppy, with fur the color of sunlit autumn leaves. Its innocent eyes, deep and dark as a twilight sky, gaze into the world with wonder and gentle curiosity. Adorned with a collar that boasts a bright, mosaic-like pattern, the young canine wears a name tag shaped like a heart, whispering the promise of unconditional love and companionship. In the background, a pair of black boots stands sentinel, hinting at the return of a beloved owner, while the puppy waits, the embodiment of warmth and affection in an often too brisk world.\n", + "In a cozy nook by the door, where whispers of adventure pour,\n", + "Lies a curly apricot dream, with eyes that softly gleam.\n", + "Westphal, a name upon his tag, a dapper bow, no room to brag.\n", + "\n", + "A poodle or a mix so sweet, with paws that barely seem to meet\n", + "The floor that holds his tender frame, in this quiet household game.\n", + "A sentinel of love and joy, more charming than any toy.\n", + "\n", + "His gaze, a tale of gentle days, and love that in his heart blazes.\n", + "With boots behind, like silent guards, he watches without regards\n", + "To the world's rush and its tides, in his serene abode, he abides.\n", + "\n", + "Oh, little guardian of the hearth, your worth is not defined by birth.\n", + "But by the joy you bring to life, a respite from our daily strife.\n", + "In you, we find a friend so true, Westphal, a treasure through and through.\n", "\n", "--------------------------------------------------------------------------------\n", "\u001b[31m\n", ">>>>>>>> USING AUTO REPLY...\u001b[0m\n", - "\u001b[33mUser_proxy\u001b[0m (to chat_manager):\n", + "\u001b[33mimage-explainer-2\u001b[0m (to chat_manager):\n", + "\n", + "A pup so young with fur of gold,\n", + "In a house where stories unfold.\n", + "Westphal, with your bow so neat,\n", + "Your puppy eyes, oh so sweet.\n", "\n", + "Curled up on the floor so light,\n", + "Your coat a soft, delightful sight.\n", + "A mix, perhaps, of breeds so kind,\n", + "In your face, pure joy we find.\n", "\n", + "With a tag that jingles slight,\n", + "And a bow tie oh so bright,\n", + "You lie there with such grace,\n", + "A calm presence in this place.\n", + "\n", + "Behind you, boots await the rain,\n", + "But inside, you contently remain.\n", + "A symbol of love, a furry delight,\n", + "A beacon of warmth, shining so bright.\n", + "\n", + "In a world that's fast and vast,\n", + "Your gentle spirit holds us fast.\n", + "Westphal, with your charm so grand,\n", + "You bring peace to this human land.\n", "\n", "--------------------------------------------------------------------------------\n", "\u001b[31m\n", @@ -748,7 +841,7 @@ "\n", "user_proxy = autogen.UserProxyAgent(\n", " name=\"User_proxy\",\n", - " system_message=\"Ask both image explainer 1 and 2 for their description.\",\n", + " system_message=\"Desribe image for me.\",\n", " human_input_mode=\"TERMINATE\", # Try between ALWAYS, NEVER, and TERMINATE\n", " max_consecutive_auto_reply=10,\n", " code_execution_config={\n", @@ -758,65 +851,299 @@ "\n", "# We set max_round to 5\n", "groupchat = autogen.GroupChat(agents=[agent1, agent2, user_proxy], messages=[], max_round=5)\n", + "\n", + "vision_capability = VisionCapability(lmm_config={\"config_list\": config_list_4v, \"temperature\": 0.5, \"max_tokens\": 300})\n", "group_chat_manager = autogen.GroupChatManager(groupchat=groupchat, llm_config=gpt4_llm_config)\n", + "vision_capability.add_to_agent(group_chat_manager)\n", "\n", - "user_proxy.initiate_chat(\n", + "rst = user_proxy.initiate_chat(\n", " group_chat_manager,\n", - " message=\"\"\"Describe the image:\n", + " message=\"\"\"Write a poet for my image:\n", " .\"\"\",\n", ")" ] }, + { + "cell_type": "markdown", + "id": "d69b6c81", + "metadata": {}, + "source": [ + "## Behavior with and without VisionCapability for Agents\n", + "\n", + "\n", + "Here, we show the behavior of an agent with and without VisionCapability. We use the same image and question as in the previous example." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "aae1167f", + "metadata": {}, + "outputs": [], + "source": [ + "agent_no_vision = AssistantAgent(name=\"Regular LLM Agent\", llm_config=gpt4_llm_config)\n", + "\n", + "agent_with_vision = AssistantAgent(name=\"Regular LLM Agent with Vision Capability\", llm_config=gpt4_llm_config)\n", + "vision_capability = VisionCapability(lmm_config={\"config_list\": config_list_4v, \"temperature\": 0.5, \"max_tokens\": 300})\n", + "vision_capability.add_to_agent(agent_with_vision)\n", + "\n", + "\n", + "user = UserProxyAgent(\n", + " name=\"User\",\n", + " human_input_mode=\"NEVER\",\n", + " max_consecutive_auto_reply=0,\n", + " code_execution_config={\"use_docker\": False},\n", + ")\n", + "\n", + "message = \"\"\"Write a poet for my image:\n", + " .\"\"\"" + ] + }, { "cell_type": "code", "execution_count": 10, - "id": "00bd473d", + "id": "c9e81b7e", "metadata": {}, "outputs": [ { - "data": { - "text/plain": [ - "defaultdict(list,\n", - " {: [{'content': [{'type': 'text',\n", - " 'text': 'Describe the image:\\n '},\n", - " {'type': 'image_url',\n", - " 'image_url': {'url': }},\n", - " {'type': 'text', 'text': '.'}],\n", - " 'name': 'User_proxy',\n", - " 'role': 'user'},\n", - " {'content': [{'type': 'text',\n", - " 'text': 'In the soft embrace of a quiet room, a curly-haired sentinel of joy rests upon the floor—a puppy, with fur the color of sunlit autumn leaves. Its innocent eyes, deep and dark as a twilight sky, gaze into the world with wonder and gentle curiosity. Adorned with a collar that boasts a bright, mosaic-like pattern, the young canine wears a name tag shaped like a heart, whispering the promise of unconditional love and companionship. In the background, a pair of black boots stands sentinel, hinting at the return of a beloved owner, while the puppy waits, the embodiment of warmth and affection in an often too brisk world.'}],\n", - " 'role': 'assistant'},\n", - " {'content': [{'type': 'text', 'text': ''}],\n", - " 'name': 'User_proxy',\n", - " 'role': 'user'},\n", - " {'content': [{'type': 'text', 'text': ''}],\n", - " 'name': 'User_proxy',\n", - " 'role': 'user'},\n", - " {'content': [{'type': 'text', 'text': ''}],\n", - " 'name': 'User_proxy',\n", - " 'role': 'user'}]})" - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[33mUser\u001b[0m (to Regular LLM Agent):\n", + "\n", + "Write a poet for my image:\n", + " .\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33mRegular LLM Agent\u001b[0m (to User):\n", + "\n", + "As an AI, I can't directly view images or web content. However, I can help you generate a poem by gathering information about the image. Please describe the image for me, including details such as the setting, prominent colors, the mood it evokes, and any specific elements like animals, nature, cityscapes, or people that you want to be highlighted in the poem. Once you provide a description of the image, I can compose a poem based on that description.\n", + "\n", + "--------------------------------------------------------------------------------\n" + ] } ], "source": [ - "agent1._oai_messages" + "user.send(message=message, recipient=agent_no_vision, request_reply=True)" ] }, { "cell_type": "code", - "execution_count": null, - "id": "39d293fb", + "execution_count": 11, + "id": "8720820f", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[33mUser\u001b[0m (to Regular LLM Agent with Vision Capability):\n", + "\n", + "Write a poet for my image:\n", + " .\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33mRegular LLM Agent with Vision Capability\u001b[0m (to User):\n", + "\n", + "In apricot hues, a curl-coated pup reclines,\n", + "With Westphal's name upon his tag that shines.\n", + "A bow tie blooms in a brilliant blue sky,\n", + "Amid a light-drenched floor where soft paws lie.\n", + "\n", + "Possessor of gazes, tender and deep,\n", + "In the quiet foyer, his watch he keeps.\n", + "Beneath black rubber guards of rainy days,\n", + "He stirs a comfort, a homely embrace.\n", + "\n", + "His lineage drawn from the poodles' grace,\n", + "Or maybe a mix, with a doodle's face,\n", + "Gold or Lab, his curls are just as sweet,\n", + "In each bouncing step, in each heartbeat.\n", + "\n", + "A picture of love, in a tiny frame,\n", + "A heartbeat wrapped in an apricot mane.\n", + "The pup in his calm, an invite to cheer,\n", + "A whisper of joy in a pet-lover's ear.\n", + "\n", + "Around him, life's simple clutter does unfold,\n", + "Yet untouched by worry, untouched by cold.\n", + "With every breath, he claims this slice of earth,\n", + "A master of mirth, from the moment of his birth.\n", + "\n", + "Paws outstretched on the soft, forgiving ground,\n", + "His soulful eyes speak, without a sound.\n", + "For in the sweet stillness of his gentle rest,\n", + "Lies the simple truth that we are blessed.\n", + "\n", + "TERMINATE\n", + "\n", + "--------------------------------------------------------------------------------\n" + ] + } + ], + "source": [ + "user.send(message=message, recipient=agent_with_vision, request_reply=True)" + ] + }, + { + "cell_type": "markdown", + "id": "ba4d3753", + "metadata": {}, + "source": [ + "## Custom Caption Function for Vision Capability\n", + "\n", + "In many use cases, we can use a custom function within the Vision Capability to transcribe an image into a caption.\n", + "\n", + "For instance, we can use rule-based algorithm or other models to detect the color, box, and other components inside the image.\n", + "\n", + "The custom model should take a path to the image and return a string caption.\n", + "\n", + "In the example below, the Vision Capability will call LMM to get caption and also call the custom function to get more information." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "bff55c81", "metadata": {}, "outputs": [], - "source": [] + "source": [ + "def my_description(image_url: str, image_data: Image = None, lmm_client: object = None) -> str:\n", + " \"\"\"\n", + " This function takes an image URL and returns the description.\n", + "\n", + " Parameters:\n", + " - image_url (str): The URL of the image.\n", + " - image_data (PIL.Image): The image data.\n", + " - lmm_client (object): The LLM client object.\n", + "\n", + " Returns:\n", + " - str: A description of the color of the image.\n", + " \"\"\"\n", + " # Print the arguments for illustration purpose\n", + " print(\"image_url\", image_url)\n", + " print(\"image_data\", image_data)\n", + " print(\"lmm_client\", lmm_client)\n", + "\n", + " img_uri = pil_to_data_uri(image_data) # cast data into URI (str) format for API call\n", + " lmm_out = lmm_client.create(\n", + " context=None,\n", + " messages=[\n", + " {\n", + " \"role\": \"user\",\n", + " \"content\": [\n", + " {\"type\": \"text\", \"text\": \"Describe this image in 10 words.\"},\n", + " {\n", + " \"type\": \"image_url\",\n", + " \"image_url\": {\n", + " \"url\": img_uri,\n", + " },\n", + " },\n", + " ],\n", + " }\n", + " ],\n", + " )\n", + " description = lmm_out.choices[0].message.content\n", + " description = content_str(description)\n", + "\n", + " # Convert the image into an array of pixels.\n", + " pixels = np.array(image_data)\n", + "\n", + " # Calculate the average color.\n", + " avg_color_per_row = np.mean(pixels, axis=0)\n", + " avg_color = np.mean(avg_color_per_row, axis=0)\n", + " avg_color = avg_color.astype(int) # Convert to integer for color values\n", + "\n", + " # Format the average color as a string description.\n", + " caption = f\"\"\"The image is from {image_url}\n", + " It is about: {description}\n", + " The average color of the image is RGB:\n", + " ({avg_color[0]}, {avg_color[1]}, {avg_color[2]})\"\"\"\n", + "\n", + " print(caption) # For illustration purpose\n", + "\n", + " return caption" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "cbafea62", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[33mUser\u001b[0m (to Regular LLM Agent with Custom Func and LMM):\n", + "\n", + "Write a poet for my image:\n", + " .\n", + "\n", + "--------------------------------------------------------------------------------\n", + "image_url https://th.bing.com/th/id/R.422068ce8af4e15b0634fe2540adea7a?rik=y4OcXBE%2fqutDOw&pid=ImgRaw&r=0\n", + "image_data \n", + "lmm_client \n", + "The image is from https://th.bing.com/th/id/R.422068ce8af4e15b0634fe2540adea7a?rik=y4OcXBE%2fqutDOw&pid=ImgRaw&r=0\n", + " It is about: Cute brown curly-haired puppy with blue collar indoors.\n", + " The average color of the image is RGB: \n", + " (170, 155, 137)\n", + "\u001b[33mRegular LLM Agent with Custom Func and LMM\u001b[0m (to User):\n", + "\n", + "Beneath a sky of homely hue,\n", + "Where RGB blends a gentle stew,\n", + "Lies a pup of curls and capers,\n", + "Bound by blue, his neck in drapers.\n", + "\n", + "Soft in gaze, his eyes implore,\n", + "Warming hearts down to the core,\n", + "Coat of brown, with tangles sweet,\n", + "Whispers of play in each petite feet.\n", + "\n", + "In a world quite vast and wide,\n", + "Indoors he sits, with pride inside.\n", + "A silent wish, a breath, a start,\n", + "Curly companion, a work of art.\n", + "\n", + "Within the frame, he's captured still,\n", + "Yet, through the lens, his charm does spill.\n", + "A tiny heartbeat in the quiet room,\n", + "His presence banishes all gloom.\n", + "\n", + "A puppy's joy, in sepia tone,\n", + "With collar blue, he reigns alone.\n", + "A picture's worth, this moment's glee,\n", + "Cute curly friend, for all to see.\n", + "\n", + "This poem encapsulates the essence of the cute brown curly-haired puppy wearing a blue collar, blending an emotional portrayal with the aesthetic elements you provided.\n", + "\n", + "--------------------------------------------------------------------------------\n" + ] + } + ], + "source": [ + "agent_with_vision_and_func = AssistantAgent(\n", + " name=\"Regular LLM Agent with Custom Func and LMM\", llm_config=gpt4_llm_config\n", + ")\n", + "\n", + "vision_capability_with_func = VisionCapability(\n", + " lmm_config={\"config_list\": config_list_4v, \"temperature\": 0.5, \"max_tokens\": 300},\n", + " custom_caption_func=my_description,\n", + ")\n", + "vision_capability_with_func.add_to_agent(agent_with_vision_and_func)\n", + "\n", + "user.send(message=message, recipient=agent_with_vision_and_func, request_reply=True)" + ] } ], "metadata": { + "front_matter": { + "description": "In AutoGen, leveraging multimodal models can be done through two different methodologies: MultimodalConversableAgent and VisionCapability.", + "tags": [ + "multimodal", + "gpt-4v" + ] + }, "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", diff --git a/notebook/agentchat_logging.ipynb b/notebook/agentchat_logging.ipynb index 5d8a824e9e4a..c06a8fd743b6 100644 --- a/notebook/agentchat_logging.ipynb +++ b/notebook/agentchat_logging.ipynb @@ -4,12 +4,6 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "\n", - "\n", "# Runtime Logging with AutoGen \n", "\n", "AutoGen offers utilities to log data for debugging and performance analysis. This notebook demonstrates how to use them. \n", @@ -294,6 +288,13 @@ } ], "metadata": { + "front_matter": { + "description": "Provide capabilities of runtime logging for debugging and performance analysis.", + "tags": [ + "logging", + "debugging" + ] + }, "kernelspec": { "display_name": "autog", "language": "python", @@ -309,7 +310,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.13" + "version": "3.11.7" } }, "nbformat": 4, diff --git a/notebook/agentchat_multi_task_async_chats.ipynb b/notebook/agentchat_multi_task_async_chats.ipynb index 16b46ab16caa..091e5575a64b 100644 --- a/notebook/agentchat_multi_task_async_chats.ipynb +++ b/notebook/agentchat_multi_task_async_chats.ipynb @@ -9,12 +9,6 @@ } }, "source": [ - "\n", - "\n", "# Solving Multiple Tasks in a Sequence of Async Chats\n", "\n", "This notebook showcases how to use the new chat interface of conversational agents in AutoGen: a_initiate_chats, to conduct a series of tasks. Similar to \"notebook/agentchat_microsoft_fabric.ipynb\", this new interface allows one to pass multiple tasks and their corresponding dedicated agents and execute concurrently. Depending on the prerequisite task(s), the tasks will be solved concurrently, with the summaries from prerequisite task(s) provided to subsequent tasks as context, if the `summary_method` argument is specified.\n", @@ -33,7 +27,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -49,7 +43,7 @@ "source": [ "\\:\\:\\:tip\n", "\n", - "Learn more about the various ways to configure LLM endpoints [here](/docs/llm_configuration).\n", + "Learn more about the various ways to configure LLM endpoints [here](/docs/topics/llm_configuration).\n", "\n", "\\:\\:\\:" ] @@ -65,7 +59,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -95,7 +89,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ @@ -121,7 +115,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 4, "metadata": {}, "outputs": [ { @@ -130,10 +124,12 @@ "text": [ "\u001b[34m\n", "********************************************************************************\u001b[0m\n", - "\u001b[34mStart a new chat with the following message: \n", + "\u001b[34mStarting a new chat....\n", + "\n", + "Message:\n", "What are the current stock prices of NVDA and TESLA, and how is the performance over the past month in terms of percentage change?\n", "\n", - "With the following carryover: \n", + "Carryover: \n", "\u001b[0m\n", "\u001b[34m\n", "********************************************************************************\u001b[0m\n", @@ -144,99 +140,82 @@ "--------------------------------------------------------------------------------\n", "\u001b[33mFinancial_assistant\u001b[0m (to User):\n", "\n", - "To fetch live stock data, we can make use of the \"yfinance\" library in Python, which allows us to download stock data from Yahoo Finance.\n", - "\n", - "Install \"yfinance\" by executing the following Python code:\n", + "To obtain current stock prices of NVDA (NVIDIA Corporation) and TSLA (Tesla, Inc.), and calculate their performance over the past month in terms of percentage change, we can use the Yahoo Finance API through the `yfinance` Python package. This process involves the following steps:\n", "\n", - "```python\n", - "!pip install yfinance\n", - "```\n", + "1. Install the `yfinance` package (if not already installed).\n", + "2. Use `yfinance` to fetch the current stock prices of NVDA and TSLA.\n", + "3. Fetch historical data for the past month for both stocks.\n", + "4. Calculate the percentage change in the stock prices over the last month based on the historical data.\n", "\n", - "Then, get the current stock prices and compute the performance over the past month using the following code:\n", + "Please execute the following Python code to perform these tasks:\n", "\n", "```python\n", + "# filename: stock_info.py\n", "import yfinance as yf\n", "from datetime import datetime, timedelta\n", "\n", - "# Define the ticker symbols\n", - "tickers = ['NVDA', 'TSLA']\n", - "\n", - "# Get today's date\n", - "today = datetime.today().strftime('%Y-%m-%d')\n", - "\n", - "# Get the date one month ago\n", - "one_month_ago = (datetime.today() - timedelta(days=30)).strftime('%Y-%m-%d')\n", - "\n", - "# Initialize a dictionary to store the data\n", - "data = {}\n", - "\n", - "# Loop through the ticker symbols\n", - "for ticker in tickers:\n", - " # Get the historical data for the past month\n", - " historical_data = yf.download(ticker, start=one_month_ago, end=today)\n", - "\n", - " # Get the most recent data (today's data)\n", - " today_data = historical_data.tail(1)\n", - "\n", - " # Get the earliest data (one month ago's data)\n", - " one_month_ago_data = historical_data.head(1)\n", - "\n", - " # Calculate the percentage change over the past month\n", - " percentage_change = ((today_data['Close'].iloc[0] - one_month_ago_data['Close'].iloc[0]) / one_month_ago_data['Close'].iloc[0]) * 100\n", + "def stock_performance(ticker):\n", + " # Fetching data for the past month\n", + " end_date = datetime.today()\n", + " start_date = end_date - timedelta(days=30) # Approximate for the past month\n", + " \n", + " # Fetch historical data\n", + " data = yf.download(ticker, start=start_date, end=end_date)\n", + " \n", + " # Current and beginning of month prices\n", + " current_price = data['Close'].iloc[-1]\n", + " start_month_price = data['Close'].iloc[0] \n", + " \n", + " # Calculate percentage change over the month\n", + " percent_change = ((current_price - start_month_price) / start_month_price) * 100\n", + " \n", + " return current_price, percent_change\n", "\n", - " # Store the data in the dictionary\n", - " data[ticker] = {\n", - " 'Current Stock Price': today_data['Close'].iloc[0],\n", - " 'Performance Over Past Month (%)': percentage_change\n", - " }\n", + "# NVDA and TSLA stock performance\n", + "nvda_price, nvda_change = stock_performance(\"NVDA\")\n", + "tsla_price, tsla_change = stock_performance(\"TSLA\")\n", "\n", - "# Print the data\n", - "for ticker, d in data.items():\n", - " print(f\"{ticker}:\")\n", - " print(f\"\\tCurrent Stock Price: ${d['Current Stock Price']:.2f}\")\n", - " print(f\"\\tPerformance Over Past Month (%): {d['Performance Over Past Month (%)']:.2f}%\")\n", + "print(f\"NVDA (NVIDIA Corp) current price: ${nvda_price:.2f}, Performance over past month: {nvda_change:.2f}%\")\n", + "print(f\"TSLA (Tesla, Inc.) current price: ${tsla_price:.2f}, Performance over past month: {tsla_change:.2f}%\")\n", "```\n", "\n", - "This Python script retrieves the historical data for the past month for each ticker symbol, calculates the percentage change in stock price over the past month, and prints out the current stock price and the performance over the past month.\n", - "\n", - "--------------------------------------------------------------------------------\n", - "\u001b[31m\n", - ">>>>>>>> EXECUTING CODE BLOCK 0 (inferred language is python)...\u001b[0m\n", - "\u001b[33mUser\u001b[0m (to Financial_assistant):\n", - "\n", - "exitcode: 1 (execution failed)\n", - "Code output: \n", - " File \"\", line 1\n", - " !pip install yfinance\n", - " ^\n", - "SyntaxError: invalid syntax\n", - "\n", - "\n", - "--------------------------------------------------------------------------------\n", - "\u001b[33mFinancial_assistant\u001b[0m (to User):\n", - "\n", - "I apologize for the confusion. The \"!\" character is special syntax for Jupyter notebooks. If you are not using a Jupyter notebook for Python execution, the syntax will be invalid. Please replace \"!\" with the proper syntax to install a Python package. \n", - "\n", - "If you're running the code directly in a Python environment, you might need to install yfinance using pip from your shell/command line. Here's the correct command:\n", + "Before running this script, ensure that you have the `yfinance` package installed. If not, install it using the following command:\n", "\n", "```sh\n", "pip install yfinance\n", "```\n", "\n", - "After you've installed the package, you can proceed with the Python code block provided previously to fetch the data.\n", - "\n", - "Sorry for the misunderstanding, and thank you for pointing it out.\n", + "This script will output the current stock prices of NVDA and TSLA, along with their performance over the past month in percentage terms.\n", "\n", "--------------------------------------------------------------------------------\n", "\u001b[31m\n", - ">>>>>>>> EXECUTING CODE BLOCK 0 (inferred language is sh)...\u001b[0m\n", + ">>>>>>>> EXECUTING CODE BLOCK 0 (inferred language is python)...\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/workspaces/autogen/autogen/agentchat/chat.py:42: UserWarning: Repetitive recipients detected: The chat history will be cleared by default if a recipient appears more than once. To retain the chat history, please set 'clear_history=False' in the configuration of the repeating agent.\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[31m\n", + ">>>>>>>> EXECUTING CODE BLOCK 1 (inferred language is sh)...\u001b[0m\n", "\u001b[33mUser\u001b[0m (to Financial_assistant):\n", "\n", "exitcode: 0 (execution succeeded)\n", "Code output: \n", + "NVDA (NVIDIA Corp) current price: $878.37, Performance over past month: 20.97%\n", + "TSLA (Tesla, Inc.) current price: $163.57, Performance over past month: -18.19%\n", + "\n", "Defaulting to user installation because normal site-packages is not writeable\n", - "Requirement already satisfied: yfinance in /home/autogen/.local/lib/python3.11/site-packages (0.2.36)\n", - "Requirement already satisfied: pandas>=1.3.0 in /home/autogen/.local/lib/python3.11/site-packages (from yfinance) (2.2.0)\n", + "Requirement already satisfied: yfinance in /home/autogen/.local/lib/python3.11/site-packages (0.2.37)\n", + "Requirement already satisfied: pandas>=1.3.0 in /home/autogen/.local/lib/python3.11/site-packages (from yfinance) (2.2.1)\n", "Requirement already satisfied: numpy>=1.16.5 in /usr/local/lib/python3.11/site-packages (from yfinance) (1.26.4)\n", "Requirement already satisfied: requests>=2.31 in /usr/local/lib/python3.11/site-packages (from yfinance) (2.31.0)\n", "Requirement already satisfied: multitasking>=0.0.7 in /home/autogen/.local/lib/python3.11/site-packages (from yfinance) (0.0.11)\n", @@ -250,171 +229,108 @@ "Requirement already satisfied: soupsieve>1.2 in /usr/local/lib/python3.11/site-packages (from beautifulsoup4>=4.11.1->yfinance) (2.5)\n", "Requirement already satisfied: six>=1.9 in /usr/local/lib/python3.11/site-packages (from html5lib>=1.1->yfinance) (1.16.0)\n", "Requirement already satisfied: webencodings in /usr/local/lib/python3.11/site-packages (from html5lib>=1.1->yfinance) (0.5.1)\n", - "Requirement already satisfied: python-dateutil>=2.8.2 in /usr/local/lib/python3.11/site-packages (from pandas>=1.3.0->yfinance) (2.8.2)\n", + "Requirement already satisfied: python-dateutil>=2.8.2 in /usr/local/lib/python3.11/site-packages (from pandas>=1.3.0->yfinance) (2.9.0.post0)\n", "Requirement already satisfied: tzdata>=2022.7 in /home/autogen/.local/lib/python3.11/site-packages (from pandas>=1.3.0->yfinance) (2024.1)\n", "Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.11/site-packages (from requests>=2.31->yfinance) (3.3.2)\n", "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.11/site-packages (from requests>=2.31->yfinance) (3.6)\n", - "Requirement already satisfied: urllib3<3,>=1.21.1 in /home/autogen/.local/lib/python3.11/site-packages (from requests>=2.31->yfinance) (1.26.18)\n", + "Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.11/site-packages (from requests>=2.31->yfinance) (2.2.1)\n", "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.11/site-packages (from requests>=2.31->yfinance) (2024.2.2)\n", "\n", "\n", "--------------------------------------------------------------------------------\n", "\u001b[33mFinancial_assistant\u001b[0m (to User):\n", "\n", - "Great! Now that the yfinance package is properly installed, we can proceed to fetch the data.\n", + "The code execution was successful, and here are the results based on the output:\n", "\n", - "Please execute the Python code as shown below:\n", - "\n", - "```python\n", - "import yfinance as yf\n", - "from datetime import datetime, timedelta\n", - "\n", - "# Define the ticker symbols\n", - "tickers = ['NVDA', 'TSLA']\n", - "\n", - "# Get today's date\n", - "today = datetime.today().strftime('%Y-%m-%d')\n", - "\n", - "# Get the date one month ago\n", - "one_month_ago = (datetime.today() - timedelta(days=30)).strftime('%Y-%m-%d')\n", - "\n", - "# Initialize a dictionary to store the data\n", - "data = {}\n", - "\n", - "# Loop through the ticker symbols\n", - "for ticker in tickers:\n", - " # Get the historical data for the past month\n", - " historical_data = yf.download(ticker, start=one_month_ago, end=today)\n", - "\n", - " # Get the most recent data (today's data)\n", - " today_data = historical_data.tail(1)\n", - "\n", - " # Get the earliest data (one month ago's data)\n", - " one_month_ago_data = historical_data.head(1)\n", - "\n", - " # Calculate the percentage change over the past month\n", - " percentage_change = ((today_data['Close'].iloc[0] - one_month_ago_data['Close'].iloc[0]) / one_month_ago_data['Close'].iloc[0]) * 100\n", - "\n", - " # Store the data in the dictionary\n", - " data[ticker] = {\n", - " 'Current Stock Price': today_data['Close'].iloc[0],\n", - " 'Performance Over Past Month (%)': percentage_change\n", - " }\n", - "\n", - "# Print the data\n", - "for ticker, d in data.items():\n", - " print(f\"{ticker}:\")\n", - " print(f\"\\tCurrent Stock Price: ${d['Current Stock Price']:.2f}\")\n", - " print(f\"\\tPerformance Over Past Month (%): {d['Performance Over Past Month (%)']:.2f}%\")\n", - "```\n", - "\n", - "This script fetches the current stock prices for NVDA and TSLA and the performance over the past one month in terms of percentage change.\n", - "\n", - "--------------------------------------------------------------------------------\n", - "\u001b[31m\n", - ">>>>>>>> EXECUTING CODE BLOCK 0 (inferred language is python)...\u001b[0m\n", - "\u001b[33mUser\u001b[0m (to Financial_assistant):\n", - "\n", - "exitcode: 0 (execution succeeded)\n", - "Code output: \n", - "NVDA:\n", - "\tCurrent Stock Price: $726.13\n", - "\tPerformance Over Past Month (%): 21.72%\n", - "TSLA:\n", - "\tCurrent Stock Price: $199.95\n", - "\tPerformance Over Past Month (%): -4.24%\n", + "- **NVIDIA Corporation (NVDA)** has a current stock price of **$878.37**. Over the past month, NVDA has experienced a performance increase of **20.97%**.\n", + "- **Tesla, Inc. (TSLA)** has a current stock price of **$163.57**. Over the past month, TSLA has experienced a performance decrease of **-18.19%**.\n", "\n", - "\n", - "--------------------------------------------------------------------------------\n", - "\u001b[33mFinancial_assistant\u001b[0m (to User):\n", - "\n", - "Great! Here are the results:\n", - "\n", - "- NVDA: \n", - " - Current Stock Price: $726.13\n", - " - Performance Over Past Month (%): 21.72%\n", - "\n", - "- TSLA:\n", - " - Current Stock Price: $199.95\n", - " - Performance Over Past Month (%): -4.24%\n", - "\n", - "Over the past month, the stock price of NVDA increased by 21.72%, while the stock price of TSLA decreased by 4.24%.\n", - " \n", - "Please note that stock prices are subject to market changes and the output values from when you ran this script.\n", - "\n", - "If you have any other tasks or need further assistance, please feel free to ask. \n", + "These figures provide a snapshot of how both companies have performed in the stock market over the last month, reflecting growth for NVIDIA and a decline for Tesla.\n", "\n", "TERMINATE\n", "\n", "--------------------------------------------------------------------------------\n", "\u001b[34m\n", "********************************************************************************\u001b[0m\n", - "\u001b[34mStart a new chat with the following message: \n", + "\u001b[34mStarting a new chat....\n", + "\n", + "Message:\n", "Investigate possible reasons of the stock performance.\n", "\n", - "With the following carryover: \n", - "The NVDA current stock price is $726.13, and the percentage change over the past month is an increase of 21.72%. The TSLA current stock price is $199.95, with a decrease of 4.24% over the past month.\u001b[0m\n", + "Carryover: \n", + "NVIDIA Corporation (NVDA) experienced a stock price increase of 20.97% over the past month, with a current price of $878.37. Tesla, Inc. (TSLA) saw a decrease of 18.19% in the same period, with its current stock price at $163.57.\u001b[0m\n", "\u001b[34m\n", "********************************************************************************\u001b[0m\n", - "\u001b[31m\n", - ">>>>>>>> EXECUTING CODE BLOCK 0 (inferred language is Shell)...\u001b[0m\n", - "\u001b[31m\n", - ">>>>>>>> EXECUTING CODE BLOCK 0 (inferred language is python)...\u001b[0m\n", "\u001b[34m\n", "********************************************************************************\u001b[0m\n", - "\u001b[34mStart a new chat with the following message: \n", + "\u001b[34mStarting a new chat....\n", + "\n", + "Message:\n", "Plot a graph comparing the stock prices over the past month.\n", "\n", - "With the following carryover: \n", - "The NVDA current stock price is $726.13, and the percentage change over the past month is an increase of 21.72%. The TSLA current stock price is $199.95, with a decrease of 4.24% over the past month.\u001b[0m\n", + "Carryover: \n", + "NVIDIA Corporation (NVDA) experienced a stock price increase of 20.97% over the past month, with a current price of $878.37. Tesla, Inc. (TSLA) saw a decrease of 18.19% in the same period, with its current stock price at $163.57.\u001b[0m\n", "\u001b[34m\n", "********************************************************************************\u001b[0m\n", + "\u001b[33mUser\u001b[0m (to Researcher):\n", + "\n", + "Investigate possible reasons of the stock performance.\n", + "Context: \n", + "NVIDIA Corporation (NVDA) experienced a stock price increase of 20.97% over the past month, with a current price of $878.37. Tesla, Inc. (TSLA) saw a decrease of 18.19% in the same period, with its current stock price at $163.57.\n", + "\n", + "--------------------------------------------------------------------------------\n", "\u001b[33mUser\u001b[0m (to Financial_assistant):\n", "\n", "Plot a graph comparing the stock prices over the past month.\n", "Context: \n", - "The NVDA current stock price is $726.13, and the percentage change over the past month is an increase of 21.72%. The TSLA current stock price is $199.95, with a decrease of 4.24% over the past month.\n", + "NVIDIA Corporation (NVDA) experienced a stock price increase of 20.97% over the past month, with a current price of $878.37. Tesla, Inc. (TSLA) saw a decrease of 18.19% in the same period, with its current stock price at $163.57.\n", "\n", "--------------------------------------------------------------------------------\n", "\u001b[33mFinancial_assistant\u001b[0m (to User):\n", "\n", - "To complete this task, we need historical stock price data for NVDA and TSLA for the past month. However, as I cannot browse the web or fetch live data directly, let's simulate this by inferring the past month's data based on the provided information.\n", + "To compare the stock prices of NVIDIA Corporation (NVDA) and Tesla, Inc. (TSLA) over the past month, we can calculate their stock prices over this period based on the provided current prices and their percentage changes. Then, we can plot these calculated prices on a graph to visually compare the trends. \n", "\n", - "We have the current stock price and the percentage change for NVDA and TSLA over the past month. We can calculate the stock price one month ago by reversing the percentage change calculation. \n", + "Let's proceed as follows:\n", "\n", - "Let's also assume for the sake of this task that the stock prices changed linearly over the past month. In reality, stock prices fluctuate daily, so the graph would be more complex, but we can't recreate those fluctuations with just two data points. \n", + "1. Calculate the stock price 30 days ago for both companies based on the current price and the given percentage change.\n", + "2. Generate a list of stock prices from 30 days ago to the current date for both companies, assuming a linear trend for simplicity. \n", + "3. Plot these lists against the dates of the past month.\n", "\n", - "We can use the `matplotlib` library in Python to plot this data. Please execute the following Python code:\n", + "I'll start by calculating the stock price 30 days ago for both companies and generating the lists of stock prices. \n", "\n", "```python\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "\n", - "# Current prices and percentage changes\n", - "NVDA_current_price = 726.13\n", - "NVDA_change_pct = 21.72\n", - "TSLA_current_price = 199.95\n", - "TSLA_change_pct = -4.24\n", + "# Constants\n", + "current_price_nvda = 878.37\n", + "change_percent_nvda = 20.97\n", + "current_price_tsla = 163.57\n", + "change_percent_tsla = -18.19\n", "\n", - "# Calculate prices one month ago\n", - "NVDA_price_month_ago = NVDA_current_price / (1 + NVDA_change_pct/100)\n", - "TSLA_price_month_ago = TSLA_current_price / (1 - TSLA_change_pct/100)\n", + "# Calculate the price 30 days ago based on the current price and percentage change\n", + "price_30_days_ago_nvda = current_price_nvda / (1 + change_percent_nvda / 100)\n", + "price_30_days_ago_tsla = current_price_tsla / (1 + change_percent_tsla / 100)\n", "\n", - "# Create arrays for plotting\n", - "dates = np.array(['One month ago', 'Today'])\n", - "NVDA_prices = np.array([NVDA_price_month_ago, NVDA_current_price])\n", - "TSLA_prices = np.array([TSLA_price_month_ago, TSLA_current_price])\n", + "# Generate the dates and stock prices for the past 30 days\n", + "dates = np.arange(-29, 1, 1) # Day -29 to 0, representing the past 30 days\n", + "prices_nvda = np.linspace(price_30_days_ago_nvda, current_price_nvda, 30)\n", + "prices_tsla = np.linspace(price_30_days_ago_tsla, current_price_tsla, 30)\n", "\n", "# Plotting\n", - "plt.plot(dates, NVDA_prices, label='NVDA')\n", - "plt.plot(dates, TSLA_prices, label='TSLA')\n", + "plt.figure(figsize=(10, 6))\n", + "plt.plot(dates, prices_nvda, label=\"NVIDIA (NVDA)\")\n", + "plt.plot(dates, prices_tsla, label=\"Tesla (TSLA)\")\n", + "\n", + "plt.title(\"Stock Price Comparison Over the Past Month\")\n", + "plt.xlabel(\"Days Ago\")\n", + "plt.ylabel(\"Price ($)\")\n", "plt.legend()\n", - "plt.ylabel('Stock price')\n", - "plt.title('Stock prices over the past month')\n", + "plt.grid(True)\n", "plt.show()\n", "```\n", "\n", - "This script plots the \"past\" and current stock prices for NVDA and TSLA. It creates a line graph with the date on the x-axis and the stock price on the y-axis. It also adds a title to the graph and a legend indicating which line corresponds to which stock.\n", + "This code snippet calculates the stock prices for NVDA and TSLA 30 days ago using the provided current prices and percentage changes. It then generates a linear progression of prices over the last month and plots the comparison. Execute this Python script to view the comparison graph.\n", "\n", "--------------------------------------------------------------------------------\n", "\u001b[31m\n", @@ -423,64 +339,152 @@ "\n", "exitcode: 0 (execution succeeded)\n", "Code output: \n", - "Figure(640x480)\n", + "Figure(1000x600)\n", + "\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33mResearcher\u001b[0m (to User):\n", + "\n", + "To investigate the possible reasons for the stock performance of NVIDIA Corporation (NVDA) and Tesla, Inc. (TSLA), we can follow these steps:\n", + "\n", + "1. **Market Trends and News:** Look for any recent news or market trends related to NVIDIA and Tesla. This could include product launches, earnings reports, significant partnerships, or changes in the global market that might influence these companies differently.\n", + "2. **Industry Impact:** Assess how changes in the technology and automotive industries might have differently affected NVIDIA and Tesla. For NVIDIA, advancements or demands in gaming, data centers, and AI could play a role, while for Tesla, factors could include electric vehicle (EV) market dynamics, production issues, or regulatory changes.\n", + "3. **Financial Performance:** Analyze recent financial performance reports from both companies to see if there are any indicators of why their stock prices have moved in such opposite directions.\n", + "4. **Investor Sentiment:** Investigate the overall investor sentiment towards these companies. This could involve looking at analyst ratings, investor forums, or news commentary.\n", + "5. **External Factors:** Consider any external factors that might have had an impact, like changes in trade policies, geopolitical tensions, or significant shifts in consumer behavior due to global events.\n", + "\n", + "As we would need real-time data and specific detailed analyses which are best done through current financial news articles, market analyses, and company reports to proceed accurately, I can provide an example code snippet to fetch recent news regarding NVIDIA and Tesla from the web using Python. This might help identify some potential reasons for their stock performance based on recent events.\n", + "\n", + "```python\n", + "# filename: fetch_news.py\n", + "import requests\n", + "from bs4 import BeautifulSoup\n", + "\n", + "def fetch_news(stock_name):\n", + " search_query = stock_name + ' stock news'\n", + " url = f\"https://www.google.com/search?q={search_query.replace(' ', '+')}&tbm=nws\"\n", + " headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}\n", + " response = requests.get(url, headers=headers)\n", + " soup = BeautifulSoup(response.text, 'html.parser')\n", + "\n", + " for item in soup.find_all('div', attrs={'class': 'dbsr'}):\n", + " title = item.find('div', attrs={'class': 'JheGif nDgy9d'}).text\n", + " source_and_time = item.find('div', attrs={'class': 'SVJrMe'}).text\n", + " link = item.a['href']\n", + " print(f'Title: {title}\\nSource and Time: {source_and_time}\\nLink: {link}\\n')\n", + "\n", + "# Fetch news for NVIDIA\n", + "print('NVIDIA News:')\n", + "fetch_news('NVIDIA')\n", + "\n", + "# Fetch news for Tesla\n", + "print('\\nTesla News:')\n", + "fetch_news('Tesla')\n", + "```\n", + "\n", + "Please run the above Python script. It will scrape Google News for recent articles related to NVIDIA and Tesla, which might provide insights into the reasons behind their recent stock performances. Note, however, that web scraping Google might violate their terms of service and the effectiveness of the script could vary over time due to changes in the Google News page structure. This script is provided for educational purposes to demonstrate a technique for gathering information.\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[31m\n", + ">>>>>>>> EXECUTING CODE BLOCK 0 (inferred language is python)...\u001b[0m\n", + "\u001b[33mUser\u001b[0m (to Researcher):\n", + "\n", + "exitcode: 0 (execution succeeded)\n", + "Code output: \n", + "NVIDIA News:\n", + "\n", + "Tesla News:\n", "\n", "\n", "--------------------------------------------------------------------------------\n", "\u001b[33mFinancial_assistant\u001b[0m (to User):\n", "\n", - "Great! The code ran successfully. The `Figure(640x480)` statement denotes the size of the displayed figure, but it's not the actual graph. \n", + "The execution of the code was successful, and it generated a plot comparing the stock prices of NVIDIA Corporation (NVDA) and Tesla, Inc. (TSLA) over the past month. The plot should visually depict NVIDIA's stock price increase and Tesla's decrease during this period, based on the linear assumptions we made for simplicity.\n", + "\n", + "Since the plot has been generated as expected, you should now have a visual representation showing how NVDA's stock price trended upwards over the past month, while TSLA's stock price trended downwards. This comparison could provide insights into the overall performance and market sentiment towards these two companies during the last month.\n", + "\n", + "If you have any more requests or need further analysis, feel free to ask!\n", + "\n", + "TERMINATE\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33mResearcher\u001b[0m (to User):\n", + "\n", + "It appears that the provided script didn't fetch the news as expected. This limitation might be due to changes in the website structure, anti-scraping measures, or the fact that extracting information from Google's search results can be particularly challenging due to their dynamic nature and terms of service.\n", "\n", - "In a typical interactive Python environment, the `plt.show()` function directly displays the plot. Since the execution environment here may not support interactive display of the graph, you're not seeing the graph as an output. \n", + "Given this, I recommend using alternative methods to investigate the reasons behind NVIDIA's and Tesla's recent stock performance. These can include:\n", "\n", - "You'd usually see a line chart with two lines, one for NVDA and one for TSLA, indicating their price change from one month ago to today.\n", + "1. **Checking Financial News Websites:** Websites like Bloomberg, CNBC, and Reuters often provide up-to-date news and analysis on companies and their stock performances. \n", + "2. **Official Company Press Releases:** Both NVIDIA's and Tesla's official websites have press release sections, where they publish news that could significantly impact their stock prices, such as earnings reports, product launches, or strategic partnerships.\n", + "3. **Financial Analysis Platforms:** Platforms like Yahoo Finance, Google Finance, and Seeking Alpha offer news, financial data, and analyses which can provide insights into recent stock performance.\n", + "4. **Social Media and Forums:** Financial communities on platforms like Twitter, Reddit (especially the r/investing subreddit), and StockTwits can sometimes provide real-time insights and sentiments that might be influencing stock prices.\n", "\n", - "Sorry for the inconvenience caused by the visualization constraints of the current interaction mode. You can try running the exact same code in an interactive Python environment like Jupyter Notebook or Google Colab, and you would be able to see the graph.\n", + "Without specific recent news or data obtained directly from such sources, it's difficult to pinpoint the exact reasons for NVIDIA's and Tesla's recent stock performance. However, based on the context provided:\n", "\n", - "I hope you found my assistance helpful in understanding the logic and code to plot the stock prices of NVDA and TSLA. If you have any further questions or tasks, feel free to ask. \n", + "- **NVIDIA's Increase:** The increase in NVIDIA's stock price could be linked to heightened demand for its GPUs amid trends such as gaming, data center expansion, and AI development. NVIDIA is deeply involved in these rapidly growing sectors, and any positive news or indicators related to them could significantly impact its stock.\n", + " \n", + "- **Tesla's Decrease:** Tesla's decline might be influenced by a variety of factors, from production challenges, competition in the electric vehicle industry increasing, potential regulatory challenges, or even Elon Musk's public statements affecting investor sentiment. Tesla's performance is also highly scrutinized, so broader market trends or operational hiccups can have a pronounced effect on its stock price.\n", + "\n", + "To get the most accurate picture, I recommend visiting the suggested financial news websites and platforms directly to gather the latest insights and analyses on NVIDIA and Tesla. This will provide a more comprehensive understanding of their stock performance drivers.\n", "\n", "TERMINATE\n", "\n", "--------------------------------------------------------------------------------\n", "\u001b[34m\n", "********************************************************************************\u001b[0m\n", - "\u001b[34mStart a new chat with the following message: \n", + "\u001b[34mStarting a new chat....\n", + "\n", + "Message:\n", "Develop an engaging blog post using any information provided.\n", "\n", - "With the following carryover: \n", - "The NVDA current stock price is $726.13, and the percentage change over the past month is an increase of 21.72%. The TSLA current stock price is $199.95, with a decrease of 4.24% over the past month.\n", - "There's been a recent increase in NVDA's stock performance and a decrease in TSLA's. The AI provided a script that fetches news headlines about these stocks to understand their performance. Based on the fetched headlines, some factors driving NVDA's stock increase could include imminent earnings reports and a debate about the company's value. The decrease in TSLA stock price could potentially be linked to uncertainties or confusions about its valuation. However, these interpretations are based only on a limited number of news headlines, and other recent events not covered by these headlines could also be influencing the stocks' performance.\n", - "The assistant provided a detailed way to create a mock graph comparing the stock prices of NVDA and TSLA over the past month, given the current prices and percentage changes. However, due to the assistant's inability to browse the web or fetch live data, and the current platform's inability to display plots, the final graph couldn't be shown. The assistant suggested running the provided Python code in an interactive Python environment like Jupyter Notebook or Google Colab to visualize the graph properly.\u001b[0m\n", + "Carryover: \n", + "NVIDIA Corporation (NVDA) experienced a stock price increase of 20.97% over the past month, with a current price of $878.37. Tesla, Inc. (TSLA) saw a decrease of 18.19% in the same period, with its current stock price at $163.57.\n", + "Investigating the reasons behind the stock performance of NVIDIA Corporation and Tesla, Inc. requires analyzing recent news, market trends, financial performance, investor sentiment, and industry impacts. For NVIDIA, increased stock prices may relate to demand for GPUs, advances in gaming, data centers, and AI development. Tesla's stock decrease could stem from production challenges, rising competition, regulatory issues, or public statements by its CEO affecting investor sentiment. Direct analysis using financial news websites, company press releases, financial analysis platforms, and social media can provide insights into their stock performance. The provided Python script intended to fetch news did not work as expected, underscoring the importance of using alternative, direct methods for obtaining current information from reliable financial news sources.\n", + "NVIDIA Corporation (NVDA) experienced a 20.97% increase in its stock price over the past month, with the current price at $878.37. In contrast, Tesla, Inc. (TSLA) saw an 18.19% decrease in the same period, with its current stock price at $163.57. A plotted comparison based on these percentages and current prices, assuming a linear trend for simplicity, would visually depict NVIDIA's stock price trending upwards and Tesla's trending downwards over the last month.\u001b[0m\n", "\u001b[34m\n", "********************************************************************************\u001b[0m\n", "\u001b[33mUser\u001b[0m (to writer):\n", "\n", "Develop an engaging blog post using any information provided.\n", "Context: \n", - "The NVDA current stock price is $726.13, and the percentage change over the past month is an increase of 21.72%. The TSLA current stock price is $199.95, with a decrease of 4.24% over the past month.\n", - "There's been a recent increase in NVDA's stock performance and a decrease in TSLA's. The AI provided a script that fetches news headlines about these stocks to understand their performance. Based on the fetched headlines, some factors driving NVDA's stock increase could include imminent earnings reports and a debate about the company's value. The decrease in TSLA stock price could potentially be linked to uncertainties or confusions about its valuation. However, these interpretations are based only on a limited number of news headlines, and other recent events not covered by these headlines could also be influencing the stocks' performance.\n", - "The assistant provided a detailed way to create a mock graph comparing the stock prices of NVDA and TSLA over the past month, given the current prices and percentage changes. However, due to the assistant's inability to browse the web or fetch live data, and the current platform's inability to display plots, the final graph couldn't be shown. The assistant suggested running the provided Python code in an interactive Python environment like Jupyter Notebook or Google Colab to visualize the graph properly.\n", + "NVIDIA Corporation (NVDA) experienced a stock price increase of 20.97% over the past month, with a current price of $878.37. Tesla, Inc. (TSLA) saw a decrease of 18.19% in the same period, with its current stock price at $163.57.\n", + "Investigating the reasons behind the stock performance of NVIDIA Corporation and Tesla, Inc. requires analyzing recent news, market trends, financial performance, investor sentiment, and industry impacts. For NVIDIA, increased stock prices may relate to demand for GPUs, advances in gaming, data centers, and AI development. Tesla's stock decrease could stem from production challenges, rising competition, regulatory issues, or public statements by its CEO affecting investor sentiment. Direct analysis using financial news websites, company press releases, financial analysis platforms, and social media can provide insights into their stock performance. The provided Python script intended to fetch news did not work as expected, underscoring the importance of using alternative, direct methods for obtaining current information from reliable financial news sources.\n", + "NVIDIA Corporation (NVDA) experienced a 20.97% increase in its stock price over the past month, with the current price at $878.37. In contrast, Tesla, Inc. (TSLA) saw an 18.19% decrease in the same period, with its current stock price at $163.57. A plotted comparison based on these percentages and current prices, assuming a linear trend for simplicity, would visually depict NVIDIA's stock price trending upwards and Tesla's trending downwards over the last month.\n", "\n", "--------------------------------------------------------------------------------\n", "\u001b[33mwriter\u001b[0m (to User):\n", "\n", - "Title: Navigating the Highs and Lows: A Tale of Two Stocks- NVDA and TSLA\n", + "### The Stock Market Tales of NVIDIA and Tesla: A Comparative Analysis\n", + "\n", + "In the ever-oscillating world of the stock market, where fortunes can be made or lost in the blink of an eye, the recent performances of NVIDIA Corporation (NVDA) and Tesla, Inc. (TSLA) stand out, painting two very different pictures. Over the past month, NVIDIA witnessed an awe-inspiring surge of 20.97% in its stock price, reaching a towering $878.37. Meanwhile, Tesla faced a starkly contrasting fate, with its stock price tumbling down 18.19% to $163.57. But what underlying currents steered these two tech giants in such divergent directions? Let's delve deeper into the whirlpool of market dynamics, technological advancements, and investor sentiment to uncover the story behind these movements.\n", "\n", - "If you've been tracking the stock market recently, you might have noticed some significant activity involving two household names. These tech juggernauts- NVIDIA Corp (NVDA) and Tesla Inc (TSLA), have experienced significantly contrasting fortunes over the past month. \n", + "#### NVIDIA's Stellar Ascent\n", "\n", - "As of now, the NVDA stock price stands at a lofty $726.13, soaring an astonishing 21.72% in the past month. TSLA, however, has had a bumpier ride, with the current price of $199.95 reflecting a 4.24% decrease during the same period. \n", + "NVIDIA, a titan in the realms of graphics processing units (GPUs), artificial intelligence (AI), and data centers, has been on a meteoric rise. The company's stock surge can largely be attributed to the burgeoning demand for GPUs, indispensable not only in gaming but also in a plethora of applications from advanced computing tasks to mining cryptocurrencies. This demand spike has catapulted NVIDIA into a favorable position in the stock market.\n", "\n", - "What's driving the surging ascent of NVDA and the faltering trajectory of TSLA, you might ask? Well, sometimes the answers can be found in the daily news cycle.\n", + "Moreover, NVIDIA's forays into AI development and data centers have underpinned its financial fortitude. As businesses and institutions increasingly leverage AI for efficiency and innovation, NVIDIA's cutting-edge technologies stand at the forefront, driving its stock prices to new heights.\n", "\n", - "According to news headlines fetched by our AI assistant, NVDA's recent skyrocket can potentially be linked to events like imminent earnings reports and a burgeoning debate around the company's value. These factors have managed to cast a positive light on the company. Investors may perceive them as indicators of a prospective growth, triggering increased stock purchases. \n", + "#### Tesla's Turbulent Tide\n", "\n", - "Yet, every coin has two sides. For TSLA, recent news may have spread more confusion and uncertainty than confidence. Headlines pointing to ambiguities about the company's valuation have clouded its fiscal outlook, leading to a softening of the stock price. \n", + "Tesla, Inc., on the other hand, has navigated through rough waters. Known for revolutionizing the electric vehicle (EV) industry, Tesla has recently grappled with a gamut of challenges. Production snags, possibly accentuated by global supply chain disruptions, have hindered Tesla's ability to meet its ambitious production targets. Furthermore, the EV sphere is no longer Tesla's sole dominion; rising competition has emerged as a formidable force, with legacy automakers and new entrants alike vying for a piece of the EV pie.\n", "\n", - "Before attaching too much weight to these possibilities, it's essential to highlight that news headlines offers just a fraction of the full picture. The market's pulse is influenced by a plethora of factors, with many taking place behind headlines. Hence, while headlines undeniably play a role in influencing stock performance, they should be only part of any comprehensive market analysis.\n", + "Regulatory woes and occasional controversial public statements by its charismatic yet polarizing CEO, Elon Musk, have also played a role in swaying investor sentiment, contributing to the stock's decline. These factors combined sketch the backdrop against which Tesla's stock has weathered a downturn.\n", "\n", - "To provide a deeper understanding of these stock trajectories, our AI helper put forth a detailed method to mock up a comparative graph of NVDA and TSLA prices over the past month. However, our current environment lacks the capability for web browsing or live data fetching, so the visualization isn’t available in this post. For those keen to see the graphical view, we recommend inputting the provided Python code into an interactive Python environment like Jupyter Notebook or Google Colab.\n", + "#### The Tale of Two Graphs\n", "\n", - "Whether you're an experienced trader or a budding market enthusiast, understanding the forces moving major stocks like NVDA and TSLA can give you valuable insight into the tech industry's overall health and future direction. So, keep those news alerts on, keep questioning, and keep connecting the dots.\n", + "Visualizing the stock performance of NVIDIA and Tesla over the last month through a simple linear graph vividly elucidates their trajectories — NVIDIA's stock price ascends skyward, while Tesla's takes a steep downturn. This visual comparison starkly captures the fortunes and misfortunes unfolding in the high-stakes world of the stock market.\n", + "\n", + "#### Looking Beyond the Horizon\n", + "\n", + "The stock market is a reflection of myriad factors — technological innovation, market demand, competitive landscape, and investor perception. NVIDIA's ascendancy underscores the growing clout of AI and data centers, heralding an era where these technologies shape market dynamics. Tesla's struggles, meanwhile, highlight the hurdles of scaling production amidst stiffening competition and regulatory scrutiny.\n", + "\n", + "As investors and market aficionados peer into the crystal ball, seeking to divine the future paths of NVIDIA and Tesla, they are reminded of the market's inherent unpredictability. What's certain, though, is that the stories of NVIDIA and Tesla — each fascinating in its own right — will continue to captivate and instruct, offering valuable lessons in resilience, innovation, and the ever-persistent pursuit of progress.\n", + "\n", + "### Conclusion\n", + "\n", + "The contrasting destinies of NVIDIA and Tesla in the stock market serve as a compelling narrative of triumph and tribulation. While NVIDIA rides the wave of technological advancement to new heights, Tesla navigates a challenging course, underlining the complexities of sustaining growth amidst evolving market dynamics. As their stories continue to unfold, both NVIDIA and Tesla offer invaluable insights into the intricate dance of innovation, investment, and influence in shaping the future of technology and industry.\n", + "\n", + "---\n", "\n", "TERMINATE\n", "\n", @@ -514,7 +518,7 @@ " \"prerequisites\": [1],\n", " \"recipient\": research_assistant,\n", " \"message\": financial_tasks[1],\n", - " \"silent\": True,\n", + " \"silent\": False,\n", " \"summary_method\": \"reflection_with_llm\",\n", " },\n", " {\n", @@ -525,7 +529,7 @@ " \"silent\": False,\n", " \"summary_method\": \"reflection_with_llm\",\n", " },\n", - " {\"chat_id\": 4, \"prerequisites\": [1, 2, 3], \"recipient\": writer, \"message\": writing_tasks[0]},\n", + " {\"chat_id\": 4, \"prerequisites\": [1, 2, 3], \"recipient\": writer, \"silent\": False, \"message\": writing_tasks[0]},\n", " ]\n", ")" ] @@ -545,7 +549,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 5, "metadata": {}, "outputs": [ { @@ -553,48 +557,62 @@ "output_type": "stream", "text": [ "*****1th chat*******:\n", - "The NVDA current stock price is $726.13, and the percentage change over the past month is an increase of 21.72%. The TSLA current stock price is $199.95, with a decrease of 4.24% over the past month.\n", + "NVIDIA Corporation (NVDA) experienced a stock price increase of 20.97% over the past month, with a current price of $878.37. Tesla, Inc. (TSLA) saw a decrease of 18.19% in the same period, with its current stock price at $163.57.\n", "Human input in the middle: []\n", - "Conversation cost: ({'total_cost': 0.9493499999999998, 'gpt-4-0613': {'cost': 0.9493499999999998, 'prompt_tokens': 22291, 'completion_tokens': 4677, 'total_tokens': 26968}}, {'total_cost': 0.26868, 'gpt-4-0613': {'cost': 0.26868, 'prompt_tokens': 5408, 'completion_tokens': 1774, 'total_tokens': 7182}})\n", + "Conversation cost: ({'total_cost': 0.060149999999999995, 'gpt-4-0125-preview': {'cost': 0.060149999999999995, 'prompt_tokens': 3963, 'completion_tokens': 684, 'total_tokens': 4647}}, {'total_cost': 0.04074, 'gpt-4-0125-preview': {'cost': 0.04074, 'prompt_tokens': 3462, 'completion_tokens': 204, 'total_tokens': 3666}})\n", "\n", "\n", "\n", "*****2th chat*******:\n", - "There's been a recent increase in NVDA's stock performance and a decrease in TSLA's. The AI provided a script that fetches news headlines about these stocks to understand their performance. Based on the fetched headlines, some factors driving NVDA's stock increase could include imminent earnings reports and a debate about the company's value. The decrease in TSLA stock price could potentially be linked to uncertainties or confusions about its valuation. However, these interpretations are based only on a limited number of news headlines, and other recent events not covered by these headlines could also be influencing the stocks' performance.\n", + "Investigating the reasons behind the stock performance of NVIDIA Corporation and Tesla, Inc. requires analyzing recent news, market trends, financial performance, investor sentiment, and industry impacts. For NVIDIA, increased stock prices may relate to demand for GPUs, advances in gaming, data centers, and AI development. Tesla's stock decrease could stem from production challenges, rising competition, regulatory issues, or public statements by its CEO affecting investor sentiment. Direct analysis using financial news websites, company press releases, financial analysis platforms, and social media can provide insights into their stock performance. The provided Python script intended to fetch news did not work as expected, underscoring the importance of using alternative, direct methods for obtaining current information from reliable financial news sources.\n", "Human input in the middle: []\n", - "Conversation cost: ({'total_cost': 0.58845, 'gpt-4-0613': {'cost': 0.58845, 'prompt_tokens': 12177, 'completion_tokens': 3719, 'total_tokens': 15896}}, {'total_cost': 0.36668999999999996, 'gpt-4-0613': {'cost': 0.36668999999999996, 'prompt_tokens': 8801, 'completion_tokens': 1711, 'total_tokens': 10512}})\n", + "Conversation cost: ({'total_cost': 0.06911, 'gpt-4-0125-preview': {'cost': 0.06911, 'prompt_tokens': 3074, 'completion_tokens': 1279, 'total_tokens': 4353}}, {'total_cost': 0.06911, 'gpt-4-0125-preview': {'cost': 0.06911, 'prompt_tokens': 3074, 'completion_tokens': 1279, 'total_tokens': 4353}})\n", "\n", "\n", "\n", "*****3th chat*******:\n", - "The assistant provided a detailed way to create a mock graph comparing the stock prices of NVDA and TSLA over the past month, given the current prices and percentage changes. However, due to the assistant's inability to browse the web or fetch live data, and the current platform's inability to display plots, the final graph couldn't be shown. The assistant suggested running the provided Python code in an interactive Python environment like Jupyter Notebook or Google Colab to visualize the graph properly.\n", + "NVIDIA Corporation (NVDA) experienced a 20.97% increase in its stock price over the past month, with the current price at $878.37. In contrast, Tesla, Inc. (TSLA) saw an 18.19% decrease in the same period, with its current stock price at $163.57. A plotted comparison based on these percentages and current prices, assuming a linear trend for simplicity, would visually depict NVIDIA's stock price trending upwards and Tesla's trending downwards over the last month.\n", "Human input in the middle: []\n", - "Conversation cost: ({'total_cost': 1.0658699999999997, 'gpt-4-0613': {'cost': 1.0658699999999997, 'prompt_tokens': 24657, 'completion_tokens': 5436, 'total_tokens': 30093}}, {'total_cost': 0.26868, 'gpt-4-0613': {'cost': 0.26868, 'prompt_tokens': 5408, 'completion_tokens': 1774, 'total_tokens': 7182}})\n", + "Conversation cost: ({'total_cost': 0.10758999999999999, 'gpt-4-0125-preview': {'cost': 0.10758999999999999, 'prompt_tokens': 6409, 'completion_tokens': 1450, 'total_tokens': 7859}}, {'total_cost': 0.08818, 'gpt-4-0125-preview': {'cost': 0.08818, 'prompt_tokens': 5908, 'completion_tokens': 970, 'total_tokens': 6878}})\n", "\n", "\n", "\n", "*****4th chat*******:\n", - "Title: Navigating the Highs and Lows: A Tale of Two Stocks- NVDA and TSLA\n", + "### The Stock Market Tales of NVIDIA and Tesla: A Comparative Analysis\n", + "\n", + "In the ever-oscillating world of the stock market, where fortunes can be made or lost in the blink of an eye, the recent performances of NVIDIA Corporation (NVDA) and Tesla, Inc. (TSLA) stand out, painting two very different pictures. Over the past month, NVIDIA witnessed an awe-inspiring surge of 20.97% in its stock price, reaching a towering $878.37. Meanwhile, Tesla faced a starkly contrasting fate, with its stock price tumbling down 18.19% to $163.57. But what underlying currents steered these two tech giants in such divergent directions? Let's delve deeper into the whirlpool of market dynamics, technological advancements, and investor sentiment to uncover the story behind these movements.\n", + "\n", + "#### NVIDIA's Stellar Ascent\n", "\n", - "If you've been tracking the stock market recently, you might have noticed some significant activity involving two household names. These tech juggernauts- NVIDIA Corp (NVDA) and Tesla Inc (TSLA), have experienced significantly contrasting fortunes over the past month. \n", + "NVIDIA, a titan in the realms of graphics processing units (GPUs), artificial intelligence (AI), and data centers, has been on a meteoric rise. The company's stock surge can largely be attributed to the burgeoning demand for GPUs, indispensable not only in gaming but also in a plethora of applications from advanced computing tasks to mining cryptocurrencies. This demand spike has catapulted NVIDIA into a favorable position in the stock market.\n", "\n", - "As of now, the NVDA stock price stands at a lofty $726.13, soaring an astonishing 21.72% in the past month. TSLA, however, has had a bumpier ride, with the current price of $199.95 reflecting a 4.24% decrease during the same period. \n", + "Moreover, NVIDIA's forays into AI development and data centers have underpinned its financial fortitude. As businesses and institutions increasingly leverage AI for efficiency and innovation, NVIDIA's cutting-edge technologies stand at the forefront, driving its stock prices to new heights.\n", "\n", - "What's driving the surging ascent of NVDA and the faltering trajectory of TSLA, you might ask? Well, sometimes the answers can be found in the daily news cycle.\n", + "#### Tesla's Turbulent Tide\n", "\n", - "According to news headlines fetched by our AI assistant, NVDA's recent skyrocket can potentially be linked to events like imminent earnings reports and a burgeoning debate around the company's value. These factors have managed to cast a positive light on the company. Investors may perceive them as indicators of a prospective growth, triggering increased stock purchases. \n", + "Tesla, Inc., on the other hand, has navigated through rough waters. Known for revolutionizing the electric vehicle (EV) industry, Tesla has recently grappled with a gamut of challenges. Production snags, possibly accentuated by global supply chain disruptions, have hindered Tesla's ability to meet its ambitious production targets. Furthermore, the EV sphere is no longer Tesla's sole dominion; rising competition has emerged as a formidable force, with legacy automakers and new entrants alike vying for a piece of the EV pie.\n", "\n", - "Yet, every coin has two sides. For TSLA, recent news may have spread more confusion and uncertainty than confidence. Headlines pointing to ambiguities about the company's valuation have clouded its fiscal outlook, leading to a softening of the stock price. \n", + "Regulatory woes and occasional controversial public statements by its charismatic yet polarizing CEO, Elon Musk, have also played a role in swaying investor sentiment, contributing to the stock's decline. These factors combined sketch the backdrop against which Tesla's stock has weathered a downturn.\n", "\n", - "Before attaching too much weight to these possibilities, it's essential to highlight that news headlines offers just a fraction of the full picture. The market's pulse is influenced by a plethora of factors, with many taking place behind headlines. Hence, while headlines undeniably play a role in influencing stock performance, they should be only part of any comprehensive market analysis.\n", + "#### The Tale of Two Graphs\n", "\n", - "To provide a deeper understanding of these stock trajectories, our AI helper put forth a detailed method to mock up a comparative graph of NVDA and TSLA prices over the past month. However, our current environment lacks the capability for web browsing or live data fetching, so the visualization isn’t available in this post. For those keen to see the graphical view, we recommend inputting the provided Python code into an interactive Python environment like Jupyter Notebook or Google Colab.\n", + "Visualizing the stock performance of NVIDIA and Tesla over the last month through a simple linear graph vividly elucidates their trajectories — NVIDIA's stock price ascends skyward, while Tesla's takes a steep downturn. This visual comparison starkly captures the fortunes and misfortunes unfolding in the high-stakes world of the stock market.\n", "\n", - "Whether you're an experienced trader or a budding market enthusiast, understanding the forces moving major stocks like NVDA and TSLA can give you valuable insight into the tech industry's overall health and future direction. So, keep those news alerts on, keep questioning, and keep connecting the dots.\n", + "#### Looking Beyond the Horizon\n", + "\n", + "The stock market is a reflection of myriad factors — technological innovation, market demand, competitive landscape, and investor perception. NVIDIA's ascendancy underscores the growing clout of AI and data centers, heralding an era where these technologies shape market dynamics. Tesla's struggles, meanwhile, highlight the hurdles of scaling production amidst stiffening competition and regulatory scrutiny.\n", + "\n", + "As investors and market aficionados peer into the crystal ball, seeking to divine the future paths of NVIDIA and Tesla, they are reminded of the market's inherent unpredictability. What's certain, though, is that the stories of NVIDIA and Tesla — each fascinating in its own right — will continue to captivate and instruct, offering valuable lessons in resilience, innovation, and the ever-persistent pursuit of progress.\n", + "\n", + "### Conclusion\n", + "\n", + "The contrasting destinies of NVIDIA and Tesla in the stock market serve as a compelling narrative of triumph and tribulation. While NVIDIA rides the wave of technological advancement to new heights, Tesla navigates a challenging course, underlining the complexities of sustaining growth amidst evolving market dynamics. As their stories continue to unfold, both NVIDIA and Tesla offer invaluable insights into the intricate dance of innovation, investment, and influence in shaping the future of technology and industry.\n", + "\n", + "---\n", "\n", "\n", "Human input in the middle: []\n", - "Conversation cost: ({'total_cost': 0.13599, 'gpt-4-0613': {'cost': 0.13599, 'prompt_tokens': 1043, 'completion_tokens': 1745, 'total_tokens': 2788}}, {'total_cost': 0.13599, 'gpt-4-0613': {'cost': 0.13599, 'prompt_tokens': 1043, 'completion_tokens': 1745, 'total_tokens': 2788}})\n", + "Conversation cost: ({'total_cost': 0.02817, 'gpt-4-0125-preview': {'cost': 0.02817, 'prompt_tokens': 387, 'completion_tokens': 810, 'total_tokens': 1197}}, {'total_cost': 0.02817, 'gpt-4-0125-preview': {'cost': 0.02817, 'prompt_tokens': 387, 'completion_tokens': 810, 'total_tokens': 1197}})\n", "\n", "\n", "\n" @@ -623,7 +641,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 6, "metadata": {}, "outputs": [ { @@ -632,10 +650,12 @@ "text": [ "\u001b[34m\n", "********************************************************************************\u001b[0m\n", - "\u001b[34mStart a new chat with the following message: \n", + "\u001b[34mStarting a new chat....\n", + "\n", + "Message:\n", "What are the current stock prices of NVDA and TESLA, and how is the performance over the past month in terms of percentage change?\n", "\n", - "With the following carryover: \n", + "Carryover: \n", "\u001b[0m\n", "\u001b[34m\n", "********************************************************************************\u001b[0m\n", @@ -646,60 +666,52 @@ "--------------------------------------------------------------------------------\n", "\u001b[33mFinancial_assistant\u001b[0m (to User):\n", "\n", - "To fetch live stock data, we can make use of the \"yfinance\" library in Python, which allows us to download stock data from Yahoo Finance.\n", - "\n", - "Install \"yfinance\" by executing the following Python code:\n", + "To obtain current stock prices of NVDA (NVIDIA Corporation) and TSLA (Tesla, Inc.), and calculate their performance over the past month in terms of percentage change, we can use the Yahoo Finance API through the `yfinance` Python package. This process involves the following steps:\n", "\n", - "```python\n", - "!pip install yfinance\n", - "```\n", + "1. Install the `yfinance` package (if not already installed).\n", + "2. Use `yfinance` to fetch the current stock prices of NVDA and TSLA.\n", + "3. Fetch historical data for the past month for both stocks.\n", + "4. Calculate the percentage change in the stock prices over the last month based on the historical data.\n", "\n", - "Then, get the current stock prices and compute the performance over the past month using the following code:\n", + "Please execute the following Python code to perform these tasks:\n", "\n", "```python\n", + "# filename: stock_info.py\n", "import yfinance as yf\n", "from datetime import datetime, timedelta\n", "\n", - "# Define the ticker symbols\n", - "tickers = ['NVDA', 'TSLA']\n", - "\n", - "# Get today's date\n", - "today = datetime.today().strftime('%Y-%m-%d')\n", - "\n", - "# Get the date one month ago\n", - "one_month_ago = (datetime.today() - timedelta(days=30)).strftime('%Y-%m-%d')\n", - "\n", - "# Initialize a dictionary to store the data\n", - "data = {}\n", - "\n", - "# Loop through the ticker symbols\n", - "for ticker in tickers:\n", - " # Get the historical data for the past month\n", - " historical_data = yf.download(ticker, start=one_month_ago, end=today)\n", - "\n", - " # Get the most recent data (today's data)\n", - " today_data = historical_data.tail(1)\n", + "def stock_performance(ticker):\n", + " # Fetching data for the past month\n", + " end_date = datetime.today()\n", + " start_date = end_date - timedelta(days=30) # Approximate for the past month\n", + " \n", + " # Fetch historical data\n", + " data = yf.download(ticker, start=start_date, end=end_date)\n", + " \n", + " # Current and beginning of month prices\n", + " current_price = data['Close'].iloc[-1]\n", + " start_month_price = data['Close'].iloc[0] \n", + " \n", + " # Calculate percentage change over the month\n", + " percent_change = ((current_price - start_month_price) / start_month_price) * 100\n", + " \n", + " return current_price, percent_change\n", "\n", - " # Get the earliest data (one month ago's data)\n", - " one_month_ago_data = historical_data.head(1)\n", + "# NVDA and TSLA stock performance\n", + "nvda_price, nvda_change = stock_performance(\"NVDA\")\n", + "tsla_price, tsla_change = stock_performance(\"TSLA\")\n", "\n", - " # Calculate the percentage change over the past month\n", - " percentage_change = ((today_data['Close'].iloc[0] - one_month_ago_data['Close'].iloc[0]) / one_month_ago_data['Close'].iloc[0]) * 100\n", + "print(f\"NVDA (NVIDIA Corp) current price: ${nvda_price:.2f}, Performance over past month: {nvda_change:.2f}%\")\n", + "print(f\"TSLA (Tesla, Inc.) current price: ${tsla_price:.2f}, Performance over past month: {tsla_change:.2f}%\")\n", + "```\n", "\n", - " # Store the data in the dictionary\n", - " data[ticker] = {\n", - " 'Current Stock Price': today_data['Close'].iloc[0],\n", - " 'Performance Over Past Month (%)': percentage_change\n", - " }\n", + "Before running this script, ensure that you have the `yfinance` package installed. If not, install it using the following command:\n", "\n", - "# Print the data\n", - "for ticker, d in data.items():\n", - " print(f\"{ticker}:\")\n", - " print(f\"\\tCurrent Stock Price: ${d['Current Stock Price']:.2f}\")\n", - " print(f\"\\tPerformance Over Past Month (%): {d['Performance Over Past Month (%)']:.2f}%\")\n", + "```sh\n", + "pip install yfinance\n", "```\n", "\n", - "This Python script retrieves the historical data for the past month for each ticker symbol, calculates the percentage change in stock price over the past month, and prints out the current stock price and the performance over the past month.\n", + "This script will output the current stock prices of NVDA and TSLA, along with their performance over the past month in percentage terms.\n", "\n", "--------------------------------------------------------------------------------\n" ] @@ -708,7 +720,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "/workspaces/autogen/autogen/agentchat/chat.py:46: UserWarning: Repetitive recipients detected: The chat history will be cleared by default if a recipient appears more than once. To retain the chat history, please set 'clear_history=False' in the configuration of the repeating agent.\n", + "/workspaces/autogen/autogen/agentchat/chat.py:42: UserWarning: Repetitive recipients detected: The chat history will be cleared by default if a recipient appears more than once. To retain the chat history, please set 'clear_history=False' in the configuration of the repeating agent.\n", " warnings.warn(\n" ] }, @@ -718,193 +730,307 @@ "text": [ "\u001b[33mUser\u001b[0m (to Financial_assistant):\n", "\n", - "Pls add Microsoft information as well.\n", + "Pls add Microsoft as well\n", "\n", "--------------------------------------------------------------------------------\n", "\u001b[33mFinancial_assistant\u001b[0m (to User):\n", "\n", - "Sure, let's add Microsoft (MSFT) to the list of tickers. Here's the updated Python code:\n", + "To include Microsoft (MSFT) in the analysis alongside NVDA (NVIDIA Corporation) and TSLA (Tesla, Inc.), we can modify the provided Python script to fetch and calculate the performance for MSFT as well. The revised script will now include Microsoft's current stock price and its performance over the past month in terms of percentage change. Please execute the updated Python code below:\n", "\n", "```python\n", + "# filename: stock_info_updated.py\n", "import yfinance as yf\n", "from datetime import datetime, timedelta\n", "\n", - "# Define the ticker symbols\n", - "tickers = ['NVDA', 'TSLA', 'MSFT']\n", + "def stock_performance(ticker):\n", + " # Fetching data for the past month\n", + " end_date = datetime.today()\n", + " start_date = end_date - timedelta(days=30) # Approximate for the past month\n", + " \n", + " # Fetch historical data\n", + " data = yf.download(ticker, start=start_date, end=end_date)\n", + " \n", + " # Current and beginning of month prices\n", + " current_price = data['Close'].iloc[-1]\n", + " start_month_price = data['Close'].iloc[0] \n", + " \n", + " # Calculate percentage change over the month\n", + " percent_change = ((current_price - start_month_price) / start_month_price) * 100\n", + " \n", + " return current_price, percent_change\n", "\n", - "# Get today's date\n", - "today = datetime.today().strftime('%Y-%m-%d')\n", + "# Tickers for NVDA, TSLA, and MSFT\n", + "stocks = {\"NVDA\": \"NVIDIA Corp\", \"TSLA\": \"Tesla, Inc.\", \"MSFT\": \"Microsoft Corp\"}\n", "\n", - "# Get the date one month ago\n", - "one_month_ago = (datetime.today() - timedelta(days=30)).strftime('%Y-%m-%d')\n", + "# Iterate through each stock and print information\n", + "for ticker, name in stocks.items():\n", + " price, change = stock_performance(ticker)\n", + " print(f\"{name} (Ticker: {ticker}) current price: ${price:.2f}, Performance over past month: {change:.2f}%\")\n", + "```\n", "\n", - "# Initialize a dictionary to store the data\n", - "data = {}\n", + "This script now includes Microsoft (ticker symbol: MSFT) in the analysis, providing its current stock price and the percentage change over the past month along with NVDA and TSLA. \n", "\n", - "# Loop through the ticker symbols\n", - "for ticker in tickers:\n", - " # Get the historical data for the past month\n", - " historical_data = yf.download(ticker, start=one_month_ago, end=today)\n", + "Before running this script, make sure you have installed the `yfinance` package. Use the `pip install yfinance` command if the package is not already installed. This will ensure that the code can execute successfully and retrieve the stock information.\n", "\n", - " # Get the most recent data (today's data)\n", - " today_data = historical_data.tail(1)\n", + "--------------------------------------------------------------------------------\n", + "\u001b[31m\n", + ">>>>>>>> NO HUMAN INPUT RECEIVED.\u001b[0m\n", + "\u001b[31m\n", + ">>>>>>>> USING AUTO REPLY...\u001b[0m\n", + "\u001b[31m\n", + ">>>>>>>> NO HUMAN INPUT RECEIVED.\u001b[0m\n", + "\u001b[31m\n", + ">>>>>>>> USING AUTO REPLY...\u001b[0m\n", + "\u001b[31m\n", + ">>>>>>>> EXECUTING CODE BLOCK 0 (inferred language is python)...\u001b[0m\n", + "\u001b[33mUser\u001b[0m (to Financial_assistant):\n", "\n", - " # Get the earliest data (one month ago's data)\n", - " one_month_ago_data = historical_data.head(1)\n", + "exitcode: 0 (execution succeeded)\n", + "Code output: \n", + "NVIDIA Corp (Ticker: NVDA) current price: $878.37, Performance over past month: 20.97%\n", + "Tesla, Inc. (Ticker: TSLA) current price: $163.57, Performance over past month: -18.19%\n", + "Microsoft Corp (Ticker: MSFT) current price: $416.42, Performance over past month: 3.06%\n", "\n", - " # Calculate the percentage change over the past month\n", - " percentage_change = ((today_data['Close'].iloc[0] - one_month_ago_data['Close'].iloc[0]) / one_month_ago_data['Close'].iloc[0]) * 100\n", "\n", - " # Store the data in the dictionary\n", - " data[ticker] = {\n", - " 'Current Stock Price': today_data['Close'].iloc[0],\n", - " 'Performance Over Past Month (%)': percentage_change\n", - " }\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33mFinancial_assistant\u001b[0m (to User):\n", "\n", - "# Print the data\n", - "for ticker, d in data.items():\n", - " print(f\"{ticker}:\")\n", - " print(f\"\\tCurrent Stock Price: ${d['Current Stock Price']:.2f}\")\n", - " print(f\"\\tPerformance Over Past Month (%): {d['Performance Over Past Month (%)']:.2f}%\")\n", - "```\n", + "The execution of the updated script successfully provided the current stock prices and the percentage changes over the past month for NVIDIA Corporation (NVDA), Tesla, Inc. (TSLA), and Microsoft Corp (MSFT):\n", "\n", - "This is essentially the same script as before, but now it also fetches and processes stock data for Microsoft.\n", + "- **NVIDIA Corp (NVDA)**: Current price is **$878.37**, with a performance improvement of **20.97%** over the past month.\n", + "- **Tesla, Inc. (TSLA)**: Current price is **$163.57**, with a performance decrease of **-18.19%** over the past month.\n", + "- **Microsoft Corp (MSFT)**: Current price is **$416.42**, with a performance improvement of **3.06%** over the past month.\n", + "\n", + "These results reflect the respective companies' stock market performance for the duration specified. NVDA has shown significant growth, MSFT has experienced a moderate increase, whereas TSLA has seen a decrease in its stock price.\n", + "\n", + "TERMINATE\n", "\n", "--------------------------------------------------------------------------------\n", + "\u001b[31m\n", + ">>>>>>>> NO HUMAN INPUT RECEIVED.\u001b[0m\n", "\u001b[34m\n", "********************************************************************************\u001b[0m\n", - "\u001b[34mStart a new chat with the following message: \n", + "\u001b[34mStarting a new chat....\n", + "\n", + "Message:\n", "Investigate possible reasons of the stock performance.\n", "\n", - "With the following carryover: \n", - "The assistant provided a Python code to fetch the current stock prices and compute performance over the past month in terms of percentage change for the given stock ticker symbols, NVDA (NVIDIA Corp), TSLA (Tesla Inc), and MSFT (Microsoft Corp). This was done using the yfinance library which fetches the data from Yahoo Finance.\u001b[0m\n", + "Carryover: \n", + "The current stock prices and the percentage changes over the past month for NVIDIA Corporation (NVDA), Tesla, Inc. (TSLA), and Microsoft Corp (MSFT) are as follows:\n", + "\n", + "- NVDA: Current price $878.37, with a 20.97% increase.\n", + "- TSLA: Current price $163.57, with an 18.19% decrease.\n", + "- MSFT: Current price $416.42, with a 3.06% increase.\n", + "\n", + "NVDA showed significant growth, MSFT experienced moderate growth, while TSLA saw a decline in its stock price over the last month.\u001b[0m\n", "\u001b[34m\n", "********************************************************************************\u001b[0m\n", "\u001b[34m\n", "********************************************************************************\u001b[0m\n", - "\u001b[34mStart a new chat with the following message: \n", + "\u001b[34mStarting a new chat....\n", + "\n", + "Message:\n", "Plot a graph comparing the stock prices over the past month.\n", "\n", - "With the following carryover: \n", - "The assistant provided a Python code to fetch the current stock prices and compute performance over the past month in terms of percentage change for the given stock ticker symbols, NVDA (NVIDIA Corp), TSLA (Tesla Inc), and MSFT (Microsoft Corp). This was done using the yfinance library which fetches the data from Yahoo Finance.\u001b[0m\n", + "Carryover: \n", + "The current stock prices and the percentage changes over the past month for NVIDIA Corporation (NVDA), Tesla, Inc. (TSLA), and Microsoft Corp (MSFT) are as follows:\n", + "\n", + "- NVDA: Current price $878.37, with a 20.97% increase.\n", + "- TSLA: Current price $163.57, with an 18.19% decrease.\n", + "- MSFT: Current price $416.42, with a 3.06% increase.\n", + "\n", + "NVDA showed significant growth, MSFT experienced moderate growth, while TSLA saw a decline in its stock price over the last month.\u001b[0m\n", "\u001b[34m\n", "********************************************************************************\u001b[0m\n", "\u001b[33mUser\u001b[0m (to Financial_assistant):\n", "\n", "Plot a graph comparing the stock prices over the past month.\n", "Context: \n", - "The assistant provided a Python code to fetch the current stock prices and compute performance over the past month in terms of percentage change for the given stock ticker symbols, NVDA (NVIDIA Corp), TSLA (Tesla Inc), and MSFT (Microsoft Corp). This was done using the yfinance library which fetches the data from Yahoo Finance.\n", + "The current stock prices and the percentage changes over the past month for NVIDIA Corporation (NVDA), Tesla, Inc. (TSLA), and Microsoft Corp (MSFT) are as follows:\n", + "\n", + "- NVDA: Current price $878.37, with a 20.97% increase.\n", + "- TSLA: Current price $163.57, with an 18.19% decrease.\n", + "- MSFT: Current price $416.42, with a 3.06% increase.\n", + "\n", + "NVDA showed significant growth, MSFT experienced moderate growth, while TSLA saw a decline in its stock price over the last month.\n", "\n", "--------------------------------------------------------------------------------\n", "\u001b[33mFinancial_assistant\u001b[0m (to User):\n", "\n", - "Great, I will create a Python script to download historical data for these stocks and plot a comparison graph using libraries such as pandas, yfinance and matplotlib for data handling, financial data fetching and plotting, respectively.\n", + "To compare the stock prices over the past month for NVIDIA Corporation (NVDA), Tesla, Inc. (TSLA), and Microsoft Corp (MSFT), first, we'll calculate their prices a month ago based on the current prices and the percentage change. Then, we will plot the current and past month's prices on a graph for a visual comparison.\n", "\n", - "```python\n", - "# filename: stock_price_comparison.py\n", + "### Calculating the Prices a Month Ago\n", + "To calculate the price a month ago, we can use the formula:\n", "\n", - "import yfinance as yf\n", + "\\[\n", + "\\text{Price a Month Ago} = \\frac{\\text{Current Price}}{1 + \\text{Percentage Change}}\n", + "\\]\n", + "\n", + "For a decrease in price, the percentage change will be considered negative in the calculation.\n", + "\n", + "Let's calculate the stock prices a month ago and proceed to plot the graph in Python:\n", + "\n", + "```python\n", "import matplotlib.pyplot as plt\n", - "import pandas as pd\n", - "from pandas.plotting import register_matplotlib_converters\n", - "register_matplotlib_converters()\n", - "\n", - "# define the ticker symbol\n", - "ticker_list = ['NVDA', 'TSLA', 'MSFT']\n", - "\n", - "# create empty dataframe\n", - "stock_data = pd.DataFrame()\n", - "\n", - "# Fetch the data\n", - "for ticker in ticker_list: \n", - " stock = yf.Ticker(ticker)\n", - " temp = stock.history(period='1mo')\n", - " temp.reset_index(level=0, inplace=True)\n", - " temp['Ticker'] = ticker\n", - " stock_data = stock_data.append(temp)\n", - "\n", - "# Save each stock's closing price and date to a separate .csv\n", - "for ticker in ticker_list:\n", - " temp = stock_data[stock_data['Ticker'] == ticker]\n", - " temp[['Date', 'Close']].to_csv(f'{ticker}_closing_price.csv', index=False)\n", - "\n", - "# plot each stock's closing price in one graph\n", - "plt.figure(figsize=(14, 6))\n", - "for ticker in ticker_list:\n", - " temp = stock_data[stock_data['Ticker'] == ticker]\n", - " plt.plot(temp['Date'], temp['Close'], label=ticker)\n", - "plt.xlabel('Date')\n", - "plt.ylabel('Close Price')\n", - "plt.title('Stock Price over Past Month')\n", - "plt.legend()\n", - "plt.grid()\n", - "plt.savefig('stock_price_comparison.png')\n", "\n", - "print(\"Stock price comparison graph saved as 'stock_price_comparison.png'.\")\n", + "# Current stock prices\n", + "current_prices = {\"NVDA\": 878.37, \"TSLA\": 163.57, \"MSFT\": 416.42}\n", + "\n", + "# Percentage changes (positive for increase, negative for decrease)\n", + "percentage_changes = {\"NVDA\": 20.97, \"TSLA\": -18.19, \"MSFT\": 3.06}\n", + "\n", + "# Calculating prices a month ago\n", + "prices_a_month_ago = {stock: current_prices[stock] / (1 + percentage_changes[stock] / 100) for stock in current_prices}\n", + "\n", + "# Data for plotting\n", + "stocks = list(current_prices.keys())\n", + "current_prices_values = list(current_prices.values())\n", + "prices_a_month_ago_values = list(prices_a_month_ago.values())\n", + "\n", + "# Plotting\n", + "fig, ax = plt.subplots()\n", + "index = range(len(stocks))\n", + "bar_width = 0.35\n", + "\n", + "bars1 = ax.bar(index, prices_a_month_ago_values, bar_width, label='Month Ago')\n", + "bars2 = ax.bar([p + bar_width for p in index], current_prices_values, bar_width, label='Current')\n", + "\n", + "ax.set_xlabel('Stock')\n", + "ax.set_ylabel('Price ($)')\n", + "ax.set_title('Stock Prices Comparison Over the Past Month')\n", + "ax.set_xticks([p + bar_width / 2 for p in index])\n", + "ax.set_xticklabels(stocks)\n", + "ax.legend()\n", "\n", + "plt.tight_layout()\n", + "plt.show()\n", "```\n", - "This script will fetch the stock prices for the past month of the specified companies, then it plots these on the same graph to compare. The graph is saved as a PNG image named \"stock_price_comparison.png\". Each stock's closing price and date data are also saved to a separate .csv file (e.g., \"NVDA_closing_price.csv\"). Please run this script and check the generated graph and files.\n", + "\n", + "This code calculates the stock prices from a month ago based on the given current prices and percentage changes. Then, it plots a grouped bar chart comparing the prices. Execute this Python code to visualize the comparison of stock prices over the past month for NVDA, TSLA, and MSFT.\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[31m\n", + ">>>>>>>> NO HUMAN INPUT RECEIVED.\u001b[0m\n", + "\u001b[31m\n", + ">>>>>>>> USING AUTO REPLY...\u001b[0m\n", + "\u001b[31m\n", + ">>>>>>>> NO HUMAN INPUT RECEIVED.\u001b[0m\n", + "\u001b[31m\n", + ">>>>>>>> USING AUTO REPLY...\u001b[0m\n", + "\u001b[31m\n", + ">>>>>>>> EXECUTING CODE BLOCK 0 (inferred language is python)...\u001b[0m\n", + "\u001b[33mUser\u001b[0m (to Financial_assistant):\n", + "\n", + "exitcode: 0 (execution succeeded)\n", + "Code output: \n", + "Figure(640x480)\n", + "\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[31m\n", + ">>>>>>>> NO HUMAN INPUT RECEIVED.\u001b[0m\n", + "\u001b[31m\n", + ">>>>>>>> USING AUTO REPLY...\u001b[0m\n", + "\u001b[31m\n", + ">>>>>>>> NO HUMAN INPUT RECEIVED.\u001b[0m\n", + "\u001b[31m\n", + ">>>>>>>> USING AUTO REPLY...\u001b[0m\n", + "\u001b[31m\n", + ">>>>>>>> EXECUTING CODE BLOCK 0 (inferred language is python)...\u001b[0m\n", + "\u001b[33mFinancial_assistant\u001b[0m (to User):\n", + "\n", + "The output indicates that the code executed successfully and generated a plot. Since the visualization itself cannot be displayed directly in this text exchange, it's implied that the figure showed a comparison of the stock prices over the past month for NVIDIA Corporation (NVDA), Tesla, Inc. (TSLA), and Microsoft Corp (MSFT).\n", + "\n", + "From the given data and the intention behind the code:\n", + "\n", + "- NVIDIA (NVDA) would have shown a significant rise from its price a month ago to the current price, illustrating its 20.97% growth.\n", + "- Tesla (TSLA) would have shown a decrease in its stock price, reflecting the 18.19% decline over the past month.\n", + "- Microsoft (MSFT) would have indicated a moderate increase from its price a month ago to its current price, showcasing its 3.06% growth.\n", + "\n", + "This comparison provides insight into each company's stock performance over the last month, highlighting NVDA's significant growth, MSFT's moderate growth, and TSLA's decline. These insights can be valuable for investors, market analysts, and enthusiasts trying to understand market trends or make informed decisions.\n", + "\n", + "If you have any more questions or need further assistance with a different query, feel free to ask. Otherwise, that concludes our task.\n", + "\n", + "TERMINATE\n", "\n", "--------------------------------------------------------------------------------\n", + "\u001b[31m\n", + ">>>>>>>> NO HUMAN INPUT RECEIVED.\u001b[0m\n", + "\u001b[31m\n", + ">>>>>>>> NO HUMAN INPUT RECEIVED.\u001b[0m\n", "\u001b[34m\n", "********************************************************************************\u001b[0m\n", - "\u001b[34mStart a new chat with the following message: \n", + "\u001b[34mStarting a new chat....\n", + "\n", + "Message:\n", "Develop an engaging blog post using any information provided.\n", "\n", - "With the following carryover: \n", - "The assistant provided a Python code to fetch the current stock prices and compute performance over the past month in terms of percentage change for the given stock ticker symbols, NVDA (NVIDIA Corp), TSLA (Tesla Inc), and MSFT (Microsoft Corp). This was done using the yfinance library which fetches the data from Yahoo Finance.\n", - "The performance of a company's stock price could be influenced by various factors, including earnings reports, company announcements, market trends, economic indicators, and investor sentiment. To find out why a specific stock performed as it did, look out for any news, announcements, earnings report, or significant events that have occurred in the past month for that stock. Also, check the overall market trends and economic indicators during this period, and try to understand the investor sentiment towards the company. To fetch and analyze news related to a company, use the NewsAPI and Python requests library.\n", - "The assistant provided a Python code to fetch and compare the stock prices of NVIDIA Corp (NVDA), Tesla Inc (TSLA), and Microsoft Corp (MSFT) from the past month. The code uses the yfinance library to download historical data, pandas to manage the data, and matplotlib to plot the graph. It fetches the stock prices and plots them on a graph with date on the x-axis and closing price on the y-axis. The script saves the graph as a PNG image and the closing price and date of each stock in separate .csv files.\n", - "\u001b[0m\n", + "Carryover: \n", + "The current stock prices and the percentage changes over the past month for NVIDIA Corporation (NVDA), Tesla, Inc. (TSLA), and Microsoft Corp (MSFT) are as follows:\n", + "\n", + "- NVDA: Current price $878.37, with a 20.97% increase.\n", + "- TSLA: Current price $163.57, with an 18.19% decrease.\n", + "- MSFT: Current price $416.42, with a 3.06% increase.\n", + "\n", + "NVDA showed significant growth, MSFT experienced moderate growth, while TSLA saw a decline in its stock price over the last month.\n", + "NVIDIA Corporation (NVDA) showed significant growth possibly due to strong demand for its GPUs in gaming, professional markets, and advancements in AI technologies. Tesla, Inc. (TSLA) saw a decline in its stock price, which can be affected by production numbers, delivery figures, regulatory concerns, or Elon Musk's public statements. Microsoft Corp (MSFT) experienced moderate growth likely due to its performance in cloud computing, productivity software, and possibly new contracts or partnerships. To obtain specific information on stock performance reasons, consulting financial news websites and company investor relations pages is recommended.\n", + "The conversation involved calculating stock prices from a month ago based on the current prices and percentage changes for NVIDIA Corporation (NVDA), Tesla, Inc. (TSLA), and Microsoft Corp (MSFT). The current price of NVDA was $878.37 with a 20.97% increase, TSLA was $163.57 with an 18.19% decrease, and MSFT was $416.42 with a 3.06% increase. The calculation and subsequent Python code plotted a comparison of these stock prices over the past month, visually representing NVDA's significant growth, MSFT's moderate increase, and TSLA's decline.\u001b[0m\n", "\u001b[34m\n", "********************************************************************************\u001b[0m\n", "\u001b[33mUser\u001b[0m (to writer):\n", "\n", "Develop an engaging blog post using any information provided.\n", "Context: \n", - "The assistant provided a Python code to fetch the current stock prices and compute performance over the past month in terms of percentage change for the given stock ticker symbols, NVDA (NVIDIA Corp), TSLA (Tesla Inc), and MSFT (Microsoft Corp). This was done using the yfinance library which fetches the data from Yahoo Finance.\n", - "The performance of a company's stock price could be influenced by various factors, including earnings reports, company announcements, market trends, economic indicators, and investor sentiment. To find out why a specific stock performed as it did, look out for any news, announcements, earnings report, or significant events that have occurred in the past month for that stock. Also, check the overall market trends and economic indicators during this period, and try to understand the investor sentiment towards the company. To fetch and analyze news related to a company, use the NewsAPI and Python requests library.\n", - "The assistant provided a Python code to fetch and compare the stock prices of NVIDIA Corp (NVDA), Tesla Inc (TSLA), and Microsoft Corp (MSFT) from the past month. The code uses the yfinance library to download historical data, pandas to manage the data, and matplotlib to plot the graph. It fetches the stock prices and plots them on a graph with date on the x-axis and closing price on the y-axis. The script saves the graph as a PNG image and the closing price and date of each stock in separate .csv files.\n", + "The current stock prices and the percentage changes over the past month for NVIDIA Corporation (NVDA), Tesla, Inc. (TSLA), and Microsoft Corp (MSFT) are as follows:\n", + "\n", + "- NVDA: Current price $878.37, with a 20.97% increase.\n", + "- TSLA: Current price $163.57, with an 18.19% decrease.\n", + "- MSFT: Current price $416.42, with a 3.06% increase.\n", "\n", + "NVDA showed significant growth, MSFT experienced moderate growth, while TSLA saw a decline in its stock price over the last month.\n", + "NVIDIA Corporation (NVDA) showed significant growth possibly due to strong demand for its GPUs in gaming, professional markets, and advancements in AI technologies. Tesla, Inc. (TSLA) saw a decline in its stock price, which can be affected by production numbers, delivery figures, regulatory concerns, or Elon Musk's public statements. Microsoft Corp (MSFT) experienced moderate growth likely due to its performance in cloud computing, productivity software, and possibly new contracts or partnerships. To obtain specific information on stock performance reasons, consulting financial news websites and company investor relations pages is recommended.\n", + "The conversation involved calculating stock prices from a month ago based on the current prices and percentage changes for NVIDIA Corporation (NVDA), Tesla, Inc. (TSLA), and Microsoft Corp (MSFT). The current price of NVDA was $878.37 with a 20.97% increase, TSLA was $163.57 with an 18.19% decrease, and MSFT was $416.42 with a 3.06% increase. The calculation and subsequent Python code plotted a comparison of these stock prices over the past month, visually representing NVDA's significant growth, MSFT's moderate increase, and TSLA's decline.\n", "\n", "--------------------------------------------------------------------------------\n", "\u001b[33mwriter\u001b[0m (to User):\n", "\n", - "# Scripting the Stock Market: A Deeper Look into NVIDIA, Tesla, and Microsoft\n", + "### Navigating the Highs and Lows: A Tale of Three Titans\n", "\n", - "Imagine being able to chart the highs and lows of your favorite stocks just by running a bit of code. Whether you're a seasoned investor or a curious newbie, understanding stock trends of top-performing companies like NVIDIA Corp (NVDA), Tesla Inc (TSLA), and Microsoft Corp (MSFT) can offer invaluable insights into the fast-paced world of finance. \n", + "In the dynamic world of stock trading, few tales are as compelling as those of NVIDIA Corporation (NVDA), Tesla, Inc. (TSLA), and Microsoft Corp (MSFT). Over the past month, these tech giants have each narrated a story of market valiance, caution, and resilience. Here, we delve into these narratives, unwrapping the numbers to discover what fuels their journeys.\n", "\n", - "Traditionally, this type of analysis would require countless hours spent poring over dense financial documents, analyzing figures, and making educated guesses. Yet, with Python, the prospect of quickly reviewing stock performances isn't just possible—it's incredibly accessible and surprisingly engaging.\n", + "#### A Soaring Giant: NVIDIA's Unmatched Flight\n", "\n", - "## Harnessing Python and Yahoo Finance Data\n", + "Starting on a high note, NVDA has outpaced expectations, marking a hefty 20.97% increase in its stock price, landing at a stunning $878.37. This surge is not just a number—it's a testament to NVIDIA's stronghold on the GPU market, driven by an insatiable demand in gaming, professional markets, and groundbreaking advancements in AI technologies. As we look behind the curtain, we find a company not merely riding the tech wave but creating it, suggesting that NVIDIA's ascent is built on solid ground.\n", "\n", - "In the world where data reigns supreme, the clever use of Python code makes it a cinch to fetch current stock prices and calculate performance over a given period. The yfinance library proves invaluable here. It fetches data from Yahoo Finance, sparing you the hassle of data collection. \n", + "#### A Turbulent Ride: The Tesla Saga\n", "\n", - "With just a Python script, you can instruct your computer to fetch and analyze the last month's performance for NVDA, TSLA, and MSFT in terms of percentage. This simplifies the process of understanding what’s been happening with these dynamite stocks recently. \n", + "On the flip side of this high-flying story is Tesla, Inc. The electric vehicle behemoth saw its stock price retract by 18.19%, a notable dip to $163.57. At first glance, this might raise alarm bells, hinting at a potential stall in Tesla's meteoric rise. However, those familiar with Tesla's trajectory know this is but a chapter in its rollercoaster narrative. Factors such as production and delivery figures, regulatory landscapes, and the mercurial nature of Elon Musk's public announcements often sway Tesla's stock. Behind the scenes, Tesla's ambition and innovation engine runs full throttle, suggesting this downturn could be a mere blip in its revolutionary path.\n", "\n", - "## Unravel the Mystery Behind Stock Performance\n", + "#### Steady as She Goes: Microsoft's Calculated Climb\n", "\n", - "Of course, knowing a stock's performance is just the first step. Why does a particular stock perform the way it does? There’s not always an easy answer, as stock performance can hinge on various factors. These mandators include company announcements, earnings reports, investor sentiment, market trends, and economic indicators.\n", + "Meanwhile, Microsoft Corp charts a more moderate course. With a 3.06% increase, its stock price reached $416.42. This growth, while not as eye-catching as NVIDIA's, is reflective of Microsoft's strategic positioning in cloud computing, productivity software, and potentially lucrative contracts or partnerships. Unlike the dramatic swings of NVDA and TSLA, MSFT's journey is one of calculated progression, relying on consistent performance and innovation within its stronghold arenas.\n", "\n", - "For those of you hungry to know why NVDA, TSLA, or MSFT experienced a particular spike or dip, consider looking into any significant events, news, or announcements over the past month relating to that stock. Was there a breakthrough product announced? Perhaps a promising earnings report? Or maybe a broader market trend affected technology companies as a whole?\n", + "#### The Bigger Picture\n", "\n", - "## Dive Deeper with the NewsAPI\n", + "What these stories reveal is a complex tapestry of market dynamics. NVIDIA's leap underscores the immense potential and growing demand in cutting-edge technologies. Tesla's situation is a reminder of the volatility inherent to ambitious, disruptive companies. Meanwhile, Microsoft's steady ascent illustrates the power of sustained growth in core areas. For investors and enthusiasts alike, these developments highlight the importance of context and perspective when navigating the stock market seas.\n", "\n", - "One way to stay afloat in the torrent of stock-related news is by using the NewsAPI in conjunction with the Python requests library. This combination assists in fetching and analyzing news related to the companies of your interest, keeping you abreast of events that might directly affect stock performance.\n", + "Understanding the ‘why’ behind stock performance is crucial. While this snapshot offers a glimpse into a month's journey, diving into financial news websites and company investor relations pages can provide deeper insights into these fluctuations.\n", "\n", - "## Visualize the Stock Prices with matplotlib\n", + "As we close this chapter, the saga of NVDA, TSLA, and MSFT continues. Each, in its own way, is a beacon of technological progress and market dynamics. For those watching from the sidelines, these stories are more than financial metrics; they are narratives of human ambition, innovation, and resilience—a reminder that in the world of tech, the only constant is change.\n", "\n", - "Visualization is an absolute game-changer when it comes to understanding data, and yes, stock prices are no different whatsoever. Once you've fetched the stock prices using yfinance, you can use the Python libraries, pandas for data management and matplotlib for plotting. These tools allow you to graph the stocks' closing prices over the given period, providing a clear, visual summary of their performance. \n", + "*To those seeking to chart their course in the stock market waters, let these narratives be your guide, your caution, and your inspiration.*\n", "\n", - "To make the analysis even more concrete, the Python code stores the closing dates and prices of each stock in separate .csv files. This way, you always have a concrete log of the data breaking down the stock performances over time.\n", + "*Happy Investing!*\n", "\n", - "And there you have it! Using Python, even the novice investors among us can dive headfirst into the sea of stock market analysis. As you get comfortable retrieving and analyzing stock data, you'll find the information you glean from this process invaluable, whether you're making personal investments or just following market trends out of interest.\n", + "---\n", "\n", - "Welcome to the new era of stock analysis! Happy data crunching!\n", + "I'm always here to craft more compelling narratives from the world of finance, innovation, or any sphere that catches your intellectual curiosity. Let's embark on the next exploration whenever you're ready. \n", "\n", "TERMINATE\n", "\n", - "--------------------------------------------------------------------------------\n" + "--------------------------------------------------------------------------------\n", + "\u001b[31m\n", + ">>>>>>>> NO HUMAN INPUT RECEIVED.\u001b[0m\n" ] } ], @@ -959,7 +1085,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 7, "metadata": {}, "outputs": [ { @@ -967,63 +1093,68 @@ "output_type": "stream", "text": [ "*****1th chat*******:\n", - "The assistant provided a Python code to fetch the current stock prices and compute performance over the past month in terms of percentage change for the given stock ticker symbols, NVDA (NVIDIA Corp), TSLA (Tesla Inc), and MSFT (Microsoft Corp). This was done using the yfinance library which fetches the data from Yahoo Finance.\n", - "Human input in the middle: ['Pls add Microsoft information as well.', 'exit']\n", - "Conversation cost: ({'total_cost': 0.56541, 'gpt-4-0613': {'cost': 0.56541, 'prompt_tokens': 13003, 'completion_tokens': 2922, 'total_tokens': 15925}}, {'total_cost': 0.20337, 'gpt-4-0613': {'cost': 0.20337, 'prompt_tokens': 4311, 'completion_tokens': 1234, 'total_tokens': 5545}})\n", + "The current stock prices and the percentage changes over the past month for NVIDIA Corporation (NVDA), Tesla, Inc. (TSLA), and Microsoft Corp (MSFT) are as follows:\n", + "\n", + "- NVDA: Current price $878.37, with a 20.97% increase.\n", + "- TSLA: Current price $163.57, with an 18.19% decrease.\n", + "- MSFT: Current price $416.42, with a 3.06% increase.\n", + "\n", + "NVDA showed significant growth, MSFT experienced moderate growth, while TSLA saw a decline in its stock price over the last month.\n", + "Human input in the middle: ['Pls add Microsoft as well', '', '', '']\n", + "Conversation cost: ({'total_cost': 0.18808000000000002, 'gpt-4-0125-preview': {'cost': 0.18808000000000002, 'prompt_tokens': 10732, 'completion_tokens': 2692, 'total_tokens': 13424}}, {'total_cost': 0.12617, 'gpt-4-0125-preview': {'cost': 0.12617, 'prompt_tokens': 8735, 'completion_tokens': 1294, 'total_tokens': 10029}})\n", "\n", "\n", "\n", "*****2th chat*******:\n", - "The performance of a company's stock price could be influenced by various factors, including earnings reports, company announcements, market trends, economic indicators, and investor sentiment. To find out why a specific stock performed as it did, look out for any news, announcements, earnings report, or significant events that have occurred in the past month for that stock. Also, check the overall market trends and economic indicators during this period, and try to understand the investor sentiment towards the company. To fetch and analyze news related to a company, use the NewsAPI and Python requests library.\n", - "Human input in the middle: ['exit']\n", - "Conversation cost: ({'total_cost': 0.34029, 'gpt-4-0613': {'cost': 0.34029, 'prompt_tokens': 6785, 'completion_tokens': 2279, 'total_tokens': 9064}}, {'total_cost': 0.22940999999999998, 'gpt-4-0613': {'cost': 0.22940999999999998, 'prompt_tokens': 5097, 'completion_tokens': 1275, 'total_tokens': 6372}})\n", + "NVIDIA Corporation (NVDA) showed significant growth possibly due to strong demand for its GPUs in gaming, professional markets, and advancements in AI technologies. Tesla, Inc. (TSLA) saw a decline in its stock price, which can be affected by production numbers, delivery figures, regulatory concerns, or Elon Musk's public statements. Microsoft Corp (MSFT) experienced moderate growth likely due to its performance in cloud computing, productivity software, and possibly new contracts or partnerships. To obtain specific information on stock performance reasons, consulting financial news websites and company investor relations pages is recommended.\n", + "Human input in the middle: ['', '', '', '', '', '']\n", + "Conversation cost: ({'total_cost': 0.13297, 'gpt-4-0125-preview': {'cost': 0.13297, 'prompt_tokens': 6121, 'completion_tokens': 2392, 'total_tokens': 8513}}, {'total_cost': 0.13297, 'gpt-4-0125-preview': {'cost': 0.13297, 'prompt_tokens': 6121, 'completion_tokens': 2392, 'total_tokens': 8513}})\n", "\n", "\n", "\n", "*****3th chat*******:\n", - "The assistant provided a Python code to fetch and compare the stock prices of NVIDIA Corp (NVDA), Tesla Inc (TSLA), and Microsoft Corp (MSFT) from the past month. The code uses the yfinance library to download historical data, pandas to manage the data, and matplotlib to plot the graph. It fetches the stock prices and plots them on a graph with date on the x-axis and closing price on the y-axis. The script saves the graph as a PNG image and the closing price and date of each stock in separate .csv files.\n", - "\n", - "Human input in the middle: ['exit']\n", - "Conversation cost: ({'total_cost': 0.63072, 'gpt-4-0613': {'cost': 0.63072, 'prompt_tokens': 14100, 'completion_tokens': 3462, 'total_tokens': 17562}}, {'total_cost': 0.26868, 'gpt-4-0613': {'cost': 0.26868, 'prompt_tokens': 5408, 'completion_tokens': 1774, 'total_tokens': 7182}})\n", + "The conversation involved calculating stock prices from a month ago based on the current prices and percentage changes for NVIDIA Corporation (NVDA), Tesla, Inc. (TSLA), and Microsoft Corp (MSFT). The current price of NVDA was $878.37 with a 20.97% increase, TSLA was $163.57 with an 18.19% decrease, and MSFT was $416.42 with a 3.06% increase. The calculation and subsequent Python code plotted a comparison of these stock prices over the past month, visually representing NVDA's significant growth, MSFT's moderate increase, and TSLA's decline.\n", + "Human input in the middle: ['', '', '', '', '', '']\n", + "Conversation cost: ({'total_cost': 0.24309000000000003, 'gpt-4-0125-preview': {'cost': 0.24309000000000003, 'prompt_tokens': 13491, 'completion_tokens': 3606, 'total_tokens': 17097}}, {'total_cost': 0.18118, 'gpt-4-0125-preview': {'cost': 0.18118, 'prompt_tokens': 11494, 'completion_tokens': 2208, 'total_tokens': 13702}})\n", "\n", "\n", "\n", "*****4th chat*******:\n", - "# Scripting the Stock Market: A Deeper Look into NVIDIA, Tesla, and Microsoft\n", + "### Navigating the Highs and Lows: A Tale of Three Titans\n", "\n", - "Imagine being able to chart the highs and lows of your favorite stocks just by running a bit of code. Whether you're a seasoned investor or a curious newbie, understanding stock trends of top-performing companies like NVIDIA Corp (NVDA), Tesla Inc (TSLA), and Microsoft Corp (MSFT) can offer invaluable insights into the fast-paced world of finance. \n", + "In the dynamic world of stock trading, few tales are as compelling as those of NVIDIA Corporation (NVDA), Tesla, Inc. (TSLA), and Microsoft Corp (MSFT). Over the past month, these tech giants have each narrated a story of market valiance, caution, and resilience. Here, we delve into these narratives, unwrapping the numbers to discover what fuels their journeys.\n", "\n", - "Traditionally, this type of analysis would require countless hours spent poring over dense financial documents, analyzing figures, and making educated guesses. Yet, with Python, the prospect of quickly reviewing stock performances isn't just possible—it's incredibly accessible and surprisingly engaging.\n", + "#### A Soaring Giant: NVIDIA's Unmatched Flight\n", "\n", - "## Harnessing Python and Yahoo Finance Data\n", + "Starting on a high note, NVDA has outpaced expectations, marking a hefty 20.97% increase in its stock price, landing at a stunning $878.37. This surge is not just a number—it's a testament to NVIDIA's stronghold on the GPU market, driven by an insatiable demand in gaming, professional markets, and groundbreaking advancements in AI technologies. As we look behind the curtain, we find a company not merely riding the tech wave but creating it, suggesting that NVIDIA's ascent is built on solid ground.\n", "\n", - "In the world where data reigns supreme, the clever use of Python code makes it a cinch to fetch current stock prices and calculate performance over a given period. The yfinance library proves invaluable here. It fetches data from Yahoo Finance, sparing you the hassle of data collection. \n", + "#### A Turbulent Ride: The Tesla Saga\n", "\n", - "With just a Python script, you can instruct your computer to fetch and analyze the last month's performance for NVDA, TSLA, and MSFT in terms of percentage. This simplifies the process of understanding what’s been happening with these dynamite stocks recently. \n", + "On the flip side of this high-flying story is Tesla, Inc. The electric vehicle behemoth saw its stock price retract by 18.19%, a notable dip to $163.57. At first glance, this might raise alarm bells, hinting at a potential stall in Tesla's meteoric rise. However, those familiar with Tesla's trajectory know this is but a chapter in its rollercoaster narrative. Factors such as production and delivery figures, regulatory landscapes, and the mercurial nature of Elon Musk's public announcements often sway Tesla's stock. Behind the scenes, Tesla's ambition and innovation engine runs full throttle, suggesting this downturn could be a mere blip in its revolutionary path.\n", "\n", - "## Unravel the Mystery Behind Stock Performance\n", + "#### Steady as She Goes: Microsoft's Calculated Climb\n", "\n", - "Of course, knowing a stock's performance is just the first step. Why does a particular stock perform the way it does? There’s not always an easy answer, as stock performance can hinge on various factors. These mandators include company announcements, earnings reports, investor sentiment, market trends, and economic indicators.\n", + "Meanwhile, Microsoft Corp charts a more moderate course. With a 3.06% increase, its stock price reached $416.42. This growth, while not as eye-catching as NVIDIA's, is reflective of Microsoft's strategic positioning in cloud computing, productivity software, and potentially lucrative contracts or partnerships. Unlike the dramatic swings of NVDA and TSLA, MSFT's journey is one of calculated progression, relying on consistent performance and innovation within its stronghold arenas.\n", "\n", - "For those of you hungry to know why NVDA, TSLA, or MSFT experienced a particular spike or dip, consider looking into any significant events, news, or announcements over the past month relating to that stock. Was there a breakthrough product announced? Perhaps a promising earnings report? Or maybe a broader market trend affected technology companies as a whole?\n", + "#### The Bigger Picture\n", "\n", - "## Dive Deeper with the NewsAPI\n", + "What these stories reveal is a complex tapestry of market dynamics. NVIDIA's leap underscores the immense potential and growing demand in cutting-edge technologies. Tesla's situation is a reminder of the volatility inherent to ambitious, disruptive companies. Meanwhile, Microsoft's steady ascent illustrates the power of sustained growth in core areas. For investors and enthusiasts alike, these developments highlight the importance of context and perspective when navigating the stock market seas.\n", "\n", - "One way to stay afloat in the torrent of stock-related news is by using the NewsAPI in conjunction with the Python requests library. This combination assists in fetching and analyzing news related to the companies of your interest, keeping you abreast of events that might directly affect stock performance.\n", + "Understanding the ‘why’ behind stock performance is crucial. While this snapshot offers a glimpse into a month's journey, diving into financial news websites and company investor relations pages can provide deeper insights into these fluctuations.\n", "\n", - "## Visualize the Stock Prices with matplotlib\n", + "As we close this chapter, the saga of NVDA, TSLA, and MSFT continues. Each, in its own way, is a beacon of technological progress and market dynamics. For those watching from the sidelines, these stories are more than financial metrics; they are narratives of human ambition, innovation, and resilience—a reminder that in the world of tech, the only constant is change.\n", "\n", - "Visualization is an absolute game-changer when it comes to understanding data, and yes, stock prices are no different whatsoever. Once you've fetched the stock prices using yfinance, you can use the Python libraries, pandas for data management and matplotlib for plotting. These tools allow you to graph the stocks' closing prices over the given period, providing a clear, visual summary of their performance. \n", + "*To those seeking to chart their course in the stock market waters, let these narratives be your guide, your caution, and your inspiration.*\n", "\n", - "To make the analysis even more concrete, the Python code stores the closing dates and prices of each stock in separate .csv files. This way, you always have a concrete log of the data breaking down the stock performances over time.\n", + "*Happy Investing!*\n", "\n", - "And there you have it! Using Python, even the novice investors among us can dive headfirst into the sea of stock market analysis. As you get comfortable retrieving and analyzing stock data, you'll find the information you glean from this process invaluable, whether you're making personal investments or just following market trends out of interest.\n", + "---\n", "\n", - "Welcome to the new era of stock analysis! Happy data crunching!\n", + "I'm always here to craft more compelling narratives from the world of finance, innovation, or any sphere that catches your intellectual curiosity. Let's embark on the next exploration whenever you're ready. \n", "\n", "\n", - "Human input in the middle: ['exit']\n", - "Conversation cost: ({'total_cost': 0.09408, 'gpt-4-0613': {'cost': 0.09408, 'prompt_tokens': 702, 'completion_tokens': 1217, 'total_tokens': 1919}}, {'total_cost': 0.09408, 'gpt-4-0613': {'cost': 0.09408, 'prompt_tokens': 702, 'completion_tokens': 1217, 'total_tokens': 1919}})\n", + "Human input in the middle: ['']\n", + "Conversation cost: ({'total_cost': 0.05552, 'gpt-4-0125-preview': {'cost': 0.05552, 'prompt_tokens': 833, 'completion_tokens': 1573, 'total_tokens': 2406}}, {'total_cost': 0.05552, 'gpt-4-0125-preview': {'cost': 0.05552, 'prompt_tokens': 833, 'completion_tokens': 1573, 'total_tokens': 2406}})\n", "\n", "\n", "\n" @@ -1057,10 +1188,12 @@ "text": [ "\u001b[34m\n", "********************************************************************************\u001b[0m\n", - "\u001b[34mStart a new chat with the following message: \n", + "\u001b[34mStarting a new chat....\n", + "\n", + "Message:\n", "What are the current stock prices of NVDA and TESLA, and how is the performance over the past month in terms of percentage change?\n", "\n", - "With the following carryover: \n", + "Carryover: \n", "\u001b[0m\n", "\u001b[34m\n", "********************************************************************************\u001b[0m\n", @@ -1071,112 +1204,134 @@ "--------------------------------------------------------------------------------\n", "\u001b[33mResearcher\u001b[0m (to User):\n", "\n", - "To obtain the current stock prices of NVDA (Nvidia Corporation) and TSLA (Tesla, Inc.), as well as their performance over the past month in terms of percentage change, I will use Python code to fetch this information from a financial data API. For this task, we can use the Yahoo Finance API through the `yfinance` library, which allows us to collect stock information programmatically.\n", + "To obtain current stock prices of NVDA (NVIDIA Corporation) and TSLA (Tesla, Inc.), and calculate their performance over the past month in terms of percentage change, we can use the Yahoo Finance API through the `yfinance` Python package. This process involves the following steps:\n", "\n", - "Here is the plan:\n", - "1. Use Python code to access the required stock data via the `yfinance` library.\n", - "2. Fetch the current prices of NVDA and TSLA.\n", - "3. Calculate the percentage change in their stock prices over the past month.\n", + "1. Install the `yfinance` package (if not already installed).\n", + "2. Use `yfinance` to fetch the current stock prices of NVDA and TSLA.\n", + "3. Fetch historical data for the past month for both stocks.\n", + "4. Calculate the percentage change in the stock prices over the last month based on the historical data.\n", "\n", - "First, you'll need to ensure that the `yfinance` library is installed. If it's not already installed, you can install it using pip. Execute the following Python code to perform the tasks:\n", + "Please execute the following Python code to perform these tasks:\n", "\n", "```python\n", "# filename: stock_info.py\n", - "\n", "import yfinance as yf\n", "from datetime import datetime, timedelta\n", "\n", - "# Define the tickers for Nvidia and Tesla\n", - "tickers = [\"NVDA\", \"TSLA\"]\n", - "\n", - "# Define the time period: end date is today, start date is one month ago\n", - "end_date = datetime.today()\n", - "start_date = end_date - timedelta(days=30)\n", - "\n", - "# Function to fetch and display stock info\n", - "def fetch_and_display_info(ticker):\n", - " stock = yf.Ticker(ticker)\n", + "def stock_performance(ticker):\n", + " # Fetching data for the past month\n", + " end_date = datetime.today()\n", + " start_date = end_date - timedelta(days=30) # Approximate for the past month\n", " \n", - " # Fetch historical data for the past month\n", - " hist = stock.history(start=start_date, end=end_date)\n", + " # Fetch historical data\n", + " data = yf.download(ticker, start=start_date, end=end_date)\n", " \n", - " # Get the last closing price (most recent date)\n", - " last_close_price = hist['Close'].iloc[-1]\n", + " # Current and beginning of month prices\n", + " current_price = data['Close'].iloc[-1]\n", + " start_month_price = data['Close'].iloc[0] \n", " \n", - " # Calculate the percentage change over the past month\n", - " start_price = hist['Close'].iloc[0] # First day's closing price in the hist data\n", - " percentage_change = ((last_close_price - start_price) / start_price) * 100\n", + " # Calculate percentage change over the month\n", + " percent_change = ((current_price - start_month_price) / start_month_price) * 100\n", " \n", - " print(f\"{ticker} Current Price: ${last_close_price:.2f}\")\n", - " print(f\"{ticker} Performance Over The Past Month: {percentage_change:.2f}%\\n\")\n", + " return current_price, percent_change\n", + "\n", + "# NVDA and TSLA stock performance\n", + "nvda_price, nvda_change = stock_performance(\"NVDA\")\n", + "tsla_price, tsla_change = stock_performance(\"TSLA\")\n", "\n", - "# Fetch and display info for each ticker\n", - "for ticker in tickers:\n", - " fetch_and_display_info(ticker)\n", + "print(f\"NVDA (NVIDIA Corp) current price: ${nvda_price:.2f}, Performance over past month: {nvda_change:.2f}%\")\n", + "print(f\"TSLA (Tesla, Inc.) current price: ${tsla_price:.2f}, Performance over past month: {tsla_change:.2f}%\")\n", "```\n", "\n", - "Please save the above code in a file named `stock_info.py` and execute it. This script will output the current prices of NVDA and TSLA, along with the percentage changes in their stock prices over the past month.\n", + "Before running this script, ensure that you have the `yfinance` package installed. If not, install it using the following command:\n", + "\n", + "```sh\n", + "pip install yfinance\n", + "```\n", "\n", - "If you encounter any issues or have any questions regarding the execution or results, please let me know!\n", + "This script will output the current stock prices of NVDA and TSLA, along with their performance over the past month in percentage terms.\n", "\n", "--------------------------------------------------------------------------------\n", "\u001b[31m\n", ">>>>>>>> EXECUTING CODE BLOCK 0 (inferred language is python)...\u001b[0m\n", + "\u001b[31m\n", + ">>>>>>>> EXECUTING CODE BLOCK 1 (inferred language is sh)...\u001b[0m\n", "\u001b[33mUser\u001b[0m (to Researcher):\n", "\n", "exitcode: 0 (execution succeeded)\n", "Code output: \n", - "NVDA Current Price: $726.13\n", - "NVDA Performance Over The Past Month: 21.72%\n", - "\n", - "TSLA Current Price: $199.95\n", - "TSLA Performance Over The Past Month: -4.24%\n", + "NVDA (NVIDIA Corp) current price: $878.37, Performance over past month: 20.97%\n", + "TSLA (Tesla, Inc.) current price: $163.57, Performance over past month: -18.19%\n", "\n", + "Defaulting to user installation because normal site-packages is not writeable\n", + "Requirement already satisfied: yfinance in /home/autogen/.local/lib/python3.11/site-packages (0.2.37)\n", + "Requirement already satisfied: pandas>=1.3.0 in /home/autogen/.local/lib/python3.11/site-packages (from yfinance) (2.2.1)\n", + "Requirement already satisfied: numpy>=1.16.5 in /usr/local/lib/python3.11/site-packages (from yfinance) (1.26.4)\n", + "Requirement already satisfied: requests>=2.31 in /usr/local/lib/python3.11/site-packages (from yfinance) (2.31.0)\n", + "Requirement already satisfied: multitasking>=0.0.7 in /home/autogen/.local/lib/python3.11/site-packages (from yfinance) (0.0.11)\n", + "Requirement already satisfied: lxml>=4.9.1 in /home/autogen/.local/lib/python3.11/site-packages (from yfinance) (5.1.0)\n", + "Requirement already satisfied: appdirs>=1.4.4 in /home/autogen/.local/lib/python3.11/site-packages (from yfinance) (1.4.4)\n", + "Requirement already satisfied: pytz>=2022.5 in /home/autogen/.local/lib/python3.11/site-packages (from yfinance) (2024.1)\n", + "Requirement already satisfied: frozendict>=2.3.4 in /home/autogen/.local/lib/python3.11/site-packages (from yfinance) (2.4.0)\n", + "Requirement already satisfied: peewee>=3.16.2 in /home/autogen/.local/lib/python3.11/site-packages (from yfinance) (3.17.1)\n", + "Requirement already satisfied: beautifulsoup4>=4.11.1 in /usr/local/lib/python3.11/site-packages (from yfinance) (4.12.3)\n", + "Requirement already satisfied: html5lib>=1.1 in /home/autogen/.local/lib/python3.11/site-packages (from yfinance) (1.1)\n", + "Requirement already satisfied: soupsieve>1.2 in /usr/local/lib/python3.11/site-packages (from beautifulsoup4>=4.11.1->yfinance) (2.5)\n", + "Requirement already satisfied: six>=1.9 in /usr/local/lib/python3.11/site-packages (from html5lib>=1.1->yfinance) (1.16.0)\n", + "Requirement already satisfied: webencodings in /usr/local/lib/python3.11/site-packages (from html5lib>=1.1->yfinance) (0.5.1)\n", + "Requirement already satisfied: python-dateutil>=2.8.2 in /usr/local/lib/python3.11/site-packages (from pandas>=1.3.0->yfinance) (2.9.0.post0)\n", + "Requirement already satisfied: tzdata>=2022.7 in /home/autogen/.local/lib/python3.11/site-packages (from pandas>=1.3.0->yfinance) (2024.1)\n", + "Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.11/site-packages (from requests>=2.31->yfinance) (3.3.2)\n", + "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.11/site-packages (from requests>=2.31->yfinance) (3.6)\n", + "Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.11/site-packages (from requests>=2.31->yfinance) (2.2.1)\n", + "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.11/site-packages (from requests>=2.31->yfinance) (2024.2.2)\n", "\n", "\n", "--------------------------------------------------------------------------------\n", "\u001b[33mResearcher\u001b[0m (to User):\n", "\n", - "The execution of the provided Python code successfully fetched the current stock prices and the performance over the past month for Nvidia Corporation (NVDA) and Tesla, Inc. (TSLA). Here are the results:\n", - "\n", - "- **Nvidia Corporation (NVDA):**\n", - " - Current Price: $726.13\n", - " - Performance Over The Past Month: +21.72%\n", + "The code execution was successful, and here are the results based on the output:\n", "\n", - "- **Tesla, Inc. (TSLA):**\n", - " - Current Price: $199.95\n", - " - Performance Over The Past Month: -4.24%\n", + "- **NVIDIA Corporation (NVDA)** has a current stock price of **$878.37**. Over the past month, NVDA has experienced a performance increase of **20.97%**.\n", + "- **Tesla, Inc. (TSLA)** has a current stock price of **$163.57**. Over the past month, TSLA has experienced a performance decrease of **-18.19%**.\n", "\n", - "This data indicates that over the past month, NVDA's stock has seen a significant positive increase in its price, with a 21.72% rise, showcasing strong performance. On the other hand, TSLA's stock has experienced a slight decline, with a 4.24% decrease in its price.\n", - "\n", - "These performance metrics can be useful for investors and traders to understand recent trends in these companies' stock values.\n", - "\n", - "If you have any more questions or need further assistance, feel free to ask. Otherwise, we can conclude here.\n", + "These figures provide a snapshot of how both companies have performed in the stock market over the last month, reflecting growth for NVIDIA and a decline for Tesla.\n", "\n", "TERMINATE\n", "\n", "--------------------------------------------------------------------------------\n", "\u001b[34m\n", "********************************************************************************\u001b[0m\n", - "\u001b[34mStart a new chat with the following message: \n", + "\u001b[34mStarting a new chat....\n", + "\n", + "Message:\n", "Investigate possible reasons of the stock performance.\n", "\n", - "With the following carryover: \n", - "The execution of the provided Python code successfully fetched the current stock prices and the performance over the past month for Nvidia Corporation (NVDA) and Tesla, Inc. (TSLA). Here are the results:\n", + "Carryover: \n", + "The code execution was successful, and here are the results based on the output:\n", "\n", - "- **Nvidia Corporation (NVDA):**\n", - " - Current Price: $726.13\n", - " - Performance Over The Past Month: +21.72%\n", + "- **NVIDIA Corporation (NVDA)** has a current stock price of **$878.37**. Over the past month, NVDA has experienced a performance increase of **20.97%**.\n", + "- **Tesla, Inc. (TSLA)** has a current stock price of **$163.57**. Over the past month, TSLA has experienced a performance decrease of **-18.19%**.\n", + "\n", + "These figures provide a snapshot of how both companies have performed in the stock market over the last month, reflecting growth for NVIDIA and a decline for Tesla.\n", + "\n", + "\u001b[0m\n", + "\u001b[34m\n", + "********************************************************************************\u001b[0m\n", + "\u001b[34m\n", + "********************************************************************************\u001b[0m\n", + "\u001b[34mStarting a new chat....\n", "\n", - "- **Tesla, Inc. (TSLA):**\n", - " - Current Price: $199.95\n", - " - Performance Over The Past Month: -4.24%\n", + "Message:\n", + "Plot a graph comparing the stock prices over the past month.\n", "\n", - "This data indicates that over the past month, NVDA's stock has seen a significant positive increase in its price, with a 21.72% rise, showcasing strong performance. On the other hand, TSLA's stock has experienced a slight decline, with a 4.24% decrease in its price.\n", + "Carryover: \n", + "The code execution was successful, and here are the results based on the output:\n", "\n", - "These performance metrics can be useful for investors and traders to understand recent trends in these companies' stock values.\n", + "- **NVIDIA Corporation (NVDA)** has a current stock price of **$878.37**. Over the past month, NVDA has experienced a performance increase of **20.97%**.\n", + "- **Tesla, Inc. (TSLA)** has a current stock price of **$163.57**. Over the past month, TSLA has experienced a performance decrease of **-18.19%**.\n", "\n", - "If you have any more questions or need further assistance, feel free to ask. Otherwise, we can conclude here.\n", + "These figures provide a snapshot of how both companies have performed in the stock market over the last month, reflecting growth for NVIDIA and a decline for Tesla.\n", "\n", "\u001b[0m\n", "\u001b[34m\n", @@ -1185,187 +1340,281 @@ "\n", "Investigate possible reasons of the stock performance.\n", "Context: \n", - "The execution of the provided Python code successfully fetched the current stock prices and the performance over the past month for Nvidia Corporation (NVDA) and Tesla, Inc. (TSLA). Here are the results:\n", + "The code execution was successful, and here are the results based on the output:\n", + "\n", + "- **NVIDIA Corporation (NVDA)** has a current stock price of **$878.37**. Over the past month, NVDA has experienced a performance increase of **20.97%**.\n", + "- **Tesla, Inc. (TSLA)** has a current stock price of **$163.57**. Over the past month, TSLA has experienced a performance decrease of **-18.19%**.\n", "\n", - "- **Nvidia Corporation (NVDA):**\n", - " - Current Price: $726.13\n", - " - Performance Over The Past Month: +21.72%\n", + "These figures provide a snapshot of how both companies have performed in the stock market over the last month, reflecting growth for NVIDIA and a decline for Tesla.\n", "\n", - "- **Tesla, Inc. (TSLA):**\n", - " - Current Price: $199.95\n", - " - Performance Over The Past Month: -4.24%\n", "\n", - "This data indicates that over the past month, NVDA's stock has seen a significant positive increase in its price, with a 21.72% rise, showcasing strong performance. On the other hand, TSLA's stock has experienced a slight decline, with a 4.24% decrease in its price.\n", "\n", - "These performance metrics can be useful for investors and traders to understand recent trends in these companies' stock values.\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33mUser\u001b[0m (to Research_manager):\n", + "\n", + "Plot a graph comparing the stock prices over the past month.\n", + "Context: \n", + "The code execution was successful, and here are the results based on the output:\n", + "\n", + "- **NVIDIA Corporation (NVDA)** has a current stock price of **$878.37**. Over the past month, NVDA has experienced a performance increase of **20.97%**.\n", + "- **Tesla, Inc. (TSLA)** has a current stock price of **$163.57**. Over the past month, TSLA has experienced a performance decrease of **-18.19%**.\n", "\n", - "If you have any more questions or need further assistance, feel free to ask. Otherwise, we can conclude here.\n", + "These figures provide a snapshot of how both companies have performed in the stock market over the last month, reflecting growth for NVIDIA and a decline for Tesla.\n", "\n", "\n", "\n", "--------------------------------------------------------------------------------\n", "\u001b[33mResearcher\u001b[0m (to Research_manager):\n", "\n", - "To investigate the possible reasons behind the stock performance of Nvidia Corporation (NVDA) and Tesla, Inc. (TSLA), we need to consider various factors that could influence their stock prices. Here's a step-by-step plan for our investigation:\n", + "To compare the stock prices of NVIDIA Corporation (NVDA) and Tesla, Inc. (TSLA) over the past month graphically, we will plot their growth percentages over a timeline. Since direct daily stock prices over the past month are not provided, we'll illustrate the overall performance based on the percentage changes provided.\n", + "\n", + "We'll assume the starting stock price of both companies a month ago was 100% (their stock price at the beginning of the timeline), and then we'll plot the end point using the percentage increase and decrease for NVDA and TSLA, respectively. This approach provides a simplified visualization of relative growth.\n", + "\n", + "For this purpose, I'll provide Python code that uses matplotlib for plotting. The code will represent the starting point (a month ago) and the current point, reflecting the change.\n", + "\n", + "```python\n", + "import matplotlib.pyplot as plt\n", + "\n", + "# Names of the companies\n", + "companies = ['NVDA', 'TSLA']\n", + "\n", + "# Performance over the past month (in percentage)\n", + "performance = [20.97, -18.19] # NVDA increased by 20.97%, TSLA decreased by -18.19%\n", + "\n", + "# Plot\n", + "plt.figure(figsize=(10, 6))\n", + "for i, perf in enumerate(performance):\n", + " plt.plot(['1 Month Ago', 'Now'], [100, 100 + perf], label=companies[i], marker='o')\n", + "\n", + "# Add title and labels\n", + "plt.title('Stock Performance Over the Last Month')\n", + "plt.ylabel('Performance (%) Relative to 1 Month Ago')\n", "\n", - "1. **Market News and Events:** We will look for any recent news, announcements, or events related to Nvidia and Tesla that could influence investor sentiment and stock performance. This includes financial reports, product launches, regulatory changes, or significant partnerships.\n", + "# Add a legend\n", + "plt.legend()\n", + "\n", + "# Show the plot\n", + "plt.grid(True)\n", + "plt.show()\n", + "```\n", + "\n", + "Execute this Python code to generate the plot comparing the stock performance of NVIDIA Corporation (NVDA) and Tesla, Inc. (TSLA) over the past month. The plot starts with the assumption that both stocks were at a relative performance level of 100% a month ago. NVIDIA's line will show an upward trend indicating growth, while Tesla's line will show a downward trend, indicating a decrease in stock value.\n", "\n", - "2. **Industry Trends:** The performance of a company's stock is also influenced by broader industry trends. For Nvidia, this might include the demand for GPUs for gaming, data centers, and AI applications. For Tesla, factors might include electric vehicle (EV) market trends, competition, and regulatory changes affecting the automotive industry.\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33mResearcher\u001b[0m (to Research_manager):\n", "\n", - "3. **Economic Indicators:** General economic conditions, such as interest rates, inflation, and consumer spending, can impact stock performance. A growing economy might fuel investments in technology and innovation, benefiting companies like Nvidia and Tesla.\n", + "Given the performance of NVIDIA Corporation (NVDA) and Tesla, Inc. (TSLA) over the last month, let's calculate their stock prices at the beginning of the period. This will allow us to plot a graph showing the comparison of their stock prices over the past month.\n", "\n", - "4. **Technological Innovations:** Any groundbreaking technological advancements announced by either company could affect stock prices. For Nvidia, this might be related to advancements in AI, while for Tesla, innovations in battery technology or autonomous driving could be significant.\n", + "Step 1: Calculate the price one month ago based on the given performance percentage.\n", + "- For NVDA, with a current price of $878.37 and a performance increase of 20.97%, we can calculate its price a month ago.\n", + "- For TSLA, with a current price of $163.57 and a performance decrease of -18.19%, we can also calculate its price a month ago.\n", "\n", - "5. **Company-specific Factors:** Factors such as changes in leadership, legal issues, or supply chain disruptions could also impact the stock prices of Nvidia and Tesla.\n", + "Step 2: Plot a graph based on the calculated starting prices and the current prices. This will highlight how the stock prices have shifted over the past month.\n", "\n", - "I will now search the web for the most recent news and information related to Nvidia (NVDA) and Tesla (TSLA) that could shed light on their recent stock performance. This will include looking into financial news, industry-related updates, and any recent announcements made by the companies themselves.\n", + "First, let's calculate the starting prices for both NVDA and TSLA a month ago using Python. Then, we'll move on to plotting the graph in the next step.\n", "\n", "```python\n", - "# filename: fetch_news.py\n", - "import requests\n", - "from bs4 import BeautifulSoup\n", + "# Calculate starting prices one month ago based on given percentages\n", "\n", - "def search_news(company):\n", - " # Searching for news on Google News\n", - " url = f'https://www.google.com/search?q={company}+stock+news&tbm=nws'\n", - " response = requests.get(url)\n", - " soup = BeautifulSoup(response.text, 'html.parser')\n", - " # Looking for headlines\n", - " headlines = soup.find_all('div', {'class': 'BVG0Nb'})\n", - " links = soup.find_all('a', href=True)\n", - " news_items = []\n", - " for headline, link in zip(headlines, links):\n", - " news_items.append({'title': headline.text, 'link': link['href']})\n", - " return news_items[:5] # Returning the first 5 news items\n", - "\n", - "# Searching for news related to Nvidia and Tesla\n", - "nvidia_news = search_news('Nvidia Corporation NVDA')\n", - "tesla_news = search_news('Tesla Inc TSLA')\n", - "\n", - "# Printing out the news items\n", - "print('Nvidia Corporation (NVDA) Recent News:')\n", - "for news in nvidia_news:\n", - " print(f\"- {news['title']} {news['link']}\")\n", - "\n", - "print('\\nTesla, Inc. (TSLA) Recent News:')\n", - "for news in tesla_news:\n", - " print(f\"- {news['title']} {news['link']}\")\n", + "# NVDA details\n", + "nvda_current_price = 878.37\n", + "nvda_performance_increase = 20.97 # Percentage\n", + "\n", + "# TSLA details\n", + "tsla_current_price = 163.57\n", + "tsla_performance_decrease = -18.19 # Percentage\n", + "\n", + "# Calculate starting prices\n", + "nvda_starting_price = nvda_current_price / (1 + nvda_performance_increase / 100)\n", + "tsla_starting_price = tsla_current_price / (1 + tsla_performance_decrease / 100)\n", + "\n", + "# Print starting prices\n", + "print(f'NVIDIA Corporation (NVDA) starting price one month ago: ${nvda_starting_price:.2f}')\n", + "print(f'Tesla, Inc. (TSLA) starting price one month ago: ${tsla_starting_price:.2f}')\n", "```\n", "\n", - "Please execute the provided Python script to search for the latest news regarding Nvidia Corporation (NVDA) and Tesla, Inc. (TSLA). This will give us a starting point to understand the factors influencing their recent stock performance.\n", + "Please run the provided Python code to calculate and print the starting prices of NVDA and TSLA stocks one month ago. After that, we will proceed to plotting the graph.\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[31m\n", + ">>>>>>>> EXECUTING CODE BLOCK 0 (inferred language is python)...\u001b[0m\n", + "\u001b[33mUser_proxy\u001b[0m (to Research_manager):\n", + "\n", + "exitcode: 0 (execution succeeded)\n", + "Code output: \n", + "NVIDIA Corporation (NVDA) starting price one month ago: $726.11\n", + "Tesla, Inc. (TSLA) starting price one month ago: $199.94\n", + "\n", "\n", "--------------------------------------------------------------------------------\n", "\u001b[33mCritic\u001b[0m (to Research_manager):\n", "\n", - "The plan is logical and thorough, covering most essential factors that can affect the stock performance of Nvidia Corporation (NVDA) and Tesla, Inc. (TSLA). Here are a few feedback points and suggestions to ensure a comprehensive investigation:\n", + "With the calculated starting prices for NVIDIA Corporation (NVDA) and Tesla, Inc. (TSLA) a month ago being $726.11 and $199.94 respectively, and knowing their current prices, we can now plot a graph comparing the stock prices over the past month. This graph will visually depict the growth of NVDA and the decline of TSLA within the given period.\n", + "\n", + "Let's proceed with plotting this comparison using Python and matplotlib. The plot will use the starting and current prices to show the trajectory of both stocks over the past month.\n", + "\n", + "```python\n", + "import matplotlib.pyplot as plt\n", "\n", - "1. **Execution Note:** Considering that the provided Python script uses web scraping to fetch the latest news from Google search results, it's important to note that this method might encounter challenges due to the dynamic nature of web content and potential anti-scraping measures. Users should ensure they are compliant with Google's Terms of Service and consider using official APIs for reliable data retrieval when possible.\n", + "# Stock prices one month ago\n", + "starting_prices = [726.11, 199.94]\n", + "# Current stock prices\n", + "current_prices = [878.37, 163.57]\n", "\n", - "2. **Financial Performance:** While the plan mentions looking into general market news and events, it's specifically crucial to analyze the companies' latest financial reports (quarterly/annually). Insights into revenue, profit margins, growth forecasts, and analyst ratings could provide a more concrete basis for understanding stock performance.\n", + "# Company names\n", + "companies = ['NVDA', 'TSLA']\n", "\n", - "3. **Comparison with Competitors:** Adding a comparative analysis of competitors within the same industries (e.g., AMD for Nvidia and Ford or Rivian for Tesla) could offer additional context. Performance might not only be due to internal factors but also how these companies are doing relative to their peers.\n", + "# Dates representing the timeline: '1 Month Ago' and 'Now'\n", + "dates = ['1 Month Ago', 'Now']\n", "\n", - "4. **Sentiment Analysis:** Analyzing investor sentiment, perhaps by looking at social media or investor forums, could give an idea of how market perceptions are influencing stock prices beyond just factual news.\n", + "# Plotting the stock prices over the past month\n", + "plt.figure(figsize=(10, 6))\n", + "for i in range(len(companies)):\n", + " plt.plot(dates, [starting_prices[i], current_prices[i]], label=companies[i], marker='o')\n", "\n", - "5. **Technological Roadmaps:** For companies like Nvidia and Tesla, where innovation is key, looking into their technology roadmaps or any patents they might have filed recently could provide insights into their future potential and how it's being valued by the market.\n", + "# Adding details to the plot\n", + "plt.title('NVDA vs TSLA Stock Prices Over the Past Month')\n", + "plt.ylabel('Stock Price ($)')\n", + "plt.legend()\n", + "plt.grid(True)\n", "\n", - "6. **Environmental, Social, and Governance (ESG) Factors:** With increasing attention on sustainable investing, ESG factors might also play a role in a company's stock performance. For Tesla, environmental factors might be particularly relevant.\n", + "# Show the plot\n", + "plt.show()\n", + "```\n", "\n", - "7. **Source Verification:** The plan mentions that the executed Python script will fetch the most recent news for analysis. It’s important to cross-verify the information obtained from the news with reliable sources or directly from the company’s announcements to ensure accuracy.\n", + "This code snippet will generate a line graph comparing the stock price movements of NVDA and TSLA over the past month, starting from the calculated values a month ago to their current values. The increasing trend for NVDA and the decreasing trend for TSLA over the specified timeline are expected to be clearly visible in this plot. \n", "\n", - "Following these suggestions, adjusting the plan for data reliability, and incorporating a broader analysis spectrum will likely yield a more comprehensive understanding of the stock performance for Nvidia and Tesla.\n", + "Ensure this code is executed in an environment where Python and matplotlib are installed to visualize the comparison effectively.\n", "\n", "TERMINATE\n", "\n", "--------------------------------------------------------------------------------\n", - "\u001b[34m\n", - "********************************************************************************\u001b[0m\n", - "\u001b[34mStart a new chat with the following message: \n", - "Develop an engaging blog post using any information provided.\n", + "\u001b[33mCritic\u001b[0m (to Research_manager):\n", + "\n", + "The calculated starting prices for NVIDIA Corporation (NVDA) and Tesla, Inc. (TSLA) one month ago are $726.11 and $199.94, respectively. Given these starting prices and the current prices ($878.37 for NVDA and $163.57 for TSLA), we can plot a graph to visually compare the stock price movement of these two companies over the past month.\n", + "\n", + "Now, using these starting and current prices, we will plot a graph to illustrate the price changes. The x-axis will represent the time interval (from '1 Month Ago' to 'Now'), and the y-axis will represent the stock prices in USD.\n", + "\n", + "```python\n", + "import matplotlib.pyplot as plt\n", + "\n", + "# Time points\n", + "time_points = ['1 Month Ago', 'Now']\n", "\n", - "With the following carryover: \n", - "The execution of the provided Python code successfully fetched the current stock prices and the performance over the past month for Nvidia Corporation (NVDA) and Tesla, Inc. (TSLA). Here are the results:\n", + "# Stock prices for NVDA\n", + "nvda_prices = [726.11, 878.37]\n", "\n", - "- **Nvidia Corporation (NVDA):**\n", - " - Current Price: $726.13\n", - " - Performance Over The Past Month: +21.72%\n", + "# Stock prices for TSLA\n", + "tsla_prices = [199.94, 163.57]\n", "\n", - "- **Tesla, Inc. (TSLA):**\n", - " - Current Price: $199.95\n", - " - Performance Over The Past Month: -4.24%\n", + "# Plot for NVDA\n", + "plt.plot(time_points, nvda_prices, marker='o', label='NVDA')\n", "\n", - "This data indicates that over the past month, NVDA's stock has seen a significant positive increase in its price, with a 21.72% rise, showcasing strong performance. On the other hand, TSLA's stock has experienced a slight decline, with a 4.24% decrease in its price.\n", + "# Plot for TSLA\n", + "plt.plot(time_points, tsla_prices, marker='o', label='TSLA')\n", "\n", - "These performance metrics can be useful for investors and traders to understand recent trends in these companies' stock values.\n", + "# Adding title and labels\n", + "plt.title('Stock Price Comparison Over the Past Month')\n", + "plt.xlabel('Time')\n", + "plt.ylabel('Stock Price (USD)')\n", "\n", - "If you have any more questions or need further assistance, feel free to ask. Otherwise, we can conclude here.\n", + "# Adding legend\n", + "plt.legend()\n", "\n", + "# Showing the plot\n", + "plt.grid(True)\n", + "plt.show()\n", + "```\n", "\n", - "To investigate the stock performance of Nvidia Corporation (NVDA) and Tesla, Inc. (TSLA), it's recommended to consider market news, industry trends, economic indicators, and company-specific factors including technological innovations. The plan includes executing a Python script to fetch the latest news. Feedback emphasizes ensuring compliance with Google's Terms of Service, analyzing financial reports, comparing competitors, sentiment analysis, investigating technological roadmaps, considering ESG factors, and verifying sources for accuracy. This comprehensive approach, adjusting for data reliability and a broader analysis spectrum, will aid in understanding the reasons behind the stock performance of Nvidia and Tesla.\u001b[0m\n", + "Execute the above Python code to generate a line graph. This graph compares the stock price movements of NVIDIA (NVDA) and Tesla (TSLA) over the last month. The graph uses the starting prices as calculated based on the performance percentages previously provided and the current prices. It visually illustrates the price trends, showing NVDA's growth and TSLA's decline during the period.\n", + "\n", + "TERMINATE\n", + "\n", + "--------------------------------------------------------------------------------\n", "\u001b[34m\n", "********************************************************************************\u001b[0m\n", - "\u001b[33mUser\u001b[0m (to Writing_manager):\n", + "\u001b[34mStarting a new chat....\n", "\n", + "Message:\n", "Develop an engaging blog post using any information provided.\n", - "Context: \n", - "The execution of the provided Python code successfully fetched the current stock prices and the performance over the past month for Nvidia Corporation (NVDA) and Tesla, Inc. (TSLA). Here are the results:\n", "\n", - "- **Nvidia Corporation (NVDA):**\n", - " - Current Price: $726.13\n", - " - Performance Over The Past Month: +21.72%\n", + "Carryover: \n", + "The code execution was successful, and here are the results based on the output:\n", "\n", - "- **Tesla, Inc. (TSLA):**\n", - " - Current Price: $199.95\n", - " - Performance Over The Past Month: -4.24%\n", + "- **NVIDIA Corporation (NVDA)** has a current stock price of **$878.37**. Over the past month, NVDA has experienced a performance increase of **20.97%**.\n", + "- **Tesla, Inc. (TSLA)** has a current stock price of **$163.57**. Over the past month, TSLA has experienced a performance decrease of **-18.19%**.\n", "\n", - "This data indicates that over the past month, NVDA's stock has seen a significant positive increase in its price, with a 21.72% rise, showcasing strong performance. On the other hand, TSLA's stock has experienced a slight decline, with a 4.24% decrease in its price.\n", + "These figures provide a snapshot of how both companies have performed in the stock market over the last month, reflecting growth for NVIDIA and a decline for Tesla.\n", "\n", - "These performance metrics can be useful for investors and traders to understand recent trends in these companies' stock values.\n", "\n", - "If you have any more questions or need further assistance, feel free to ask. Otherwise, we can conclude here.\n", + "The conversation involved calculating the starting prices of NVIDIA Corporation (NVDA) and Tesla, Inc. (TSLA) stocks a month ago, based on their current prices and recent performance. NVDA's starting price was determined to be $726.11, considering a 20.97% increase to its current price of $878.37. TSLA's starting price was calculated at $199.94, given an 18.19% decrease to its current price of $163.57. The discussion then provided Python code for plotting a graph comparing the stock prices of NVDA and TSLA over the past month, highlighting NVDA's growth and TSLA's decline.\n", + "The conversation involved calculating the starting stock prices of NVIDIA Corporation (NVDA) and Tesla, Inc. (TSLA) a month ago based on their current prices and performance percentages. NVDA's starting price a month ago was calculated to be $726.11, considering a 20.97% increase to its current price of $878.37. TSLA's starting price was calculated to be $199.94, considering an 18.19% decrease to its current price of $163.57. Following the calculations, a Python script using matplotlib was provided to plot a graph comparing the stock prices of NVDA and TSLA over the past month, visually representing NVDA's growth and TSLA's decline.\u001b[0m\n", + "\u001b[34m\n", + "********************************************************************************\u001b[0m\n", + "\u001b[33mUser\u001b[0m (to Writing_manager):\n", + "\n", + "Develop an engaging blog post using any information provided.\n", + "Context: \n", + "The code execution was successful, and here are the results based on the output:\n", "\n", + "- **NVIDIA Corporation (NVDA)** has a current stock price of **$878.37**. Over the past month, NVDA has experienced a performance increase of **20.97%**.\n", + "- **Tesla, Inc. (TSLA)** has a current stock price of **$163.57**. Over the past month, TSLA has experienced a performance decrease of **-18.19%**.\n", "\n", - "To investigate the stock performance of Nvidia Corporation (NVDA) and Tesla, Inc. (TSLA), it's recommended to consider market news, industry trends, economic indicators, and company-specific factors including technological innovations. The plan includes executing a Python script to fetch the latest news. Feedback emphasizes ensuring compliance with Google's Terms of Service, analyzing financial reports, comparing competitors, sentiment analysis, investigating technological roadmaps, considering ESG factors, and verifying sources for accuracy. This comprehensive approach, adjusting for data reliability and a broader analysis spectrum, will aid in understanding the reasons behind the stock performance of Nvidia and Tesla.\n", + "These figures provide a snapshot of how both companies have performed in the stock market over the last month, reflecting growth for NVIDIA and a decline for Tesla.\n", + "\n", + "\n", + "The conversation involved calculating the starting prices of NVIDIA Corporation (NVDA) and Tesla, Inc. (TSLA) stocks a month ago, based on their current prices and recent performance. NVDA's starting price was determined to be $726.11, considering a 20.97% increase to its current price of $878.37. TSLA's starting price was calculated at $199.94, given an 18.19% decrease to its current price of $163.57. The discussion then provided Python code for plotting a graph comparing the stock prices of NVDA and TSLA over the past month, highlighting NVDA's growth and TSLA's decline.\n", + "The conversation involved calculating the starting stock prices of NVIDIA Corporation (NVDA) and Tesla, Inc. (TSLA) a month ago based on their current prices and performance percentages. NVDA's starting price a month ago was calculated to be $726.11, considering a 20.97% increase to its current price of $878.37. TSLA's starting price was calculated to be $199.94, considering an 18.19% decrease to its current price of $163.57. Following the calculations, a Python script using matplotlib was provided to plot a graph comparing the stock prices of NVDA and TSLA over the past month, visually representing NVDA's growth and TSLA's decline.\n", "\n", "--------------------------------------------------------------------------------\n", "\u001b[33mWriter\u001b[0m (to Writing_manager):\n", "\n", - "# Tech Titans in Turmoil? Deciphering the Divergent Paths of Nvidia and Tesla\n", + "# A Tale of Two Titans: NVIDIA and Tesla Navigate the Winds of the Stock Market\n", + "\n", + "In the grand theater of the stock market, two protagonists have captured the attention of investors and enthusiasts alike: NVIDIA Corporation (NVDA) and Tesla, Inc. (TSLA). Over the past month, these titans have navigated through turbulent financial seas, charting courses that veer in dramatically different directions. Today, we embark on an analytical voyage, exploring the performance of NVDA and TSLA through the lens of recent stock market trends.\n", "\n", - "In the ever-dynamic world of technology stocks, recent market activities have drawn sharp attention to two behemoths: Nvidia Corporation (NVDA) and Tesla, Inc. (TSLA). With the execution of a specialized Python script, intriguing insights into their stock performances over the past month have emerged, revealing a fascinating divergence in their trajectory. Nvidia's stocks have surged, showcasing a robust growth of 21.72%, while Tesla has unexpectedly stumbled, recording a 4.24% decline in stock value. This unexpected dichotomy in the fortunes of two of Silicon Valley's most luminary companies offers a compelling case study into the undercurrents shaping the tech industry today.\n", + "## The Surge of NVIDIA Corporation (NVDA)\n", "\n", - "## The Surge of Nvidia: Riding the Wave of Innovation\n", + "At the helm of technological innovation stands NVIDIA, a behemoth renowned for its cutting-edge graphics processing units (GPUs). A beacon in the dark, NVIDIA's current stock price gleams at $878.37. This illuminating figure is the culmination of a staggering 20.97% upward surge over the past month, showcasing the company's robust growth and investor confidence.\n", "\n", - "Nvidia's impressive stock performance, ballooning by 21.72%, paints a picture of a company at the zenith of its powers. The secret to Nvidia's success could largely be attributed to its strategic positioning at the heart of burgeoning tech trends, including AI, machine learning, and gaming. Nvidia's GPUs are not only the \"engine\" behind gaming PCs but are also crucial for AI research and data centers, industries that have seen exponential growth in recent years.\n", + "To grasp the magnitude of NVIDIA's ascent, let's journey back a month in time. The starting line for NVDA was drawn at $726.11. Through a blend of strategic maneuvers and market favorability, NVIDIA has sprinted towards financial growth, positioning itself as a juggernaut in the technology sector. The company's stellar performance could be attributed to several factors, from groundbreaking product releases to strategic partnerships that fortify its market presence.\n", "\n", - "Moreover, Nvidia's forward-looking approach and continuous innovation have cemented its status as a cornerstone in the tech space. Recent developments in AI and deep learning technologies, where Nvidia is a recognized leader, have further bolstered investor confidence. Their strategic partnerships and expansion into new, high-growth markets have likely contributed to their positive financial outlook, evident in the substantial stock price increase.\n", + "## Tesla, Inc. (TSLA) Faces Headwinds\n", "\n", - "## Tesla's Unanticipated Detour: A Bump in the Road?\n", + "Contrasting NVIDIA's euphoric climb, Tesla, the electric vehicle pioneer led by the enigmatic Elon Musk, has weathered a storm of challenges. With a current stock price of $163.57, TSLA has witnessed its share value recede by -18.19% over the last month.\n", "\n", - "On the flip side, Tesla's slight retreat, with a 4.24% drop, poses intriguing questions about the underlying factors dampening investor enthusiasm. Tesla, under the visionary leadership of Elon Musk, has revolutionized the automotive industry, making electric vehicles (EVs) mainstream. Yet, even pioneers aren't immune to market forces and operational challenges.\n", + "Rewinding time to a month ago reveals a starting stock price of $199.94 for Tesla. This descent highlights the volatility and rugged terrain that Tesla has encountered. Factors ranging from production disruptions to regulatory hurdles, and perhaps the unpredictable musings of its CEO, might have contributed to this downtrend. Despite these obstacles, Tesla's foundational strength in innovation and its visionary approach to sustainable transportation continue to underpin its long-term value proposition.\n", "\n", - "Analysts might speculate that Tesla's decline could be attributed to a variety of factors, including production delays, competition heating up from legacy automakers venturing into the EV space, and perhaps geopolitical tensions affecting supply chains. Additionally, the broader market's sentiment, influenced by economic indicators and shifts in consumer behavior, may have played a role in Tesla's recent stock performance downturn.\n", + "## Charting the Course: A Visual Comparison\n", "\n", - "## Beyond the Numbers: A Closer Look at the Forces at Play\n", + "To visually navigate the contrasting trajectories of NVIDIA and Tesla, a Python script was employed, wielding the power of matplotlib to create a compelling graphical representation. This chart not only captures NVDA's impressive ascent and TSLA's decline but also offers a narrative of resilience, innovation, and the unpredictable nature of the stock market.\n", "\n", - "To truly comprehend the divergence in Nvidia's and Tesla's stock market performances, one must delve deeper beyond mere financial metrics. Exploring market news, industry trends, economic indicators, and company-specific dynamics offers richer context.\n", + "The plotted graph serves as a testament to the dynamic and often unpredictable nature of investing. For NVIDIA, the upward trend signifies a period of growth and optimism, fueled by technological advancements and strategic success. On the flip side, Tesla's downward curve reflects the inherent risks and challenges faced by industry pioneers, underscored by market volatility and external pressures.\n", "\n", - "For Nvidia, its stride might be bolstered by advancements in technology and a robust product line catering to future needs. For Tesla, despite its recent dip, the long-term outlook remains positive, given its pioneering status and relentless pursuit of innovation.\n", + "## Navigating Tomorrow's Horizon\n", "\n", - "Inherent in the analysis of stock performances is the necessity to consider technological roadmaps, environmental, social, and governance (ESG) factors, and competitive landscapes. These components, combined with meticulous sentiment analysis and a keen eye on financial reports, provide a multidimensional view of Nvidia's and Tesla's market positions.\n", + "As we stand at the crossroads of possibility, the journeys of NVIDIA and Tesla through the stock market's tumultuous waters shed light on the complexities of investing in technology giants. While NVIDIA rides the wave of growth, basking in the glow of success, Tesla navigates through stormy seas, bracing for the challenges that lie ahead.\n", "\n", - "## Looking Ahead: Charting the Course\n", + "These tales of triumph and tribulation underscore a fundamental truth about the stock market: it is a realm of high stakes and high rewards, where fortune favors the brave and the visionary. As investors and spectators alike watch these titans chart their course, the future remains a canvas of endless possibilities, painted by the decisions, innovations, and resilience of companies like NVIDIA and Tesla.\n", "\n", - "As investors and enthusiasts keenly watch these unfolding narratives, the contrasting fortunes of Nvidia and Tesla underscore the volatile and unpredictable nature of the tech stock market. The journey ahead for both companies promises to be lined with opportunities and obstacles, making their stories not just a study of stock prices but a reflection of the broader technological and economic landscapes they operate within.\n", + "Let us then cling to our seats as we witness the unfolding saga of these industry giants, remembering that in the world of stocks, the only constant is change.\n", "\n", - "Navigating this ever-evolving terrain requires a nuanced understanding of market dynamics, a commitment to innovation, and an unwavering focus on long-term value creation. As Nvidia and Tesla chart their paths forward, they not only shape their destinies but also the future of technology itself. Therefore, keeping a close watch on these titans' next moves becomes not just an interest but a necessity for those vested in the future of tech.\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33mCritic\u001b[0m (to Writing_manager):\n", "\n", - "In the interplay of market forces, innovation, and strategic visions, the contrasting trajectories of Nvidia and Tesla present a nuanced narrative, ripe for exploration and reflection. As we advance, their stories remind us of the transformative power of technology and the endless possibilities that lie within the volatile realm of the stock market.\n", + "The blog post titled \"A Tale of Two Titans: NVIDIA and Tesla Navigate the Winds of the Stock Market\" adeptly captures the recent financial performances of NVIDIA Corporation (NVDA) and Tesla, Inc. (TSLA). Utilizing vivid storytelling and concise analysis, it provides readers with a clear understanding of the companies' trajectories over the past month. However, several elements can be enhanced further to improve clarity, accuracy, and engagement:\n", "\n", - "So, whether you're an investor, a tech enthusiast, or simply a curious observer, the unfolding saga of Nvidia and Tesla offers a captivating glimpse into the future of technology and finance, woven together in the complex tapestry of the stock market's highs and lows.\n", + "1. **Verification and Sources**: The post lacks external verification of the data presented. Including sources or referencing financial reports would significantly enhance credibility. It's recommended to hyperlink to authoritative financial news websites, stock analysis platforms, or directly to the companies' investor relations pages where readers can verify the stock price movements and company performances.\n", "\n", - "---\n", - "I hope you found this exploration into the fortunes of Nvidia and Tesla insightful and thought-provoking. Stay tuned for more analyses that bring the world of technology and finance to life in compelling narratives.\n", + "2. **More In-depth Analysis**: While the post does an excellent job of painting the general picture of NVIDIA’s growth and Tesla’s decline, incorporating a deeper analysis would enrich the reader's understanding. Discussing the specific reasons behind NVIDIA's success, such as key product launches or capitalizing on market trends like AI and deep learning, would offer insights into its growth drivers. Similarly, exploring Tesla's challenges, like supply chain issues or global economic factors, would provide a more nuanced view.\n", + "\n", + "3. **Interactivity and Visuals**: Mentioning the use of Python and matplotlib for plotting stock price movements is excellent. However, including the actual graph within the blog post would significantly enhance its value, making the comparison between NVDA and TSLA visually accessible. If the blog format allows, embedding interactive charts where readers can hover over data points for more information would further increase engagement.\n", + "\n", + "4. **Future Outlook**: The concluding section intriguingly touches upon the uncertainties and opportunities ahead for both companies. Expanding this outlook by including expert predictions, potential market movements, or upcoming events that might influence these stocks (e.g., product launches, earnings reports) could offer readers valuable forward-looking insights.\n", + "\n", + "5. **Clarity and Brevity**: Overall, the narrative is engaging and creatively written. However, ensuring that every paragraph directly contributes to the reader's understanding of NVIDIA and Tesla's stock performance will help maintain focus and engagement. Avoiding overly complex sentences can also make the content more accessible to a broader audience.\n", + "\n", + "Incorporating these suggestions would not only bolster the article's informative value but also its appeal to readers seeking a blend of financial analysis and narrative storytelling.\n", "\n", "TERMINATE\n", "\n", @@ -1375,9 +1624,10 @@ { "data": { "text/plain": [ - "{1: ChatResult(chat_id=1, chat_history=[{'content': 'What are the current stock prices of NVDA and TESLA, and how is the performance over the past month in terms of percentage change?', 'role': 'assistant'}, {'content': 'To obtain the current stock prices of NVDA (Nvidia Corporation) and TSLA (Tesla, Inc.), as well as their performance over the past month in terms of percentage change, I will use Python code to fetch this information from a financial data API. For this task, we can use the Yahoo Finance API through the `yfinance` library, which allows us to collect stock information programmatically.\\n\\nHere is the plan:\\n1. Use Python code to access the required stock data via the `yfinance` library.\\n2. Fetch the current prices of NVDA and TSLA.\\n3. Calculate the percentage change in their stock prices over the past month.\\n\\nFirst, you\\'ll need to ensure that the `yfinance` library is installed. If it\\'s not already installed, you can install it using pip. Execute the following Python code to perform the tasks:\\n\\n```python\\n# filename: stock_info.py\\n\\nimport yfinance as yf\\nfrom datetime import datetime, timedelta\\n\\n# Define the tickers for Nvidia and Tesla\\ntickers = [\"NVDA\", \"TSLA\"]\\n\\n# Define the time period: end date is today, start date is one month ago\\nend_date = datetime.today()\\nstart_date = end_date - timedelta(days=30)\\n\\n# Function to fetch and display stock info\\ndef fetch_and_display_info(ticker):\\n stock = yf.Ticker(ticker)\\n \\n # Fetch historical data for the past month\\n hist = stock.history(start=start_date, end=end_date)\\n \\n # Get the last closing price (most recent date)\\n last_close_price = hist[\\'Close\\'].iloc[-1]\\n \\n # Calculate the percentage change over the past month\\n start_price = hist[\\'Close\\'].iloc[0] # First day\\'s closing price in the hist data\\n percentage_change = ((last_close_price - start_price) / start_price) * 100\\n \\n print(f\"{ticker} Current Price: ${last_close_price:.2f}\")\\n print(f\"{ticker} Performance Over The Past Month: {percentage_change:.2f}%\\\\n\")\\n\\n# Fetch and display info for each ticker\\nfor ticker in tickers:\\n fetch_and_display_info(ticker)\\n```\\n\\nPlease save the above code in a file named `stock_info.py` and execute it. This script will output the current prices of NVDA and TSLA, along with the percentage changes in their stock prices over the past month.\\n\\nIf you encounter any issues or have any questions regarding the execution or results, please let me know!', 'role': 'user'}, {'content': 'exitcode: 0 (execution succeeded)\\nCode output: \\nNVDA Current Price: $726.13\\nNVDA Performance Over The Past Month: 21.72%\\n\\nTSLA Current Price: $199.95\\nTSLA Performance Over The Past Month: -4.24%\\n\\n', 'role': 'assistant'}, {'content': \"The execution of the provided Python code successfully fetched the current stock prices and the performance over the past month for Nvidia Corporation (NVDA) and Tesla, Inc. (TSLA). Here are the results:\\n\\n- **Nvidia Corporation (NVDA):**\\n - Current Price: $726.13\\n - Performance Over The Past Month: +21.72%\\n\\n- **Tesla, Inc. (TSLA):**\\n - Current Price: $199.95\\n - Performance Over The Past Month: -4.24%\\n\\nThis data indicates that over the past month, NVDA's stock has seen a significant positive increase in its price, with a 21.72% rise, showcasing strong performance. On the other hand, TSLA's stock has experienced a slight decline, with a 4.24% decrease in its price.\\n\\nThese performance metrics can be useful for investors and traders to understand recent trends in these companies' stock values.\\n\\nIf you have any more questions or need further assistance, feel free to ask. Otherwise, we can conclude here.\\n\\nTERMINATE\", 'role': 'user'}], summary=\"The execution of the provided Python code successfully fetched the current stock prices and the performance over the past month for Nvidia Corporation (NVDA) and Tesla, Inc. (TSLA). Here are the results:\\n\\n- **Nvidia Corporation (NVDA):**\\n - Current Price: $726.13\\n - Performance Over The Past Month: +21.72%\\n\\n- **Tesla, Inc. (TSLA):**\\n - Current Price: $199.95\\n - Performance Over The Past Month: -4.24%\\n\\nThis data indicates that over the past month, NVDA's stock has seen a significant positive increase in its price, with a 21.72% rise, showcasing strong performance. On the other hand, TSLA's stock has experienced a slight decline, with a 4.24% decrease in its price.\\n\\nThese performance metrics can be useful for investors and traders to understand recent trends in these companies' stock values.\\n\\nIf you have any more questions or need further assistance, feel free to ask. Otherwise, we can conclude here.\\n\\n\", cost=({'total_cost': 0.038180000000000006, 'gpt-4-0125-preview': {'cost': 0.038180000000000006, 'prompt_tokens': 1592, 'completion_tokens': 742, 'total_tokens': 2334}}, {'total_cost': 0.038180000000000006, 'gpt-4-0125-preview': {'cost': 0.038180000000000006, 'prompt_tokens': 1592, 'completion_tokens': 742, 'total_tokens': 2334}}), human_input=[]),\n", - " 2: ChatResult(chat_id=2, chat_history=[{'content': \"Investigate possible reasons of the stock performance.\\nContext: \\nThe execution of the provided Python code successfully fetched the current stock prices and the performance over the past month for Nvidia Corporation (NVDA) and Tesla, Inc. (TSLA). Here are the results:\\n\\n- **Nvidia Corporation (NVDA):**\\n - Current Price: $726.13\\n - Performance Over The Past Month: +21.72%\\n\\n- **Tesla, Inc. (TSLA):**\\n - Current Price: $199.95\\n - Performance Over The Past Month: -4.24%\\n\\nThis data indicates that over the past month, NVDA's stock has seen a significant positive increase in its price, with a 21.72% rise, showcasing strong performance. On the other hand, TSLA's stock has experienced a slight decline, with a 4.24% decrease in its price.\\n\\nThese performance metrics can be useful for investors and traders to understand recent trends in these companies' stock values.\\n\\nIf you have any more questions or need further assistance, feel free to ask. Otherwise, we can conclude here.\\n\\n\", 'role': 'assistant'}], summary=\"To investigate the stock performance of Nvidia Corporation (NVDA) and Tesla, Inc. (TSLA), it's recommended to consider market news, industry trends, economic indicators, and company-specific factors including technological innovations. The plan includes executing a Python script to fetch the latest news. Feedback emphasizes ensuring compliance with Google's Terms of Service, analyzing financial reports, comparing competitors, sentiment analysis, investigating technological roadmaps, considering ESG factors, and verifying sources for accuracy. This comprehensive approach, adjusting for data reliability and a broader analysis spectrum, will aid in understanding the reasons behind the stock performance of Nvidia and Tesla.\", cost=({'total_cost': 0.03351, 'gpt-4-0125-preview': {'cost': 0.03351, 'prompt_tokens': 2970, 'completion_tokens': 127, 'total_tokens': 3097}}, {'total_cost': 0.03351, 'gpt-4-0125-preview': {'cost': 0.03351, 'prompt_tokens': 2970, 'completion_tokens': 127, 'total_tokens': 3097}}), human_input=[]),\n", - " 3: ChatResult(chat_id=3, chat_history=[{'content': \"Develop an engaging blog post using any information provided.\\nContext: \\nThe execution of the provided Python code successfully fetched the current stock prices and the performance over the past month for Nvidia Corporation (NVDA) and Tesla, Inc. (TSLA). Here are the results:\\n\\n- **Nvidia Corporation (NVDA):**\\n - Current Price: $726.13\\n - Performance Over The Past Month: +21.72%\\n\\n- **Tesla, Inc. (TSLA):**\\n - Current Price: $199.95\\n - Performance Over The Past Month: -4.24%\\n\\nThis data indicates that over the past month, NVDA's stock has seen a significant positive increase in its price, with a 21.72% rise, showcasing strong performance. On the other hand, TSLA's stock has experienced a slight decline, with a 4.24% decrease in its price.\\n\\nThese performance metrics can be useful for investors and traders to understand recent trends in these companies' stock values.\\n\\nIf you have any more questions or need further assistance, feel free to ask. Otherwise, we can conclude here.\\n\\n\\nTo investigate the stock performance of Nvidia Corporation (NVDA) and Tesla, Inc. (TSLA), it's recommended to consider market news, industry trends, economic indicators, and company-specific factors including technological innovations. The plan includes executing a Python script to fetch the latest news. Feedback emphasizes ensuring compliance with Google's Terms of Service, analyzing financial reports, comparing competitors, sentiment analysis, investigating technological roadmaps, considering ESG factors, and verifying sources for accuracy. This comprehensive approach, adjusting for data reliability and a broader analysis spectrum, will aid in understanding the reasons behind the stock performance of Nvidia and Tesla.\", 'role': 'assistant'}], summary=\"Develop an engaging blog post using any information provided.\\nContext: \\nThe execution of the provided Python code successfully fetched the current stock prices and the performance over the past month for Nvidia Corporation (NVDA) and Tesla, Inc. (TSLA). Here are the results:\\n\\n- **Nvidia Corporation (NVDA):**\\n - Current Price: $726.13\\n - Performance Over The Past Month: +21.72%\\n\\n- **Tesla, Inc. (TSLA):**\\n - Current Price: $199.95\\n - Performance Over The Past Month: -4.24%\\n\\nThis data indicates that over the past month, NVDA's stock has seen a significant positive increase in its price, with a 21.72% rise, showcasing strong performance. On the other hand, TSLA's stock has experienced a slight decline, with a 4.24% decrease in its price.\\n\\nThese performance metrics can be useful for investors and traders to understand recent trends in these companies' stock values.\\n\\nIf you have any more questions or need further assistance, feel free to ask. Otherwise, we can conclude here.\\n\\n\\nTo investigate the stock performance of Nvidia Corporation (NVDA) and Tesla, Inc. (TSLA), it's recommended to consider market news, industry trends, economic indicators, and company-specific factors including technological innovations. The plan includes executing a Python script to fetch the latest news. Feedback emphasizes ensuring compliance with Google's Terms of Service, analyzing financial reports, comparing competitors, sentiment analysis, investigating technological roadmaps, considering ESG factors, and verifying sources for accuracy. This comprehensive approach, adjusting for data reliability and a broader analysis spectrum, will aid in understanding the reasons behind the stock performance of Nvidia and Tesla.\", cost=({'total_cost': 0.0058200000000000005, 'gpt-4-0125-preview': {'cost': 0.0058200000000000005, 'prompt_tokens': 579, 'completion_tokens': 1, 'total_tokens': 580}}, {'total_cost': 0.0058200000000000005, 'gpt-4-0125-preview': {'cost': 0.0058200000000000005, 'prompt_tokens': 579, 'completion_tokens': 1, 'total_tokens': 580}}), human_input=[])}" + "{1: ChatResult(chat_id=1, chat_history=[{'content': 'What are the current stock prices of NVDA and TESLA, and how is the performance over the past month in terms of percentage change?', 'role': 'assistant'}, {'content': 'To obtain current stock prices of NVDA (NVIDIA Corporation) and TSLA (Tesla, Inc.), and calculate their performance over the past month in terms of percentage change, we can use the Yahoo Finance API through the `yfinance` Python package. This process involves the following steps:\\n\\n1. Install the `yfinance` package (if not already installed).\\n2. Use `yfinance` to fetch the current stock prices of NVDA and TSLA.\\n3. Fetch historical data for the past month for both stocks.\\n4. Calculate the percentage change in the stock prices over the last month based on the historical data.\\n\\nPlease execute the following Python code to perform these tasks:\\n\\n```python\\n# filename: stock_info.py\\nimport yfinance as yf\\nfrom datetime import datetime, timedelta\\n\\ndef stock_performance(ticker):\\n # Fetching data for the past month\\n end_date = datetime.today()\\n start_date = end_date - timedelta(days=30) # Approximate for the past month\\n \\n # Fetch historical data\\n data = yf.download(ticker, start=start_date, end=end_date)\\n \\n # Current and beginning of month prices\\n current_price = data[\\'Close\\'].iloc[-1]\\n start_month_price = data[\\'Close\\'].iloc[0] \\n \\n # Calculate percentage change over the month\\n percent_change = ((current_price - start_month_price) / start_month_price) * 100\\n \\n return current_price, percent_change\\n\\n# NVDA and TSLA stock performance\\nnvda_price, nvda_change = stock_performance(\"NVDA\")\\ntsla_price, tsla_change = stock_performance(\"TSLA\")\\n\\nprint(f\"NVDA (NVIDIA Corp) current price: ${nvda_price:.2f}, Performance over past month: {nvda_change:.2f}%\")\\nprint(f\"TSLA (Tesla, Inc.) current price: ${tsla_price:.2f}, Performance over past month: {tsla_change:.2f}%\")\\n```\\n\\nBefore running this script, ensure that you have the `yfinance` package installed. If not, install it using the following command:\\n\\n```sh\\npip install yfinance\\n```\\n\\nThis script will output the current stock prices of NVDA and TSLA, along with their performance over the past month in percentage terms.', 'role': 'user'}, {'content': 'exitcode: 0 (execution succeeded)\\nCode output: \\nNVDA (NVIDIA Corp) current price: $878.37, Performance over past month: 20.97%\\nTSLA (Tesla, Inc.) current price: $163.57, Performance over past month: -18.19%\\n\\nDefaulting to user installation because normal site-packages is not writeable\\nRequirement already satisfied: yfinance in /home/autogen/.local/lib/python3.11/site-packages (0.2.37)\\nRequirement already satisfied: pandas>=1.3.0 in /home/autogen/.local/lib/python3.11/site-packages (from yfinance) (2.2.1)\\nRequirement already satisfied: numpy>=1.16.5 in /usr/local/lib/python3.11/site-packages (from yfinance) (1.26.4)\\nRequirement already satisfied: requests>=2.31 in /usr/local/lib/python3.11/site-packages (from yfinance) (2.31.0)\\nRequirement already satisfied: multitasking>=0.0.7 in /home/autogen/.local/lib/python3.11/site-packages (from yfinance) (0.0.11)\\nRequirement already satisfied: lxml>=4.9.1 in /home/autogen/.local/lib/python3.11/site-packages (from yfinance) (5.1.0)\\nRequirement already satisfied: appdirs>=1.4.4 in /home/autogen/.local/lib/python3.11/site-packages (from yfinance) (1.4.4)\\nRequirement already satisfied: pytz>=2022.5 in /home/autogen/.local/lib/python3.11/site-packages (from yfinance) (2024.1)\\nRequirement already satisfied: frozendict>=2.3.4 in /home/autogen/.local/lib/python3.11/site-packages (from yfinance) (2.4.0)\\nRequirement already satisfied: peewee>=3.16.2 in /home/autogen/.local/lib/python3.11/site-packages (from yfinance) (3.17.1)\\nRequirement already satisfied: beautifulsoup4>=4.11.1 in /usr/local/lib/python3.11/site-packages (from yfinance) (4.12.3)\\nRequirement already satisfied: html5lib>=1.1 in /home/autogen/.local/lib/python3.11/site-packages (from yfinance) (1.1)\\nRequirement already satisfied: soupsieve>1.2 in /usr/local/lib/python3.11/site-packages (from beautifulsoup4>=4.11.1->yfinance) (2.5)\\nRequirement already satisfied: six>=1.9 in /usr/local/lib/python3.11/site-packages (from html5lib>=1.1->yfinance) (1.16.0)\\nRequirement already satisfied: webencodings in /usr/local/lib/python3.11/site-packages (from html5lib>=1.1->yfinance) (0.5.1)\\nRequirement already satisfied: python-dateutil>=2.8.2 in /usr/local/lib/python3.11/site-packages (from pandas>=1.3.0->yfinance) (2.9.0.post0)\\nRequirement already satisfied: tzdata>=2022.7 in /home/autogen/.local/lib/python3.11/site-packages (from pandas>=1.3.0->yfinance) (2024.1)\\nRequirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.11/site-packages (from requests>=2.31->yfinance) (3.3.2)\\nRequirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.11/site-packages (from requests>=2.31->yfinance) (3.6)\\nRequirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.11/site-packages (from requests>=2.31->yfinance) (2.2.1)\\nRequirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.11/site-packages (from requests>=2.31->yfinance) (2024.2.2)\\n', 'role': 'assistant'}, {'content': 'The code execution was successful, and here are the results based on the output:\\n\\n- **NVIDIA Corporation (NVDA)** has a current stock price of **$878.37**. Over the past month, NVDA has experienced a performance increase of **20.97%**.\\n- **Tesla, Inc. (TSLA)** has a current stock price of **$163.57**. Over the past month, TSLA has experienced a performance decrease of **-18.19%**.\\n\\nThese figures provide a snapshot of how both companies have performed in the stock market over the last month, reflecting growth for NVIDIA and a decline for Tesla.\\n\\nTERMINATE', 'role': 'user'}], summary='The code execution was successful, and here are the results based on the output:\\n\\n- **NVIDIA Corporation (NVDA)** has a current stock price of **$878.37**. Over the past month, NVDA has experienced a performance increase of **20.97%**.\\n- **Tesla, Inc. (TSLA)** has a current stock price of **$163.57**. Over the past month, TSLA has experienced a performance decrease of **-18.19%**.\\n\\nThese figures provide a snapshot of how both companies have performed in the stock market over the last month, reflecting growth for NVIDIA and a decline for Tesla.\\n\\n', cost=({'total_cost': 0.04235, 'gpt-4-0125-preview': {'cost': 0.04235, 'prompt_tokens': 2384, 'completion_tokens': 617, 'total_tokens': 3001}}, {'total_cost': 0}), human_input=[]),\n", + " 2: ChatResult(chat_id=2, chat_history=[{'content': 'Plot a graph comparing the stock prices over the past month.\\nContext: \\nThe code execution was successful, and here are the results based on the output:\\n\\n- **NVIDIA Corporation (NVDA)** has a current stock price of **$878.37**. Over the past month, NVDA has experienced a performance increase of **20.97%**.\\n- **Tesla, Inc. (TSLA)** has a current stock price of **$163.57**. Over the past month, TSLA has experienced a performance decrease of **-18.19%**.\\n\\nThese figures provide a snapshot of how both companies have performed in the stock market over the last month, reflecting growth for NVIDIA and a decline for Tesla.\\n\\n', 'role': 'assistant'}], summary=\"The conversation involved calculating the starting prices of NVIDIA Corporation (NVDA) and Tesla, Inc. (TSLA) stocks a month ago, based on their current prices and recent performance. NVDA's starting price was determined to be $726.11, considering a 20.97% increase to its current price of $878.37. TSLA's starting price was calculated at $199.94, given an 18.19% decrease to its current price of $163.57. The discussion then provided Python code for plotting a graph comparing the stock prices of NVDA and TSLA over the past month, highlighting NVDA's growth and TSLA's decline.\", cost=({'total_cost': 0.08263999999999999, 'gpt-4-0125-preview': {'cost': 0.08263999999999999, 'prompt_tokens': 7367, 'completion_tokens': 299, 'total_tokens': 7666}}, {'total_cost': 0.08263999999999999, 'gpt-4-0125-preview': {'cost': 0.08263999999999999, 'prompt_tokens': 7367, 'completion_tokens': 299, 'total_tokens': 7666}}), human_input=[]),\n", + " 3: ChatResult(chat_id=3, chat_history=[{'content': 'Plot a graph comparing the stock prices over the past month.\\nContext: \\nThe code execution was successful, and here are the results based on the output:\\n\\n- **NVIDIA Corporation (NVDA)** has a current stock price of **$878.37**. Over the past month, NVDA has experienced a performance increase of **20.97%**.\\n- **Tesla, Inc. (TSLA)** has a current stock price of **$163.57**. Over the past month, TSLA has experienced a performance decrease of **-18.19%**.\\n\\nThese figures provide a snapshot of how both companies have performed in the stock market over the last month, reflecting growth for NVIDIA and a decline for Tesla.\\n\\n', 'role': 'assistant'}], summary=\"The conversation involved calculating the starting stock prices of NVIDIA Corporation (NVDA) and Tesla, Inc. (TSLA) a month ago based on their current prices and performance percentages. NVDA's starting price a month ago was calculated to be $726.11, considering a 20.97% increase to its current price of $878.37. TSLA's starting price was calculated to be $199.94, considering an 18.19% decrease to its current price of $163.57. Following the calculations, a Python script using matplotlib was provided to plot a graph comparing the stock prices of NVDA and TSLA over the past month, visually representing NVDA's growth and TSLA's decline.\", cost=({'total_cost': 0.0596, 'gpt-4-0125-preview': {'cost': 0.0596, 'prompt_tokens': 5483, 'completion_tokens': 159, 'total_tokens': 5642}}, {'total_cost': 0.0596, 'gpt-4-0125-preview': {'cost': 0.0596, 'prompt_tokens': 5483, 'completion_tokens': 159, 'total_tokens': 5642}}), human_input=[]),\n", + " 4: ChatResult(chat_id=4, chat_history=[{'content': \"Develop an engaging blog post using any information provided.\\nContext: \\nThe code execution was successful, and here are the results based on the output:\\n\\n- **NVIDIA Corporation (NVDA)** has a current stock price of **$878.37**. Over the past month, NVDA has experienced a performance increase of **20.97%**.\\n- **Tesla, Inc. (TSLA)** has a current stock price of **$163.57**. Over the past month, TSLA has experienced a performance decrease of **-18.19%**.\\n\\nThese figures provide a snapshot of how both companies have performed in the stock market over the last month, reflecting growth for NVIDIA and a decline for Tesla.\\n\\n\\nThe conversation involved calculating the starting prices of NVIDIA Corporation (NVDA) and Tesla, Inc. (TSLA) stocks a month ago, based on their current prices and recent performance. NVDA's starting price was determined to be $726.11, considering a 20.97% increase to its current price of $878.37. TSLA's starting price was calculated at $199.94, given an 18.19% decrease to its current price of $163.57. The discussion then provided Python code for plotting a graph comparing the stock prices of NVDA and TSLA over the past month, highlighting NVDA's growth and TSLA's decline.\\nThe conversation involved calculating the starting stock prices of NVIDIA Corporation (NVDA) and Tesla, Inc. (TSLA) a month ago based on their current prices and performance percentages. NVDA's starting price a month ago was calculated to be $726.11, considering a 20.97% increase to its current price of $878.37. TSLA's starting price was calculated to be $199.94, considering an 18.19% decrease to its current price of $163.57. Following the calculations, a Python script using matplotlib was provided to plot a graph comparing the stock prices of NVDA and TSLA over the past month, visually representing NVDA's growth and TSLA's decline.\", 'role': 'assistant'}], summary=\"Develop an engaging blog post using any information provided.\\nContext: \\nThe code execution was successful, and here are the results based on the output:\\n\\n- **NVIDIA Corporation (NVDA)** has a current stock price of **$878.37**. Over the past month, NVDA has experienced a performance increase of **20.97%**.\\n- **Tesla, Inc. (TSLA)** has a current stock price of **$163.57**. Over the past month, TSLA has experienced a performance decrease of **-18.19%**.\\n\\nThese figures provide a snapshot of how both companies have performed in the stock market over the last month, reflecting growth for NVIDIA and a decline for Tesla.\\n\\n\\nThe conversation involved calculating the starting prices of NVIDIA Corporation (NVDA) and Tesla, Inc. (TSLA) stocks a month ago, based on their current prices and recent performance. NVDA's starting price was determined to be $726.11, considering a 20.97% increase to its current price of $878.37. TSLA's starting price was calculated at $199.94, given an 18.19% decrease to its current price of $163.57. The discussion then provided Python code for plotting a graph comparing the stock prices of NVDA and TSLA over the past month, highlighting NVDA's growth and TSLA's decline.\\nThe conversation involved calculating the starting stock prices of NVIDIA Corporation (NVDA) and Tesla, Inc. (TSLA) a month ago based on their current prices and performance percentages. NVDA's starting price a month ago was calculated to be $726.11, considering a 20.97% increase to its current price of $878.37. TSLA's starting price was calculated to be $199.94, considering an 18.19% decrease to its current price of $163.57. Following the calculations, a Python script using matplotlib was provided to plot a graph comparing the stock prices of NVDA and TSLA over the past month, visually representing NVDA's growth and TSLA's decline.\", cost=({'total_cost': 0.02109, 'gpt-4-0125-preview': {'cost': 0.02109, 'prompt_tokens': 2100, 'completion_tokens': 3, 'total_tokens': 2103}}, {'total_cost': 0.02109, 'gpt-4-0125-preview': {'cost': 0.02109, 'prompt_tokens': 2100, 'completion_tokens': 3, 'total_tokens': 2103}}), human_input=[])}" ] }, "execution_count": 8, @@ -1484,6 +1734,12 @@ } ], "metadata": { + "front_matter": { + "description": "Use conversational agents to solve a set of tasks with a sequence of async chats.", + "tags": [ + "sequential chat" + ] + }, "kernelspec": { "display_name": "Python 3", "language": "python", @@ -1499,7 +1755,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.8" + "version": "3.11.7" }, "vscode": { "interpreter": { diff --git a/notebook/agentchat_multi_task_chats.ipynb b/notebook/agentchat_multi_task_chats.ipynb index ab65f6e0f05d..e640e15ff6d2 100644 --- a/notebook/agentchat_multi_task_chats.ipynb +++ b/notebook/agentchat_multi_task_chats.ipynb @@ -9,12 +9,6 @@ } }, "source": [ - "\n", - "\n", "# Solving Multiple Tasks in a Sequence of Chats\n", "\n", "This notebook showcases how to use the new chat interface of conversational agents in AutoGen: initiate_chats, to conduct a series of tasks. This new interface allows one to pass multiple tasks and their corresponding dedicated agents. Once initiate_chats is invoked, the tasks will be solved sequentially, with the summaries from previous tasks provided to subsequent tasks as context, if the `summary_method` argument is specified.\n", @@ -49,7 +43,7 @@ "source": [ "\\:\\:\\:tip\n", "\n", - "Learn more about the various ways to configure LLM endpoints [here](/docs/llm_configuration).\n", + "Learn more about the various ways to configure LLM endpoints [here](/docs/topics/llm_configuration).\n", "\n", "\\:\\:\\:" ] @@ -1536,6 +1530,12 @@ } ], "metadata": { + "front_matter": { + "description": "Use conversational agents to solve a set of tasks with a sequence of chats.", + "tags": [ + "sequential chat" + ] + }, "kernelspec": { "display_name": "Python 3", "language": "python", diff --git a/notebook/agentchat_nested_chats_chess.ipynb b/notebook/agentchat_nested_chats_chess.ipynb new file mode 100644 index 000000000000..52a53de10a9f --- /dev/null +++ b/notebook/agentchat_nested_chats_chess.ipynb @@ -0,0 +1,1162 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Nested Chats for Tool Use in Conversational Chess\n", + "\n", + "This notebook demonstrates how to create agents that can play chess with each other\n", + "while communicating in natural language.\n", + "The key concept covered in this notebook is the use of nested chats\n", + "to enable tool use and packaging an LLM-based agent with a tool executor agent\n", + "into a single agent.\n", + "\n", + "Related tutorials:\n", + "- [Tool Use](/docs/tutorial/tool-use)\n", + "- [Nested Chats](/docs/tutorial/conversation-patterns#nested-chats)\n", + "\n", + "In this setting, each player is an agent backed by an LLM equipped two tools:\n", + "- `get_legal_moves` to get a list of current legal moves.\n", + "- `make_move` to make a move.\n", + "\n", + "A board proxy agent is set up to execute the tools and manage the game.\n", + "It is important to use a board proxy as a non-LLM \"guard rail\" to ensure the game\n", + "is played correctly and to prevent agents from making illegal moves.\n", + "\n", + "Each time a player agent receives a message from the other player agent, \n", + "it instantiates a nested chat with the board proxy agent to get the legal moves\n", + "and make a move using the tools given. \n", + "The nested chat between the player agent and the board agent\n", + "continues until the a legal move is made by the tool.\n", + "Once the nested chat concludes, the player agent sends a message to the\n", + "other player agent about the move made." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Installation\n", + "\n", + "First you need to install the `pyautogen` and `chess` packages to use AutoGen." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "! pip install -qqq pyautogen chess" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Setting up LLMs\n", + "\n", + "Now you can set up the models you want to use." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "\n", + "player_white_config_list = [\n", + " {\n", + " \"model\": \"gpt-4-turbo-preview\",\n", + " \"api_key\": os.environ.get(\"OPENAI_API_KEY\"),\n", + " },\n", + "]\n", + "\n", + "player_black_config_list = [\n", + " {\n", + " \"model\": \"gpt-4-turbo-preview\",\n", + " \"api_key\": os.environ.get(\"OPENAI_API_KEY\"),\n", + " },\n", + "]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Creating tools\n", + "\n", + "Write functions for getting legal moves and making a move." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "import chess\n", + "import chess.svg\n", + "from IPython.display import display\n", + "from typing import List\n", + "from typing_extensions import Annotated\n", + "\n", + "# Initialize the board.\n", + "board = chess.Board()\n", + "\n", + "# Keep track of whether a move has been made.\n", + "made_move = False\n", + "\n", + "\n", + "def get_legal_moves() -> Annotated[str, \"A list of legal moves in UCI format\"]:\n", + " return \"Possible moves are: \" + \",\".join([str(move) for move in board.legal_moves])\n", + "\n", + "\n", + "def make_move(move: Annotated[str, \"A move in UCI format.\"]) -> Annotated[str, \"Result of the move.\"]:\n", + " move = chess.Move.from_uci(move)\n", + " board.push_uci(str(move))\n", + " global made_move\n", + " made_move = True\n", + " # Display the board.\n", + " display(\n", + " chess.svg.board(board, arrows=[(move.from_square, move.to_square)], fill={move.from_square: \"gray\"}, size=200)\n", + " )\n", + " # Get the piece name.\n", + " piece = board.piece_at(move.to_square)\n", + " piece_symbol = piece.unicode_symbol()\n", + " piece_name = (\n", + " chess.piece_name(piece.piece_type).capitalize()\n", + " if piece_symbol.isupper()\n", + " else chess.piece_name(piece.piece_type)\n", + " )\n", + " return f\"Moved {piece_name} ({piece_symbol}) from {chess.SQUARE_NAMES[move.from_square]} to {chess.SQUARE_NAMES[move.to_square]}.\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Creating agents\n", + "\n", + "Let's create the agents. We have three different agents:\n", + "- `player_white` is the agent that plays white.\n", + "- `player_black` is the agent that plays black.\n", + "- `board_proxy` is the agent that moves the pieces on the board." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "from autogen import ConversableAgent, register_function\n", + "\n", + "player_white = ConversableAgent(\n", + " name=\"Player White\",\n", + " system_message=\"You are a chess player and you play as white. \"\n", + " \"First call get_legal_moves() first, to get list of legal moves. \"\n", + " \"Then call make_move(move) to make a move.\",\n", + " llm_config={\"config_list\": player_white_config_list, \"cache_seed\": None},\n", + ")\n", + "\n", + "player_black = ConversableAgent(\n", + " name=\"Player Black\",\n", + " system_message=\"You are a chess player and you play as black. \"\n", + " \"First call get_legal_moves() first, to get list of legal moves. \"\n", + " \"Then call make_move(move) to make a move.\",\n", + " llm_config={\"config_list\": player_black_config_list, \"cache_seed\": None},\n", + ")\n", + "\n", + "# Check if the player has made a move, and reset the flag if move is made.\n", + "\n", + "\n", + "def check_made_move(msg):\n", + " global made_move\n", + " if made_move:\n", + " made_move = False\n", + " return True\n", + " else:\n", + " return False\n", + "\n", + "\n", + "board_proxy = ConversableAgent(\n", + " name=\"Board Proxy\",\n", + " llm_config=False,\n", + " # The board proxy will only terminate the conversation if the player has made a move.\n", + " is_termination_msg=check_made_move,\n", + " # The auto reply message is set to keep the player agent retrying until a move is made.\n", + " default_auto_reply=\"Please make a move.\",\n", + " human_input_mode=\"NEVER\",\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Register tools for the agents. See [tutorial chapter on tool use](/docs/tutorial/tool-use) \n", + "for more information." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "register_function(\n", + " make_move,\n", + " caller=player_white,\n", + " executor=board_proxy,\n", + " name=\"make_move\",\n", + " description=\"Call this tool to make a move.\",\n", + ")\n", + "\n", + "register_function(\n", + " get_legal_moves,\n", + " caller=player_white,\n", + " executor=board_proxy,\n", + " name=\"get_legal_moves\",\n", + " description=\"Get legal moves.\",\n", + ")\n", + "\n", + "register_function(\n", + " make_move,\n", + " caller=player_black,\n", + " executor=board_proxy,\n", + " name=\"make_move\",\n", + " description=\"Call this tool to make a move.\",\n", + ")\n", + "\n", + "register_function(\n", + " get_legal_moves,\n", + " caller=player_black,\n", + " executor=board_proxy,\n", + " name=\"get_legal_moves\",\n", + " description=\"Get legal moves.\",\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now the agents have their tools ready. You can inspect the auto-generated\n", + "tool schema for each agent." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[{'type': 'function',\n", + " 'function': {'description': 'Call this tool to make a move.',\n", + " 'name': 'make_move',\n", + " 'parameters': {'type': 'object',\n", + " 'properties': {'move': {'type': 'string',\n", + " 'description': 'A move in UCI format.'}},\n", + " 'required': ['move']}}},\n", + " {'type': 'function',\n", + " 'function': {'description': 'Get legal moves.',\n", + " 'name': 'get_legal_moves',\n", + " 'parameters': {'type': 'object', 'properties': {}, 'required': []}}}]" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "player_black.llm_config[\"tools\"]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Register nested chats for the player agents.\n", + "Nested chats allows each player agent to chat with the board proxy agent\n", + "to make a move, before communicating with the other player agent.\n", + "\n", + "In the code below, in each nested chat, the board proxy agent starts\n", + "a conversation with the player agent using the message recieved from the other\n", + "player agent (e.g., \"Your move\"). The two agents continue the conversation\n", + "until a legal move is made using the `make_move` tool.\n", + "The last message in the nested chat is a message from the player agent about\n", + "the move made,\n", + "and this message is then sent to the other player agent.\n", + "\n", + "The following diagram illustrates the nested chat between the player agent and the board agent.\n", + "\n", + "![Conversational Chess](nested-chats-chess.png)\n", + "\n", + "See [nested chats tutorial chapter](/docs/tutorial/conversation-patterns#nested-chats)\n", + "for more information." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "player_white.register_nested_chats(\n", + " trigger=player_black,\n", + " chat_queue=[\n", + " {\n", + " # The initial message is the one received by the player agent from\n", + " # the other player agent.\n", + " \"sender\": board_proxy,\n", + " \"recipient\": player_white,\n", + " # The final message is sent to the player agent.\n", + " \"summary_method\": \"last_msg\",\n", + " }\n", + " ],\n", + ")\n", + "\n", + "player_black.register_nested_chats(\n", + " trigger=player_white,\n", + " chat_queue=[\n", + " {\n", + " # The initial message is the one received by the player agent from\n", + " # the other player agent.\n", + " \"sender\": board_proxy,\n", + " \"recipient\": player_black,\n", + " # The final message is sent to the player agent.\n", + " \"summary_method\": \"last_msg\",\n", + " }\n", + " ],\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Playing the game\n", + "\n", + "Start the chess game." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[33mPlayer White\u001b[0m (to Player Black):\n", + "\n", + "Let's play chess! Your move.\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[31m\n", + ">>>>>>>> USING AUTO REPLY...\u001b[0m\n", + "\u001b[34m\n", + "********************************************************************************\u001b[0m\n", + "\u001b[34mStarting a new chat....\n", + "\n", + "Message:\n", + "Let's play chess! Your move.\n", + "\n", + "Carryover: \n", + "\u001b[0m\n", + "\u001b[34m\n", + "********************************************************************************\u001b[0m\n", + "\u001b[33mBoard Proxy\u001b[0m (to Player Black):\n", + "\n", + "Let's play chess! Your move.\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[31m\n", + ">>>>>>>> USING AUTO REPLY...\u001b[0m\n", + "\u001b[33mPlayer Black\u001b[0m (to Board Proxy):\n", + "\n", + "\u001b[32m***** Suggested tool Call (call_Jw535t9MZ9DMog6CMk3fleg2): get_legal_moves *****\u001b[0m\n", + "Arguments: \n", + "{}\n", + "\u001b[32m********************************************************************************\u001b[0m\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[35m\n", + ">>>>>>>> EXECUTING FUNCTION get_legal_moves...\u001b[0m\n", + "\u001b[33mBoard Proxy\u001b[0m (to Player Black):\n", + "\n", + "\u001b[33mBoard Proxy\u001b[0m (to Player Black):\n", + "\n", + "\u001b[32m***** Response from calling tool \"call_Jw535t9MZ9DMog6CMk3fleg2\" *****\u001b[0m\n", + "Possible moves are: g1h3,g1f3,b1c3,b1a3,h2h3,g2g3,f2f3,e2e3,d2d3,c2c3,b2b3,a2a3,h2h4,g2g4,f2f4,e2e4,d2d4,c2c4,b2b4,a2a4\n", + "\u001b[32m**********************************************************************\u001b[0m\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[31m\n", + ">>>>>>>> USING AUTO REPLY...\u001b[0m\n", + "\u001b[33mPlayer Black\u001b[0m (to Board Proxy):\n", + "\n", + "\u001b[32m***** Suggested tool Call (call_0e8L4c6D0HCBybuqxCD4cgjR): make_move *****\u001b[0m\n", + "Arguments: \n", + "{\"move\":\"e2e4\"}\n", + "\u001b[32m**************************************************************************\u001b[0m\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[35m\n", + ">>>>>>>> EXECUTING FUNCTION make_move...\u001b[0m\n" + ] + }, + { + "data": { + "image/svg+xml": [ + "
r n b q k b n r\n",
+       "p p p p p p p p\n",
+       ". . . . . . . .\n",
+       ". . . . . . . .\n",
+       ". . . . P . . .\n",
+       ". . . . . . . .\n",
+       "P P P P . P P P\n",
+       "R N B Q K B N R
" + ], + "text/plain": [ + "'
r n b q k b n r\\np p p p p p p p\\n. . . . . . . .\\n. . . . . . . .\\n. . . . P . . .\\n. . . . . . . .\\nP P P P . P P P\\nR N B Q K B N R
'" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[33mBoard Proxy\u001b[0m (to Player Black):\n", + "\n", + "\u001b[33mBoard Proxy\u001b[0m (to Player Black):\n", + "\n", + "\u001b[32m***** Response from calling tool \"call_0e8L4c6D0HCBybuqxCD4cgjR\" *****\u001b[0m\n", + "Moved pawn (♙) from e2 to e4.\n", + "\u001b[32m**********************************************************************\u001b[0m\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[31m\n", + ">>>>>>>> USING AUTO REPLY...\u001b[0m\n", + "\u001b[33mPlayer Black\u001b[0m (to Board Proxy):\n", + "\n", + "I've moved my pawn from e2 to e4. Your move!\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33mPlayer Black\u001b[0m (to Player White):\n", + "\n", + "I've moved my pawn from e2 to e4. Your move!\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[31m\n", + ">>>>>>>> USING AUTO REPLY...\u001b[0m\n", + "\u001b[34m\n", + "********************************************************************************\u001b[0m\n", + "\u001b[34mStarting a new chat....\n", + "\n", + "Message:\n", + "I've moved my pawn from e2 to e4. Your move!\n", + "\n", + "Carryover: \n", + "\u001b[0m\n", + "\u001b[34m\n", + "********************************************************************************\u001b[0m\n", + "\u001b[33mBoard Proxy\u001b[0m (to Player White):\n", + "\n", + "I've moved my pawn from e2 to e4. Your move!\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[31m\n", + ">>>>>>>> USING AUTO REPLY...\u001b[0m\n", + "\u001b[33mPlayer White\u001b[0m (to Board Proxy):\n", + "\n", + "\u001b[32m***** Suggested tool Call (call_LyBU6E51NuiqROveKaA4EctT): get_legal_moves *****\u001b[0m\n", + "Arguments: \n", + "{}\n", + "\u001b[32m********************************************************************************\u001b[0m\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[35m\n", + ">>>>>>>> EXECUTING FUNCTION get_legal_moves...\u001b[0m\n", + "\u001b[33mBoard Proxy\u001b[0m (to Player White):\n", + "\n", + "\u001b[33mBoard Proxy\u001b[0m (to Player White):\n", + "\n", + "\u001b[32m***** Response from calling tool \"call_LyBU6E51NuiqROveKaA4EctT\" *****\u001b[0m\n", + "Possible moves are: g8h6,g8f6,b8c6,b8a6,h7h6,g7g6,f7f6,e7e6,d7d6,c7c6,b7b6,a7a6,h7h5,g7g5,f7f5,e7e5,d7d5,c7c5,b7b5,a7a5\n", + "\u001b[32m**********************************************************************\u001b[0m\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[31m\n", + ">>>>>>>> USING AUTO REPLY...\u001b[0m\n", + "\u001b[33mPlayer White\u001b[0m (to Board Proxy):\n", + "\n", + "It's black's turn. I will move my pawn from e7 to e5.\n", + "\u001b[32m***** Suggested tool Call (call_MSLR6pqbwYIaAbfl8qxZbqnc): make_move *****\u001b[0m\n", + "Arguments: \n", + "{\"move\":\"e7e5\"}\n", + "\u001b[32m**************************************************************************\u001b[0m\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[35m\n", + ">>>>>>>> EXECUTING FUNCTION make_move...\u001b[0m\n" + ] + }, + { + "data": { + "image/svg+xml": [ + "
r n b q k b n r\n",
+       "p p p p . p p p\n",
+       ". . . . . . . .\n",
+       ". . . . p . . .\n",
+       ". . . . P . . .\n",
+       ". . . . . . . .\n",
+       "P P P P . P P P\n",
+       "R N B Q K B N R
" + ], + "text/plain": [ + "'
r n b q k b n r\\np p p p . p p p\\n. . . . . . . .\\n. . . . p . . .\\n. . . . P . . .\\n. . . . . . . .\\nP P P P . P P P\\nR N B Q K B N R
'" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[33mBoard Proxy\u001b[0m (to Player White):\n", + "\n", + "\u001b[33mBoard Proxy\u001b[0m (to Player White):\n", + "\n", + "\u001b[32m***** Response from calling tool \"call_MSLR6pqbwYIaAbfl8qxZbqnc\" *****\u001b[0m\n", + "Moved pawn (♟) from e7 to e5.\n", + "\u001b[32m**********************************************************************\u001b[0m\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[31m\n", + ">>>>>>>> USING AUTO REPLY...\u001b[0m\n", + "\u001b[33mPlayer White\u001b[0m (to Board Proxy):\n", + "\n", + "I've moved my pawn from e7 to e5. Your move!\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33mPlayer White\u001b[0m (to Player Black):\n", + "\n", + "I've moved my pawn from e7 to e5. Your move!\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[31m\n", + ">>>>>>>> USING AUTO REPLY...\u001b[0m\n", + "\u001b[34m\n", + "********************************************************************************\u001b[0m\n", + "\u001b[34mStarting a new chat....\n", + "\n", + "Message:\n", + "I've moved my pawn from e7 to e5. Your move!\n", + "\n", + "Carryover: \n", + "\u001b[0m\n", + "\u001b[34m\n", + "********************************************************************************\u001b[0m\n", + "\u001b[33mBoard Proxy\u001b[0m (to Player Black):\n", + "\n", + "I've moved my pawn from e7 to e5. Your move!\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[31m\n", + ">>>>>>>> USING AUTO REPLY...\u001b[0m\n", + "\u001b[33mPlayer Black\u001b[0m (to Board Proxy):\n", + "\n", + "\u001b[32m***** Suggested tool Call (call_gaqEpvOSEaDoh1wxvrDpwVCe): make_move *****\u001b[0m\n", + "Arguments: \n", + "{\"move\":\"e2e4\"}\n", + "\u001b[32m**************************************************************************\u001b[0m\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[35m\n", + ">>>>>>>> EXECUTING FUNCTION make_move...\u001b[0m\n", + "\u001b[33mBoard Proxy\u001b[0m (to Player Black):\n", + "\n", + "\u001b[33mBoard Proxy\u001b[0m (to Player Black):\n", + "\n", + "\u001b[32m***** Response from calling tool \"call_gaqEpvOSEaDoh1wxvrDpwVCe\" *****\u001b[0m\n", + "Error: illegal uci: 'e2e4' in rnbqkbnr/pppp1ppp/8/4p3/4P3/8/PPPP1PPP/RNBQKBNR w KQkq - 0 2\n", + "\u001b[32m**********************************************************************\u001b[0m\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[31m\n", + ">>>>>>>> USING AUTO REPLY...\u001b[0m\n", + "\u001b[33mPlayer Black\u001b[0m (to Board Proxy):\n", + "\n", + "\u001b[32m***** Suggested tool Call (call_BJWUGbFeqnYUwY8x6yEq6Aug): get_legal_moves *****\u001b[0m\n", + "Arguments: \n", + "{}\n", + "\u001b[32m********************************************************************************\u001b[0m\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[35m\n", + ">>>>>>>> EXECUTING FUNCTION get_legal_moves...\u001b[0m\n", + "\u001b[33mBoard Proxy\u001b[0m (to Player Black):\n", + "\n", + "\u001b[33mBoard Proxy\u001b[0m (to Player Black):\n", + "\n", + "\u001b[32m***** Response from calling tool \"call_BJWUGbFeqnYUwY8x6yEq6Aug\" *****\u001b[0m\n", + "Possible moves are: g1h3,g1f3,g1e2,f1a6,f1b5,f1c4,f1d3,f1e2,e1e2,d1h5,d1g4,d1f3,d1e2,b1c3,b1a3,h2h3,g2g3,f2f3,d2d3,c2c3,b2b3,a2a3,h2h4,g2g4,f2f4,d2d4,c2c4,b2b4,a2a4\n", + "\u001b[32m**********************************************************************\u001b[0m\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[31m\n", + ">>>>>>>> USING AUTO REPLY...\u001b[0m\n", + "\u001b[33mPlayer Black\u001b[0m (to Board Proxy):\n", + "\n", + "I'll move my pawn from d2 to d4. Your turn!\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33mBoard Proxy\u001b[0m (to Player Black):\n", + "\n", + "Please make a move.\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[31m\n", + ">>>>>>>> USING AUTO REPLY...\u001b[0m\n", + "\u001b[33mPlayer Black\u001b[0m (to Board Proxy):\n", + "\n", + "\u001b[32m***** Suggested tool Call (call_tfSdfPTJgq3JeIOtT5NO2SJn): make_move *****\u001b[0m\n", + "Arguments: \n", + "{\"move\":\"d2d4\"}\n", + "\u001b[32m**************************************************************************\u001b[0m\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[35m\n", + ">>>>>>>> EXECUTING FUNCTION make_move...\u001b[0m\n" + ] + }, + { + "data": { + "image/svg+xml": [ + "
r n b q k b n r\n",
+       "p p p p . p p p\n",
+       ". . . . . . . .\n",
+       ". . . . p . . .\n",
+       ". . . P P . . .\n",
+       ". . . . . . . .\n",
+       "P P P . . P P P\n",
+       "R N B Q K B N R
" + ], + "text/plain": [ + "'
r n b q k b n r\\np p p p . p p p\\n. . . . . . . .\\n. . . . p . . .\\n. . . P P . . .\\n. . . . . . . .\\nP P P . . P P P\\nR N B Q K B N R
'" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[33mBoard Proxy\u001b[0m (to Player Black):\n", + "\n", + "\u001b[33mBoard Proxy\u001b[0m (to Player Black):\n", + "\n", + "\u001b[32m***** Response from calling tool \"call_tfSdfPTJgq3JeIOtT5NO2SJn\" *****\u001b[0m\n", + "Moved pawn (♙) from d2 to d4.\n", + "\u001b[32m**********************************************************************\u001b[0m\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[31m\n", + ">>>>>>>> USING AUTO REPLY...\u001b[0m\n", + "\u001b[33mPlayer Black\u001b[0m (to Board Proxy):\n", + "\n", + "I've moved my pawn from d2 to d4. Your move!\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33mPlayer Black\u001b[0m (to Player White):\n", + "\n", + "I've moved my pawn from d2 to d4. Your move!\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[31m\n", + ">>>>>>>> USING AUTO REPLY...\u001b[0m\n", + "\u001b[34m\n", + "********************************************************************************\u001b[0m\n", + "\u001b[34mStarting a new chat....\n", + "\n", + "Message:\n", + "I've moved my pawn from d2 to d4. Your move!\n", + "\n", + "Carryover: \n", + "\u001b[0m\n", + "\u001b[34m\n", + "********************************************************************************\u001b[0m\n", + "\u001b[33mBoard Proxy\u001b[0m (to Player White):\n", + "\n", + "I've moved my pawn from d2 to d4. Your move!\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[31m\n", + ">>>>>>>> USING AUTO REPLY...\u001b[0m\n", + "\u001b[33mPlayer White\u001b[0m (to Board Proxy):\n", + "\n", + "\u001b[32m***** Suggested tool Call (call_tLmkAFcQLMP7LHXKSAcUgPpA): get_legal_moves *****\u001b[0m\n", + "Arguments: \n", + "{}\n", + "\u001b[32m********************************************************************************\u001b[0m\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[35m\n", + ">>>>>>>> EXECUTING FUNCTION get_legal_moves...\u001b[0m\n", + "\u001b[33mBoard Proxy\u001b[0m (to Player White):\n", + "\n", + "\u001b[33mBoard Proxy\u001b[0m (to Player White):\n", + "\n", + "\u001b[32m***** Response from calling tool \"call_tLmkAFcQLMP7LHXKSAcUgPpA\" *****\u001b[0m\n", + "Possible moves are: g8e7,g8h6,g8f6,f8e7,f8d6,f8c5,f8b4,f8a3,e8e7,d8e7,d8f6,d8g5,d8h4,b8c6,b8a6,e5d4,h7h6,g7g6,f7f6,d7d6,c7c6,b7b6,a7a6,h7h5,g7g5,f7f5,d7d5,c7c5,b7b5,a7a5\n", + "\u001b[32m**********************************************************************\u001b[0m\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[31m\n", + ">>>>>>>> USING AUTO REPLY...\u001b[0m\n", + "\u001b[33mPlayer White\u001b[0m (to Board Proxy):\n", + "\n", + "\u001b[32m***** Suggested tool Call (call_z6PVz3XkfDsfEbsBrMODJm7A): make_move *****\u001b[0m\n", + "Arguments: \n", + "{\"move\":\"e5d4\"}\n", + "\u001b[32m**************************************************************************\u001b[0m\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[35m\n", + ">>>>>>>> EXECUTING FUNCTION make_move...\u001b[0m\n" + ] + }, + { + "data": { + "image/svg+xml": [ + "
r n b q k b n r\n",
+       "p p p p . p p p\n",
+       ". . . . . . . .\n",
+       ". . . . . . . .\n",
+       ". . . p P . . .\n",
+       ". . . . . . . .\n",
+       "P P P . . P P P\n",
+       "R N B Q K B N R
" + ], + "text/plain": [ + "'
r n b q k b n r\\np p p p . p p p\\n. . . . . . . .\\n. . . . . . . .\\n. . . p P . . .\\n. . . . . . . .\\nP P P . . P P P\\nR N B Q K B N R
'" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[33mBoard Proxy\u001b[0m (to Player White):\n", + "\n", + "\u001b[33mBoard Proxy\u001b[0m (to Player White):\n", + "\n", + "\u001b[32m***** Response from calling tool \"call_z6PVz3XkfDsfEbsBrMODJm7A\" *****\u001b[0m\n", + "Moved pawn (♟) from e5 to d4.\n", + "\u001b[32m**********************************************************************\u001b[0m\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[31m\n", + ">>>>>>>> USING AUTO REPLY...\u001b[0m\n", + "\u001b[33mPlayer White\u001b[0m (to Board Proxy):\n", + "\n", + "I've captured your pawn by moving my pawn from e5 to d4. Your move!\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33mPlayer White\u001b[0m (to Player Black):\n", + "\n", + "I've captured your pawn by moving my pawn from e5 to d4. Your move!\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[31m\n", + ">>>>>>>> USING AUTO REPLY...\u001b[0m\n", + "\u001b[34m\n", + "********************************************************************************\u001b[0m\n", + "\u001b[34mStarting a new chat....\n", + "\n", + "Message:\n", + "I've captured your pawn by moving my pawn from e5 to d4. Your move!\n", + "\n", + "Carryover: \n", + "\u001b[0m\n", + "\u001b[34m\n", + "********************************************************************************\u001b[0m\n", + "\u001b[33mBoard Proxy\u001b[0m (to Player Black):\n", + "\n", + "I've captured your pawn by moving my pawn from e5 to d4. Your move!\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[31m\n", + ">>>>>>>> USING AUTO REPLY...\u001b[0m\n", + "\u001b[33mPlayer Black\u001b[0m (to Board Proxy):\n", + "\n", + "\u001b[32m***** Suggested tool Call (call_CedmvIwaBWk23QxMZunlaOYt): get_legal_moves *****\u001b[0m\n", + "Arguments: \n", + "{}\n", + "\u001b[32m********************************************************************************\u001b[0m\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[35m\n", + ">>>>>>>> EXECUTING FUNCTION get_legal_moves...\u001b[0m\n", + "\u001b[33mBoard Proxy\u001b[0m (to Player Black):\n", + "\n", + "\u001b[33mBoard Proxy\u001b[0m (to Player Black):\n", + "\n", + "\u001b[32m***** Response from calling tool \"call_CedmvIwaBWk23QxMZunlaOYt\" *****\u001b[0m\n", + "Possible moves are: g1h3,g1f3,g1e2,f1a6,f1b5,f1c4,f1d3,f1e2,e1e2,e1d2,d1h5,d1g4,d1d4,d1f3,d1d3,d1e2,d1d2,c1h6,c1g5,c1f4,c1e3,c1d2,b1c3,b1a3,b1d2,e4e5,h2h3,g2g3,f2f3,c2c3,b2b3,a2a3,h2h4,g2g4,f2f4,c2c4,b2b4,a2a4\n", + "\u001b[32m**********************************************************************\u001b[0m\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[31m\n", + ">>>>>>>> USING AUTO REPLY...\u001b[0m\n", + "\u001b[33mPlayer Black\u001b[0m (to Board Proxy):\n", + "\n", + "\u001b[32m***** Suggested tool Call (call_gaqEpvOSEaDoh1wxvrDpwVCe): make_move *****\u001b[0m\n", + "Arguments: \n", + "{\"move\":\"d1d4\"}\n", + "\u001b[32m**************************************************************************\u001b[0m\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[35m\n", + ">>>>>>>> EXECUTING FUNCTION make_move...\u001b[0m\n" + ] + }, + { + "data": { + "image/svg+xml": [ + "
r n b q k b n r\n",
+       "p p p p . p p p\n",
+       ". . . . . . . .\n",
+       ". . . . . . . .\n",
+       ". . . Q P . . .\n",
+       ". . . . . . . .\n",
+       "P P P . . P P P\n",
+       "R N B . K B N R
" + ], + "text/plain": [ + "'
r n b q k b n r\\np p p p . p p p\\n. . . . . . . .\\n. . . . . . . .\\n. . . Q P . . .\\n. . . . . . . .\\nP P P . . P P P\\nR N B . K B N R
'" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[33mBoard Proxy\u001b[0m (to Player Black):\n", + "\n", + "\u001b[33mBoard Proxy\u001b[0m (to Player Black):\n", + "\n", + "\u001b[32m***** Response from calling tool \"call_gaqEpvOSEaDoh1wxvrDpwVCe\" *****\u001b[0m\n", + "Moved queen (♕) from d1 to d4.\n", + "\u001b[32m**********************************************************************\u001b[0m\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[31m\n", + ">>>>>>>> USING AUTO REPLY...\u001b[0m\n", + "\u001b[33mPlayer Black\u001b[0m (to Board Proxy):\n", + "\n", + "I've moved my queen from d1 to d4, capturing your pawn. Your move!\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33mPlayer Black\u001b[0m (to Player White):\n", + "\n", + "I've moved my queen from d1 to d4, capturing your pawn. Your move!\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[31m\n", + ">>>>>>>> USING AUTO REPLY...\u001b[0m\n", + "\u001b[34m\n", + "********************************************************************************\u001b[0m\n", + "\u001b[34mStarting a new chat....\n", + "\n", + "Message:\n", + "I've moved my queen from d1 to d4, capturing your pawn. Your move!\n", + "\n", + "Carryover: \n", + "\u001b[0m\n", + "\u001b[34m\n", + "********************************************************************************\u001b[0m\n", + "\u001b[33mBoard Proxy\u001b[0m (to Player White):\n", + "\n", + "I've moved my queen from d1 to d4, capturing your pawn. Your move!\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[31m\n", + ">>>>>>>> USING AUTO REPLY...\u001b[0m\n", + "\u001b[33mPlayer White\u001b[0m (to Board Proxy):\n", + "\n", + "\u001b[32m***** Suggested tool Call (call_JSsR85jDNRO58KCJFmeUU66J): get_legal_moves *****\u001b[0m\n", + "Arguments: \n", + "{}\n", + "\u001b[32m********************************************************************************\u001b[0m\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[35m\n", + ">>>>>>>> EXECUTING FUNCTION get_legal_moves...\u001b[0m\n", + "\u001b[33mBoard Proxy\u001b[0m (to Player White):\n", + "\n", + "\u001b[33mBoard Proxy\u001b[0m (to Player White):\n", + "\n", + "\u001b[32m***** Response from calling tool \"call_JSsR85jDNRO58KCJFmeUU66J\" *****\u001b[0m\n", + "Possible moves are: g8e7,g8h6,g8f6,f8e7,f8d6,f8c5,f8b4,f8a3,e8e7,d8e7,d8f6,d8g5,d8h4,b8c6,b8a6,h7h6,g7g6,f7f6,d7d6,c7c6,b7b6,a7a6,h7h5,g7g5,f7f5,d7d5,c7c5,b7b5,a7a5\n", + "\u001b[32m**********************************************************************\u001b[0m\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[31m\n", + ">>>>>>>> USING AUTO REPLY...\u001b[0m\n", + "\u001b[33mPlayer White\u001b[0m (to Board Proxy):\n", + "\n", + "It's your turn, and you have a wide range of moves available. To keep the game interesting, I will move my knight from b8 to c6. Let's see how this plays out!\n", + "\u001b[32m***** Suggested tool Call (call_QH2T8CK9SUhUiwyPW5kbabaj): make_move *****\u001b[0m\n", + "Arguments: \n", + "{\"move\":\"b8c6\"}\n", + "\u001b[32m**************************************************************************\u001b[0m\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[35m\n", + ">>>>>>>> EXECUTING FUNCTION make_move...\u001b[0m\n" + ] + }, + { + "data": { + "image/svg+xml": [ + "
r . b q k b n r\n",
+       "p p p p . p p p\n",
+       ". . n . . . . .\n",
+       ". . . . . . . .\n",
+       ". . . Q P . . .\n",
+       ". . . . . . . .\n",
+       "P P P . . P P P\n",
+       "R N B . K B N R
" + ], + "text/plain": [ + "'
r . b q k b n r\\np p p p . p p p\\n. . n . . . . .\\n. . . . . . . .\\n. . . Q P . . .\\n. . . . . . . .\\nP P P . . P P P\\nR N B . K B N R
'" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[33mBoard Proxy\u001b[0m (to Player White):\n", + "\n", + "\u001b[33mBoard Proxy\u001b[0m (to Player White):\n", + "\n", + "\u001b[32m***** Response from calling tool \"call_QH2T8CK9SUhUiwyPW5kbabaj\" *****\u001b[0m\n", + "Moved knight (♞) from b8 to c6.\n", + "\u001b[32m**********************************************************************\u001b[0m\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[31m\n", + ">>>>>>>> USING AUTO REPLY...\u001b[0m\n", + "\u001b[33mPlayer White\u001b[0m (to Board Proxy):\n", + "\n", + "I've moved my knight from b8 to c6. Your move!\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33mPlayer White\u001b[0m (to Player Black):\n", + "\n", + "I've moved my knight from b8 to c6. Your move!\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[31m\n", + ">>>>>>>> USING AUTO REPLY...\u001b[0m\n", + "\u001b[34m\n", + "********************************************************************************\u001b[0m\n", + "\u001b[34mStarting a new chat....\n", + "\n", + "Message:\n", + "I've moved my knight from b8 to c6. Your move!\n", + "\n", + "Carryover: \n", + "\u001b[0m\n", + "\u001b[34m\n", + "********************************************************************************\u001b[0m\n", + "\u001b[33mBoard Proxy\u001b[0m (to Player Black):\n", + "\n", + "I've moved my knight from b8 to c6. Your move!\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[31m\n", + ">>>>>>>> USING AUTO REPLY...\u001b[0m\n", + "\u001b[33mPlayer Black\u001b[0m (to Board Proxy):\n", + "\n", + "\u001b[32m***** Suggested tool Call (call_WwJj6w6Wwi1gOklMDbUhUJuG): make_move *****\u001b[0m\n", + "Arguments: \n", + "{\"move\":\"b8c6\"}\n", + "\u001b[32m**************************************************************************\u001b[0m\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[35m\n", + ">>>>>>>> EXECUTING FUNCTION make_move...\u001b[0m\n", + "\u001b[33mBoard Proxy\u001b[0m (to Player Black):\n", + "\n", + "\u001b[33mBoard Proxy\u001b[0m (to Player Black):\n", + "\n", + "\u001b[32m***** Response from calling tool \"call_WwJj6w6Wwi1gOklMDbUhUJuG\" *****\u001b[0m\n", + "Error: illegal uci: 'b8c6' in r1bqkbnr/pppp1ppp/2n5/8/3QP3/8/PPP2PPP/RNB1KBNR w KQkq - 1 4\n", + "\u001b[32m**********************************************************************\u001b[0m\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[31m\n", + ">>>>>>>> USING AUTO REPLY...\u001b[0m\n", + "\u001b[33mPlayer Black\u001b[0m (to Board Proxy):\n", + "\n", + "\u001b[32m***** Suggested tool Call (call_fx5RRC2AGI1XoARH2EjBns8G): get_legal_moves *****\u001b[0m\n", + "Arguments: \n", + "{}\n", + "\u001b[32m********************************************************************************\u001b[0m\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[35m\n", + ">>>>>>>> EXECUTING FUNCTION get_legal_moves...\u001b[0m\n", + "\u001b[33mBoard Proxy\u001b[0m (to Player Black):\n", + "\n", + "\u001b[33mBoard Proxy\u001b[0m (to Player Black):\n", + "\n", + "\u001b[32m***** Response from calling tool \"call_fx5RRC2AGI1XoARH2EjBns8G\" *****\u001b[0m\n", + "Possible moves are: d4g7,d4d7,d4a7,d4f6,d4d6,d4b6,d4e5,d4d5,d4c5,d4c4,d4b4,d4a4,d4e3,d4d3,d4c3,d4d2,d4d1,g1h3,g1f3,g1e2,f1a6,f1b5,f1c4,f1d3,f1e2,e1e2,e1d2,e1d1,c1h6,c1g5,c1f4,c1e3,c1d2,b1c3,b1a3,b1d2,e4e5,h2h3,g2g3,f2f3,c2c3,b2b3,a2a3,h2h4,g2g4,f2f4,c2c4,b2b4,a2a4\n", + "\u001b[32m**********************************************************************\u001b[0m\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[31m\n", + ">>>>>>>> USING AUTO REPLY...\u001b[0m\n", + "\u001b[33mPlayer Black\u001b[0m (to Board Proxy):\n", + "\n", + "It seems there was a misunderstanding with your move as \"b8c6\" is not a valid move right now. Please ensure your move is from the current board position and legal. If you'd like to suggest another move or need assistance, please let me know!\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33mBoard Proxy\u001b[0m (to Player Black):\n", + "\n", + "Please make a move.\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[31m\n", + ">>>>>>>> USING AUTO REPLY...\u001b[0m\n", + "\u001b[33mPlayer Black\u001b[0m (to Board Proxy):\n", + "\n", + "\u001b[32m***** Suggested tool Call (call_e4oYuwkcrLmooN9AKcrgBucB): make_move *****\u001b[0m\n", + "Arguments: \n", + "{\"move\":\"d4d5\"}\n", + "\u001b[32m**************************************************************************\u001b[0m\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[35m\n", + ">>>>>>>> EXECUTING FUNCTION make_move...\u001b[0m\n" + ] + }, + { + "data": { + "image/svg+xml": [ + "
r . b q k b n r\n",
+       "p p p p . p p p\n",
+       ". . n . . . . .\n",
+       ". . . Q . . . .\n",
+       ". . . . P . . .\n",
+       ". . . . . . . .\n",
+       "P P P . . P P P\n",
+       "R N B . K B N R
" + ], + "text/plain": [ + "'
r . b q k b n r\\np p p p . p p p\\n. . n . . . . .\\n. . . Q . . . .\\n. . . . P . . .\\n. . . . . . . .\\nP P P . . P P P\\nR N B . K B N R
'" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[33mBoard Proxy\u001b[0m (to Player Black):\n", + "\n", + "\u001b[33mBoard Proxy\u001b[0m (to Player Black):\n", + "\n", + "\u001b[32m***** Response from calling tool \"call_e4oYuwkcrLmooN9AKcrgBucB\" *****\u001b[0m\n", + "Moved queen (♕) from d4 to d5.\n", + "\u001b[32m**********************************************************************\u001b[0m\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[31m\n", + ">>>>>>>> USING AUTO REPLY...\u001b[0m\n", + "\u001b[33mPlayer Black\u001b[0m (to Board Proxy):\n", + "\n", + "I've moved my queen from d4 to d5. Your move!\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33mPlayer Black\u001b[0m (to Player White):\n", + "\n", + "I've moved my queen from d4 to d5. Your move!\n", + "\n", + "--------------------------------------------------------------------------------\n" + ] + } + ], + "source": [ + "# Clear the board.\n", + "board = chess.Board()\n", + "\n", + "chat_result = player_white.initiate_chat(\n", + " player_black,\n", + " message=\"Let's play chess! Your move.\",\n", + " max_turns=4,\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In the output above, you can see \"Start a new chat\" is displayed\n", + "whenever a new nested chat is started between the board proxy agent and a player agent.\n", + "The \"carryover\" empty as it is a new chat in the sequence." + ] + } + ], + "metadata": { + "front_matter": { + "description": "LLM-backed agents playing chess with each other using nested chats.", + "tags": [ + "nested chat" + ] + }, + "kernelspec": { + "display_name": "autogen", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.5" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/notebook/agentchat_nested_sequential_chats.ipynb b/notebook/agentchat_nested_sequential_chats.ipynb new file mode 100644 index 000000000000..2f591c2530a2 --- /dev/null +++ b/notebook/agentchat_nested_sequential_chats.ipynb @@ -0,0 +1,1210 @@ +{ + "cells": [ + { + "attachments": {}, + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "# Solving Complex Tasks with A Sequence of Nested Chats\n", + "\n", + "This notebook shows how you can leverage **nested chats** to solve complex task with AutoGen. Nested chats is a sequence of chats created by a receiver agent after receiving a message from a sender agent and finished before the receiver agent replies to this message. Nested chats allow AutoGen agents to use other agents as their inner monologue to accomplish tasks. This abstraction is powerful as it allows you to compose agents in rich ways. This notebook shows how you can nest a pretty complex sequence of chats among _inner_ agents inside an _outer_ agent.\n", + "\n", + "\\:\\:\\:info Requirements\n", + "\n", + "Install `pyautogen`:\n", + "```bash\n", + "pip install pyautogen\n", + "```\n", + "\n", + "For more information, please refer to the [installation guide](/docs/installation/).\n", + "\n", + "\\:\\:\\:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import autogen\n", + "\n", + "config_list = autogen.config_list_from_json(env_or_file=\"OAI_CONFIG_LIST\")\n", + "llm_config = {\"config_list\": config_list}" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\\:\\:\\:tip\n", + "\n", + "Learn more about the various ways to configure LLM endpoints [here](/docs/topics/llm_configuration).\n", + "\n", + "\\:\\:\\:" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Example Task\n", + "\n", + "Suppose we want the agents to complete the following sequence of tasks:" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "tasks = [\n", + " \"\"\"On which days in 2024 was Microsoft Stock higher than $400? Comment on the stock performance.\"\"\",\n", + " \"\"\"Make a pleasant joke about it.\"\"\",\n", + "]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Since the first task could be complex to solve, lets construct new agents that can serve as an inner monologue.\n", + "\n", + "### Step 1. Define Agents\n", + "\n", + "#### A Group Chat for Inner Monologue\n", + "Below, we construct a group chat manager which manages an `inner_assistant` agent and an `inner_code_interpreter` agent. \n", + "Later we will use this group chat inside another agent.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "inner_assistant = autogen.AssistantAgent(\n", + " \"Inner-assistant\",\n", + " llm_config=llm_config,\n", + " is_termination_msg=lambda x: x.get(\"content\", \"\").find(\"TERMINATE\") >= 0,\n", + ")\n", + "\n", + "inner_code_interpreter = autogen.UserProxyAgent(\n", + " \"Inner-code-interpreter\",\n", + " human_input_mode=\"NEVER\",\n", + " code_execution_config={\n", + " \"work_dir\": \"coding\",\n", + " \"use_docker\": False,\n", + " },\n", + " default_auto_reply=\"\",\n", + " is_termination_msg=lambda x: x.get(\"content\", \"\").find(\"TERMINATE\") >= 0,\n", + ")\n", + "\n", + "groupchat = autogen.GroupChat(\n", + " agents=[inner_assistant, inner_code_interpreter],\n", + " messages=[],\n", + " speaker_selection_method=\"round_robin\", # With two agents, this is equivalent to a 1:1 conversation.\n", + " allow_repeat_speaker=False,\n", + " max_round=8,\n", + ")\n", + "\n", + "manager = autogen.GroupChatManager(\n", + " groupchat=groupchat,\n", + " is_termination_msg=lambda x: x.get(\"content\", \"\").find(\"TERMINATE\") >= 0,\n", + " llm_config=llm_config,\n", + " code_execution_config={\n", + " \"work_dir\": \"coding\",\n", + " \"use_docker\": False,\n", + " },\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Inner- and Outer-Level Individual Agents\n", + "\n", + "Now we will construct a number of individual agents that will assume role of outer and inner agents." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "assistant_1 = autogen.AssistantAgent(\n", + " name=\"Assistant_1\",\n", + " llm_config={\"config_list\": config_list},\n", + ")\n", + "\n", + "assistant_2 = autogen.AssistantAgent(\n", + " name=\"Assistant_2\",\n", + " llm_config={\"config_list\": config_list},\n", + ")\n", + "\n", + "writer = autogen.AssistantAgent(\n", + " name=\"Writer\",\n", + " llm_config={\"config_list\": config_list},\n", + " system_message=\"\"\"\n", + " You are a professional writer, known for\n", + " your insightful and engaging articles.\n", + " You transform complex concepts into compelling narratives.\n", + " \"\"\",\n", + ")\n", + "\n", + "reviewer = autogen.AssistantAgent(\n", + " name=\"Reviewer\",\n", + " llm_config={\"config_list\": config_list},\n", + " system_message=\"\"\"\n", + " You are a compliance reviewer, known for your thoroughness and commitment to standards.\n", + " Your task is to scrutinize content for any harmful elements or regulatory violations, ensuring\n", + " all materials align with required guidelines.\n", + " You must review carefully, identify potential issues, and maintain the integrity of the organization.\n", + " Your role demands fairness, a deep understanding of regulations, and a focus on protecting against\n", + " harm while upholding a culture of responsibility.\n", + " \"\"\",\n", + ")\n", + "\n", + "user = autogen.UserProxyAgent(\n", + " name=\"User\",\n", + " human_input_mode=\"NEVER\",\n", + " is_termination_msg=lambda x: x.get(\"content\", \"\").find(\"TERMINATE\") >= 0,\n", + " code_execution_config={\n", + " \"last_n_messages\": 1,\n", + " \"work_dir\": \"tasks\",\n", + " \"use_docker\": False,\n", + " }, # Please set use_docker=True if docker is available to run the generated code. Using docker is safer than running the generated code directly.\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Step 2: Orchestrate Nested Chats to Solve Tasks\n", + "\n", + "#### Outer Level\n", + "In the following code block, at the outer level, we have communication between:\n", + "\n", + "- `user` - `assistant_1` for solving the first task, i.e., `tasks[0]`.\n", + "- `user` - `assistant_2` for solving the second task, i.e., `tasks[1]`.\n", + "\n", + "#### Inner Level (Nested Chats)\n", + "Since the first task is quite complicated, we created a sequence of _nested chats_ as the inner monologue of Assistant_1.\n", + "\n", + "1. `assistant_1` - `manager`: This chat intends to delegate the task received by Assistant_1 to the Manager to solve.\n", + "\n", + "2. `assistant_1` - `writer`: This chat takes the output from Nested Chat 1, i.e., Assistant_1 vs. Manager, and lets the Writer polish the content to make an engaging and nicely formatted blog post, which is realized through the writing_message function.\n", + "\n", + "3. `assistant_1` - `reviewer`: This chat takes the output from Nested Chat 2 and intends to let the Reviewer agent review the content from Nested Chat 2.\n", + "\n", + "4. `assistant_1` - `writer`: This chat takes the output from previous nested chats and intends to let the Writer agent finalize a blog post.\n", + "\n", + "The sequence of nested chats can be realized with the `register_nested_chats` function, which allows one to register one or a sequence of chats to a particular agent (in this example, the `assistant_1` agent).\n", + "\n", + "Information about the sequence of chats can be specified in the `chat_queue` argument of the `register_nested_chats` function. The following fields are especially useful:\n", + "- `recipient` (required) specifies the nested agent;\n", + "- `message` specifies what message to send to the nested recipient agent. In a sequence of nested chats, if the `message` field is not specified, we will use the last message the registering agent received as the initial message in the first chat and will skip any subsequent chat in the queue that does not have the `message` field. You can either provide a string or define a callable that returns a string.\n", + "- `summary_method` decides what to get out of the nested chat. You can either select from existing options including `\"last_msg\"` and `\"reflection_with_llm\"`, or or define your own way on what to get from the nested chat with a Callable.\n", + "- `max_turns` determines how many turns of conversation to have between the concerned agent pairs." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[34m\n", + "********************************************************************************\u001b[0m\n", + "\u001b[34mStart a new chat with the following message: \n", + "On which days in 2024 was Microsoft Stock higher than $400? Comment on the stock performance.\n", + "\n", + "With the following carryover: \n", + "\u001b[0m\n", + "\u001b[34m\n", + "********************************************************************************\u001b[0m\n", + "\u001b[33mUser\u001b[0m (to Assistant_1):\n", + "\n", + "On which days in 2024 was Microsoft Stock higher than $400? Comment on the stock performance.\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[34m\n", + "********************************************************************************\u001b[0m\n", + "\u001b[34mStart a new chat with the following message: \n", + "On which days in 2024 was Microsoft Stock higher than $400? Comment on the stock performance.\n", + "\n", + "With the following carryover: \n", + "\u001b[0m\n", + "\u001b[34m\n", + "********************************************************************************\u001b[0m\n", + "\u001b[33mAssistant_1\u001b[0m (to chat_manager):\n", + "\n", + "On which days in 2024 was Microsoft Stock higher than $400? Comment on the stock performance.\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33mInner-assistant\u001b[0m (to chat_manager):\n", + "\n", + "To find out on which specific days Microsoft's stock (ticker symbol: MSFT) closed above $400 in 2024, we will need to access historical stock price data for Microsoft from a reliable financial data source. This kind of data is typically available on financial websites such as Yahoo Finance, Google Finance, or through financial data APIs such as Alpha Vantage or IEX Cloud.\n", + "\n", + "Since I cannot directly browse the web or access external APIs, I will provide you with a Python script that uses the `yfinance` library to fetch historical stock data for Microsoft and filter the dates when the stock price was higher than $400.\n", + "\n", + "Firstly, you need to install the `yfinance` module if it's not already installed. You can do so using pip by executing `pip install yfinance` in your shell.\n", + "\n", + "After installation, here is the Python code that you can execute to fetch the data and filter the specific dates:\n", + "\n", + "```python\n", + "# filename: msft_stock_analysis.py\n", + "import yfinance as yf\n", + "from datetime import datetime\n", + "\n", + "# Define the ticker symbol for Microsoft\n", + "ticker_symbol = \"MSFT\"\n", + "\n", + "# Fetch historical stock data for Microsoft for the year 2024\n", + "start_date = \"2024-01-01\"\n", + "end_date = \"2024-12-31\"\n", + "msft_data = yf.download(ticker_symbol, start=start_date, end=end_date)\n", + "\n", + "# Filter the days when the closing price was higher than $400\n", + "days_above_400 = msft_data[msft_data['Close'] > 400]\n", + "\n", + "# Print the dates and closing prices on those dates\n", + "print(\"Dates when Microsoft's stock closed above $400 in 2024:\")\n", + "print(days_above_400[['Close']])\n", + "\n", + "# Comment on the stock performance\n", + "if not days_above_400.empty:\n", + " days_count = len(days_above_400)\n", + " print(f\"\\nMicrosoft's stock closed above $400 on {days_count} days in 2024.\")\n", + "else:\n", + " print(\"\\nMicrosoft's stock did not close above $400 on any day in 2024.\")\n", + "```\n", + "\n", + "Please save the above code to a file named `msft_stock_analysis.py` and run it. This will print out the dates when Microsoft's stock was higher than $400 in 2024 and comment on the stock performance based on the results. \n", + "\n", + "Keep in mind that the `yfinance` library fetches real-time data, and since we are in 2023, data for 2024 is not available yet. Therefore, when you run the script, it will show that the stock did not close above $400, which is expected since 2024 has not occurred yet. For actual analysis, you would have to run the script after the end of 2024 or modify the date range to a past range where data is available.\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[31m\n", + ">>>>>>>> EXECUTING CODE BLOCK 0 (inferred language is python)...\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/qingyunwu/Documents/github/autogen/autogen/agentchat/chat.py:46: UserWarning: Repetitive recipients detected: The chat history will be cleared by default if a recipient appears more than once. To retain the chat history, please set 'clear_history=False' in the configuration of the repeating agent.\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[33mInner-code-interpreter\u001b[0m (to chat_manager):\n", + "\n", + "exitcode: 0 (execution succeeded)\n", + "Code output: \n", + "Dates when Microsoft's stock closed above $400 in 2024:\n", + " Close\n", + "Date \n", + "2024-01-24 402.559998\n", + "2024-01-25 404.869995\n", + "2024-01-26 403.929993\n", + "2024-01-29 409.720001\n", + "2024-01-30 408.589996\n", + "2024-02-01 403.779999\n", + "2024-02-02 411.220001\n", + "2024-02-05 405.649994\n", + "2024-02-06 405.489990\n", + "2024-02-07 414.049988\n", + "2024-02-08 414.109985\n", + "2024-02-09 420.549988\n", + "2024-02-12 415.260010\n", + "2024-02-13 406.320007\n", + "2024-02-14 409.489990\n", + "2024-02-15 406.559998\n", + "2024-02-16 404.059998\n", + "2024-02-20 402.790009\n", + "2024-02-21 402.179993\n", + "2024-02-22 411.649994\n", + "2024-02-23 410.339996\n", + "\n", + "Microsoft's stock closed above $400 on 21 days in 2024.\n", + "\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33mInner-assistant\u001b[0m (to chat_manager):\n", + "\n", + "Based on the output from the code execution, Microsoft's stock (MSFT) closed above $400 on 21 separate days in 2024. The closing prices on those days ranged from slightly above $400 to highs around $420. This indicates periods of strong performance, during which the stock reached significant value.\n", + "\n", + "Here is a brief comment on the stock performance:\n", + "\n", + "The data shows that Microsoft's stock had several instances where it exceeded the $400 mark in early 2024, with notable peaks in February, which suggests a bullish trend during that period. Specific days like February 9th, where the stock hit around $420, indicate particularly strong performance.\n", + "\n", + "Having such a number of days with closing prices above $400 signals a robust market valuation for Microsoft at those times. Investors who held the stock on these dates may have seen appreciable gains, depending on their portfolio strategies.\n", + "\n", + "It's also noteworthy that stock prices fluctuate due to a variety of factors, including market sentiment, company performance, industry trends, and general economic conditions. This data provides a snapshot of Microsoft's stock performance but a deeper analysis would require more context on the market conditions, news, and events surrounding these dates.\n", + "\n", + "TERMINATE\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[34m\n", + "********************************************************************************\u001b[0m\n", + "\u001b[34mStart a new chat with the following message: \n", + "Polish the content to make an engaging and nicely formatted blog post. \n", + "\n", + " On which days in 2024 was Microsoft Stock higher than $400? Comment on the stock performance.\n", + "\n", + "With the following carryover: \n", + "Microsoft's stock (MSFT) closed above $400 on 21 separate days in 2024, demonstrating periods of strong stock performance with values reaching as high as around $420. The stock data suggests a bullish trend, especially in February when the stock peaked, indicating positive investor sentiment and robust market valuation during those times.\u001b[0m\n", + "\u001b[34m\n", + "********************************************************************************\u001b[0m\n", + "\u001b[33mAssistant_1\u001b[0m (to Writer):\n", + "\n", + "Polish the content to make an engaging and nicely formatted blog post. \n", + "\n", + " On which days in 2024 was Microsoft Stock higher than $400? Comment on the stock performance.\n", + "Context: \n", + "Microsoft's stock (MSFT) closed above $400 on 21 separate days in 2024, demonstrating periods of strong stock performance with values reaching as high as around $420. The stock data suggests a bullish trend, especially in February when the stock peaked, indicating positive investor sentiment and robust market valuation during those times.\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33mWriter\u001b[0m (to Assistant_1):\n", + "\n", + "# Beyond the $400 Mark: Tracing Microsoft's Pinnacle Moments in 2024\n", + "\n", + "In the ever-fluctuating world of stocks, each milestone crossed can turn into a celebration or a stern reckoning of what the future holds. For Microsoft (MSFT), the year 2024 was a testament to its resilience and investor confidence as its stock ascended beyond the coveted $400 mark on 21 remarkable occasions.\n", + "\n", + "This performance wasn't just numerically significant; it was emblematic of a potent bullish energy within the market, affirming the tech giant’s leviathan presence amidst a highly competitive industry terrain. The loftiest point, flirting with the heights of approximately $420, served not just as a numerical peak, but as a beacon of the company’s market valuation and the unwavering investor trust in Microsoft's strategies and future prospects.\n", + "\n", + "## A Snapshot of Stellar Performance\n", + "\n", + "Microsoft's stock performance throughout 2024 was far from being a serendipitous spike. Instead, it showcased a carefully constructed narrative of growth and optimism. The chronicles of MSFT's venture past the $400 threshold are marked by fleeting dips and steadfast ascensions. Remarkably, the surge wasn't some scattergun pattern scattered across the calendar year. Rather, it was most pronounced in the month of February — a period that could very well be termed as the 'February Flourish.'\n", + "\n", + "During this short yet significant timeframe, investors witnessed the creation of incremental wealth that possibly outstripped all market expectations, setting a precedent for what a legacy company like Microsoft could achieve in a climate rife with disruptors and innovators.\n", + "\n", + "## Of Peaks and Valleys\n", + "\n", + "When assessing the grand canvas of Microsoft's stock performance, it is crucial to take a step back and appreciate the layered complexity of these financial movements. Amidst economic uncertainties and the technocratic whims that habitually serve both as tailwinds and headwinds to such companies, the story of Microsoft crossing the $400 threshold imbues the narrative with contours of investor euphoria interlaced with strategic agility.\n", + "\n", + "As these 21 days get etched into the fiscal annals of Microsoft, one cannot help but ponder the fine blend of factors — ranging from market dynamics to Microsoft's organizational maneuvers — that have coalesced to make these numbers a reality.\n", + "\n", + "## A Convergence of Positive Sentiments\n", + "\n", + "What does the future hold for MSFT as it treads past this impressive benchmark? The takeaway is not a simple extrapolation of past performance. Rather, it's the realization that stock trajectories, particularly for a company like Microsoft, are a confluence of judicious corporate governance, product innovation, market anticipation, and, dare we say, a touch of the zeitgeist.\n", + "\n", + "Microsoft’s capacity to command such stock valitudes speaks volumes about its robust position in both the technology domain and the stock market ecosystem. Whether this fiscal feat can be sustained or surpassed remains a subject of much conjecture and anticipation.\n", + "\n", + "As we continue to navigate the ebbs and flows of an unpredictable market landscape, the days when Microsoft's stock rose gallantly above $400 will be recalled as milestones of 2024, celebrated reflections of a corporation sailing the high seas of market volatility with remarkable poise.\n", + "\n", + "The analysis of precise data points and enlightening interpretations reveal much about the past while providing distinctive glimpses of potential futures. With Microsoft standing tall amongst peers, its voyage above the $400 watermark will be chronicled as days of high tides in the annals of financial history.\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[34m\n", + "********************************************************************************\u001b[0m\n", + "\u001b[34mStart a new chat with the following message: \n", + "Review the content provided.\n", + "\n", + "With the following carryover: \n", + "Microsoft's stock (MSFT) closed above $400 on 21 separate days in 2024, demonstrating periods of strong stock performance with values reaching as high as around $420. The stock data suggests a bullish trend, especially in February when the stock peaked, indicating positive investor sentiment and robust market valuation during those times.\n", + "# Beyond the $400 Mark: Tracing Microsoft's Pinnacle Moments in 2024\n", + "\n", + "In the ever-fluctuating world of stocks, each milestone crossed can turn into a celebration or a stern reckoning of what the future holds. For Microsoft (MSFT), the year 2024 was a testament to its resilience and investor confidence as its stock ascended beyond the coveted $400 mark on 21 remarkable occasions.\n", + "\n", + "This performance wasn't just numerically significant; it was emblematic of a potent bullish energy within the market, affirming the tech giant’s leviathan presence amidst a highly competitive industry terrain. The loftiest point, flirting with the heights of approximately $420, served not just as a numerical peak, but as a beacon of the company’s market valuation and the unwavering investor trust in Microsoft's strategies and future prospects.\n", + "\n", + "## A Snapshot of Stellar Performance\n", + "\n", + "Microsoft's stock performance throughout 2024 was far from being a serendipitous spike. Instead, it showcased a carefully constructed narrative of growth and optimism. The chronicles of MSFT's venture past the $400 threshold are marked by fleeting dips and steadfast ascensions. Remarkably, the surge wasn't some scattergun pattern scattered across the calendar year. Rather, it was most pronounced in the month of February — a period that could very well be termed as the 'February Flourish.'\n", + "\n", + "During this short yet significant timeframe, investors witnessed the creation of incremental wealth that possibly outstripped all market expectations, setting a precedent for what a legacy company like Microsoft could achieve in a climate rife with disruptors and innovators.\n", + "\n", + "## Of Peaks and Valleys\n", + "\n", + "When assessing the grand canvas of Microsoft's stock performance, it is crucial to take a step back and appreciate the layered complexity of these financial movements. Amidst economic uncertainties and the technocratic whims that habitually serve both as tailwinds and headwinds to such companies, the story of Microsoft crossing the $400 threshold imbues the narrative with contours of investor euphoria interlaced with strategic agility.\n", + "\n", + "As these 21 days get etched into the fiscal annals of Microsoft, one cannot help but ponder the fine blend of factors — ranging from market dynamics to Microsoft's organizational maneuvers — that have coalesced to make these numbers a reality.\n", + "\n", + "## A Convergence of Positive Sentiments\n", + "\n", + "What does the future hold for MSFT as it treads past this impressive benchmark? The takeaway is not a simple extrapolation of past performance. Rather, it's the realization that stock trajectories, particularly for a company like Microsoft, are a confluence of judicious corporate governance, product innovation, market anticipation, and, dare we say, a touch of the zeitgeist.\n", + "\n", + "Microsoft’s capacity to command such stock valitudes speaks volumes about its robust position in both the technology domain and the stock market ecosystem. Whether this fiscal feat can be sustained or surpassed remains a subject of much conjecture and anticipation.\n", + "\n", + "As we continue to navigate the ebbs and flows of an unpredictable market landscape, the days when Microsoft's stock rose gallantly above $400 will be recalled as milestones of 2024, celebrated reflections of a corporation sailing the high seas of market volatility with remarkable poise.\n", + "\n", + "The analysis of precise data points and enlightening interpretations reveal much about the past while providing distinctive glimpses of potential futures. With Microsoft standing tall amongst peers, its voyage above the $400 watermark will be chronicled as days of high tides in the annals of financial history.\u001b[0m\n", + "\u001b[34m\n", + "********************************************************************************\u001b[0m\n", + "\u001b[33mAssistant_1\u001b[0m (to Reviewer):\n", + "\n", + "Review the content provided.\n", + "Context: \n", + "Microsoft's stock (MSFT) closed above $400 on 21 separate days in 2024, demonstrating periods of strong stock performance with values reaching as high as around $420. The stock data suggests a bullish trend, especially in February when the stock peaked, indicating positive investor sentiment and robust market valuation during those times.\n", + "# Beyond the $400 Mark: Tracing Microsoft's Pinnacle Moments in 2024\n", + "\n", + "In the ever-fluctuating world of stocks, each milestone crossed can turn into a celebration or a stern reckoning of what the future holds. For Microsoft (MSFT), the year 2024 was a testament to its resilience and investor confidence as its stock ascended beyond the coveted $400 mark on 21 remarkable occasions.\n", + "\n", + "This performance wasn't just numerically significant; it was emblematic of a potent bullish energy within the market, affirming the tech giant’s leviathan presence amidst a highly competitive industry terrain. The loftiest point, flirting with the heights of approximately $420, served not just as a numerical peak, but as a beacon of the company’s market valuation and the unwavering investor trust in Microsoft's strategies and future prospects.\n", + "\n", + "## A Snapshot of Stellar Performance\n", + "\n", + "Microsoft's stock performance throughout 2024 was far from being a serendipitous spike. Instead, it showcased a carefully constructed narrative of growth and optimism. The chronicles of MSFT's venture past the $400 threshold are marked by fleeting dips and steadfast ascensions. Remarkably, the surge wasn't some scattergun pattern scattered across the calendar year. Rather, it was most pronounced in the month of February — a period that could very well be termed as the 'February Flourish.'\n", + "\n", + "During this short yet significant timeframe, investors witnessed the creation of incremental wealth that possibly outstripped all market expectations, setting a precedent for what a legacy company like Microsoft could achieve in a climate rife with disruptors and innovators.\n", + "\n", + "## Of Peaks and Valleys\n", + "\n", + "When assessing the grand canvas of Microsoft's stock performance, it is crucial to take a step back and appreciate the layered complexity of these financial movements. Amidst economic uncertainties and the technocratic whims that habitually serve both as tailwinds and headwinds to such companies, the story of Microsoft crossing the $400 threshold imbues the narrative with contours of investor euphoria interlaced with strategic agility.\n", + "\n", + "As these 21 days get etched into the fiscal annals of Microsoft, one cannot help but ponder the fine blend of factors — ranging from market dynamics to Microsoft's organizational maneuvers — that have coalesced to make these numbers a reality.\n", + "\n", + "## A Convergence of Positive Sentiments\n", + "\n", + "What does the future hold for MSFT as it treads past this impressive benchmark? The takeaway is not a simple extrapolation of past performance. Rather, it's the realization that stock trajectories, particularly for a company like Microsoft, are a confluence of judicious corporate governance, product innovation, market anticipation, and, dare we say, a touch of the zeitgeist.\n", + "\n", + "Microsoft’s capacity to command such stock valitudes speaks volumes about its robust position in both the technology domain and the stock market ecosystem. Whether this fiscal feat can be sustained or surpassed remains a subject of much conjecture and anticipation.\n", + "\n", + "As we continue to navigate the ebbs and flows of an unpredictable market landscape, the days when Microsoft's stock rose gallantly above $400 will be recalled as milestones of 2024, celebrated reflections of a corporation sailing the high seas of market volatility with remarkable poise.\n", + "\n", + "The analysis of precise data points and enlightening interpretations reveal much about the past while providing distinctive glimpses of potential futures. With Microsoft standing tall amongst peers, its voyage above the $400 watermark will be chronicled as days of high tides in the annals of financial history.\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33mReviewer\u001b[0m (to Assistant_1):\n", + "\n", + "The content provided serves as a market commentary, analyzing Microsoft's stock performance in the year 2024. In this review, I must ensure that the content is free from harmful elements, false claims, or regulatory violations.\n", + "\n", + "### Potential issues to consider:\n", + "\n", + "1. **Accuracy of Data**: Claims about stock prices and the number of days the stock closed above a certain threshold should be verifiable with stock market data. There must be confirmation that these numbers are accurate to present a truthful report and avoid misleading investors or stakeholders.\n", + "\n", + "2. **Forward-Looking Statements**: The article should avoid overly optimistic or pessimistic conjectures about future stock performance, which can be perceived as investment advice. Speculative statements should be clearly marked as such and provide a disclaimer that past performance does not guarantee future results.\n", + "\n", + "3. **Fair and Balanced**: While the article largely celebrates Microsoft's performance, it should also acknowledge risks and uncertainties inherent in stock investments to maintain a fair and balanced approach without unduly influencing market sentiment.\n", + "\n", + "4. **Non-Promotional Language**: Ensure that the content doesn't come off as promotional. Phrases like \"Microsoft's resilience and investor confidence\" and \"celebrated reflections of a corporation sailing the high seas of market volatility with remarkable poise\" should be reviewed to avoid appearing biased or overly promotional.\n", + "\n", + "5. **Compliance with SEC Regulations**: In the United States, Securities and Exchange Commission (SEC) regulations require careful communication about stock performance to avoid market manipulation, insider trading implications, or misstatements.\n", + "\n", + "6. **Objective Tone**: While the narrative is engaging, it's important that it remains objective and does not use language that could be considered subjective or biased. Phrases like \"Microsoft’s leviathan presence\" or \"February Flourish\" might be interpreted as adding emotional color rather than stating facts.\n", + "\n", + "7. **Clear Attribution**: If the report is based on external analyses or reported events, these should be clearly cited and attributed to maintain transparency.\n", + "\n", + "### Recommendations:\n", + "\n", + "- **Fact-Checking**: Verify all factual data through reliable stock market databases or financial reports released by Microsoft.\n", + " \n", + "- **Disclaimer**: Include a general disclaimer that the content is for informational purposes only and is not a form of financial advice or an inducement to invest.\n", + "\n", + "- **Balanced Analysis**: Emphasize the volatile nature of stock markets and integrate a risk-focused discussion to balance the positive sentiment conveyed.\n", + "\n", + "- **Neutral Language**: Adjust language to ensure neutrality and avoid any implications of advice or recommendation.\n", + "\n", + "In conclusion, while the content presents a positive overview of Microsoft's stock performance, it requires scrutiny for accuracy, neutrality, and conformance with regulatory standards, avoiding the potential of guiding market behavior or conveying investment advice. A careful revision ensuring these changes would align the material with the required guidelines and uphold the integrity of the content.\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[34m\n", + "********************************************************************************\u001b[0m\n", + "\u001b[34mStart a new chat with the following message: \n", + "Polish the content to make an engaging and nicely formatted blog post. \n", + "\n", + " On which days in 2024 was Microsoft Stock higher than $400? Comment on the stock performance.\n", + "\n", + "With the following carryover: \n", + "Microsoft's stock (MSFT) closed above $400 on 21 separate days in 2024, demonstrating periods of strong stock performance with values reaching as high as around $420. The stock data suggests a bullish trend, especially in February when the stock peaked, indicating positive investor sentiment and robust market valuation during those times.\n", + "# Beyond the $400 Mark: Tracing Microsoft's Pinnacle Moments in 2024\n", + "\n", + "In the ever-fluctuating world of stocks, each milestone crossed can turn into a celebration or a stern reckoning of what the future holds. For Microsoft (MSFT), the year 2024 was a testament to its resilience and investor confidence as its stock ascended beyond the coveted $400 mark on 21 remarkable occasions.\n", + "\n", + "This performance wasn't just numerically significant; it was emblematic of a potent bullish energy within the market, affirming the tech giant’s leviathan presence amidst a highly competitive industry terrain. The loftiest point, flirting with the heights of approximately $420, served not just as a numerical peak, but as a beacon of the company’s market valuation and the unwavering investor trust in Microsoft's strategies and future prospects.\n", + "\n", + "## A Snapshot of Stellar Performance\n", + "\n", + "Microsoft's stock performance throughout 2024 was far from being a serendipitous spike. Instead, it showcased a carefully constructed narrative of growth and optimism. The chronicles of MSFT's venture past the $400 threshold are marked by fleeting dips and steadfast ascensions. Remarkably, the surge wasn't some scattergun pattern scattered across the calendar year. Rather, it was most pronounced in the month of February — a period that could very well be termed as the 'February Flourish.'\n", + "\n", + "During this short yet significant timeframe, investors witnessed the creation of incremental wealth that possibly outstripped all market expectations, setting a precedent for what a legacy company like Microsoft could achieve in a climate rife with disruptors and innovators.\n", + "\n", + "## Of Peaks and Valleys\n", + "\n", + "When assessing the grand canvas of Microsoft's stock performance, it is crucial to take a step back and appreciate the layered complexity of these financial movements. Amidst economic uncertainties and the technocratic whims that habitually serve both as tailwinds and headwinds to such companies, the story of Microsoft crossing the $400 threshold imbues the narrative with contours of investor euphoria interlaced with strategic agility.\n", + "\n", + "As these 21 days get etched into the fiscal annals of Microsoft, one cannot help but ponder the fine blend of factors — ranging from market dynamics to Microsoft's organizational maneuvers — that have coalesced to make these numbers a reality.\n", + "\n", + "## A Convergence of Positive Sentiments\n", + "\n", + "What does the future hold for MSFT as it treads past this impressive benchmark? The takeaway is not a simple extrapolation of past performance. Rather, it's the realization that stock trajectories, particularly for a company like Microsoft, are a confluence of judicious corporate governance, product innovation, market anticipation, and, dare we say, a touch of the zeitgeist.\n", + "\n", + "Microsoft’s capacity to command such stock valitudes speaks volumes about its robust position in both the technology domain and the stock market ecosystem. Whether this fiscal feat can be sustained or surpassed remains a subject of much conjecture and anticipation.\n", + "\n", + "As we continue to navigate the ebbs and flows of an unpredictable market landscape, the days when Microsoft's stock rose gallantly above $400 will be recalled as milestones of 2024, celebrated reflections of a corporation sailing the high seas of market volatility with remarkable poise.\n", + "\n", + "The analysis of precise data points and enlightening interpretations reveal much about the past while providing distinctive glimpses of potential futures. With Microsoft standing tall amongst peers, its voyage above the $400 watermark will be chronicled as days of high tides in the annals of financial history.\n", + "The content provided serves as a market commentary, analyzing Microsoft's stock performance in the year 2024. In this review, I must ensure that the content is free from harmful elements, false claims, or regulatory violations.\n", + "\n", + "### Potential issues to consider:\n", + "\n", + "1. **Accuracy of Data**: Claims about stock prices and the number of days the stock closed above a certain threshold should be verifiable with stock market data. There must be confirmation that these numbers are accurate to present a truthful report and avoid misleading investors or stakeholders.\n", + "\n", + "2. **Forward-Looking Statements**: The article should avoid overly optimistic or pessimistic conjectures about future stock performance, which can be perceived as investment advice. Speculative statements should be clearly marked as such and provide a disclaimer that past performance does not guarantee future results.\n", + "\n", + "3. **Fair and Balanced**: While the article largely celebrates Microsoft's performance, it should also acknowledge risks and uncertainties inherent in stock investments to maintain a fair and balanced approach without unduly influencing market sentiment.\n", + "\n", + "4. **Non-Promotional Language**: Ensure that the content doesn't come off as promotional. Phrases like \"Microsoft's resilience and investor confidence\" and \"celebrated reflections of a corporation sailing the high seas of market volatility with remarkable poise\" should be reviewed to avoid appearing biased or overly promotional.\n", + "\n", + "5. **Compliance with SEC Regulations**: In the United States, Securities and Exchange Commission (SEC) regulations require careful communication about stock performance to avoid market manipulation, insider trading implications, or misstatements.\n", + "\n", + "6. **Objective Tone**: While the narrative is engaging, it's important that it remains objective and does not use language that could be considered subjective or biased. Phrases like \"Microsoft’s leviathan presence\" or \"February Flourish\" might be interpreted as adding emotional color rather than stating facts.\n", + "\n", + "7. **Clear Attribution**: If the report is based on external analyses or reported events, these should be clearly cited and attributed to maintain transparency.\n", + "\n", + "### Recommendations:\n", + "\n", + "- **Fact-Checking**: Verify all factual data through reliable stock market databases or financial reports released by Microsoft.\n", + " \n", + "- **Disclaimer**: Include a general disclaimer that the content is for informational purposes only and is not a form of financial advice or an inducement to invest.\n", + "\n", + "- **Balanced Analysis**: Emphasize the volatile nature of stock markets and integrate a risk-focused discussion to balance the positive sentiment conveyed.\n", + "\n", + "- **Neutral Language**: Adjust language to ensure neutrality and avoid any implications of advice or recommendation.\n", + "\n", + "In conclusion, while the content presents a positive overview of Microsoft's stock performance, it requires scrutiny for accuracy, neutrality, and conformance with regulatory standards, avoiding the potential of guiding market behavior or conveying investment advice. A careful revision ensuring these changes would align the material with the required guidelines and uphold the integrity of the content.\u001b[0m\n", + "\u001b[34m\n", + "********************************************************************************\u001b[0m\n", + "\u001b[33mAssistant_1\u001b[0m (to Writer):\n", + "\n", + "Polish the content to make an engaging and nicely formatted blog post. \n", + "\n", + " On which days in 2024 was Microsoft Stock higher than $400? Comment on the stock performance.\n", + "Context: \n", + "Microsoft's stock (MSFT) closed above $400 on 21 separate days in 2024, demonstrating periods of strong stock performance with values reaching as high as around $420. The stock data suggests a bullish trend, especially in February when the stock peaked, indicating positive investor sentiment and robust market valuation during those times.\n", + "# Beyond the $400 Mark: Tracing Microsoft's Pinnacle Moments in 2024\n", + "\n", + "In the ever-fluctuating world of stocks, each milestone crossed can turn into a celebration or a stern reckoning of what the future holds. For Microsoft (MSFT), the year 2024 was a testament to its resilience and investor confidence as its stock ascended beyond the coveted $400 mark on 21 remarkable occasions.\n", + "\n", + "This performance wasn't just numerically significant; it was emblematic of a potent bullish energy within the market, affirming the tech giant’s leviathan presence amidst a highly competitive industry terrain. The loftiest point, flirting with the heights of approximately $420, served not just as a numerical peak, but as a beacon of the company’s market valuation and the unwavering investor trust in Microsoft's strategies and future prospects.\n", + "\n", + "## A Snapshot of Stellar Performance\n", + "\n", + "Microsoft's stock performance throughout 2024 was far from being a serendipitous spike. Instead, it showcased a carefully constructed narrative of growth and optimism. The chronicles of MSFT's venture past the $400 threshold are marked by fleeting dips and steadfast ascensions. Remarkably, the surge wasn't some scattergun pattern scattered across the calendar year. Rather, it was most pronounced in the month of February — a period that could very well be termed as the 'February Flourish.'\n", + "\n", + "During this short yet significant timeframe, investors witnessed the creation of incremental wealth that possibly outstripped all market expectations, setting a precedent for what a legacy company like Microsoft could achieve in a climate rife with disruptors and innovators.\n", + "\n", + "## Of Peaks and Valleys\n", + "\n", + "When assessing the grand canvas of Microsoft's stock performance, it is crucial to take a step back and appreciate the layered complexity of these financial movements. Amidst economic uncertainties and the technocratic whims that habitually serve both as tailwinds and headwinds to such companies, the story of Microsoft crossing the $400 threshold imbues the narrative with contours of investor euphoria interlaced with strategic agility.\n", + "\n", + "As these 21 days get etched into the fiscal annals of Microsoft, one cannot help but ponder the fine blend of factors — ranging from market dynamics to Microsoft's organizational maneuvers — that have coalesced to make these numbers a reality.\n", + "\n", + "## A Convergence of Positive Sentiments\n", + "\n", + "What does the future hold for MSFT as it treads past this impressive benchmark? The takeaway is not a simple extrapolation of past performance. Rather, it's the realization that stock trajectories, particularly for a company like Microsoft, are a confluence of judicious corporate governance, product innovation, market anticipation, and, dare we say, a touch of the zeitgeist.\n", + "\n", + "Microsoft’s capacity to command such stock valitudes speaks volumes about its robust position in both the technology domain and the stock market ecosystem. Whether this fiscal feat can be sustained or surpassed remains a subject of much conjecture and anticipation.\n", + "\n", + "As we continue to navigate the ebbs and flows of an unpredictable market landscape, the days when Microsoft's stock rose gallantly above $400 will be recalled as milestones of 2024, celebrated reflections of a corporation sailing the high seas of market volatility with remarkable poise.\n", + "\n", + "The analysis of precise data points and enlightening interpretations reveal much about the past while providing distinctive glimpses of potential futures. With Microsoft standing tall amongst peers, its voyage above the $400 watermark will be chronicled as days of high tides in the annals of financial history.\n", + "The content provided serves as a market commentary, analyzing Microsoft's stock performance in the year 2024. In this review, I must ensure that the content is free from harmful elements, false claims, or regulatory violations.\n", + "\n", + "### Potential issues to consider:\n", + "\n", + "1. **Accuracy of Data**: Claims about stock prices and the number of days the stock closed above a certain threshold should be verifiable with stock market data. There must be confirmation that these numbers are accurate to present a truthful report and avoid misleading investors or stakeholders.\n", + "\n", + "2. **Forward-Looking Statements**: The article should avoid overly optimistic or pessimistic conjectures about future stock performance, which can be perceived as investment advice. Speculative statements should be clearly marked as such and provide a disclaimer that past performance does not guarantee future results.\n", + "\n", + "3. **Fair and Balanced**: While the article largely celebrates Microsoft's performance, it should also acknowledge risks and uncertainties inherent in stock investments to maintain a fair and balanced approach without unduly influencing market sentiment.\n", + "\n", + "4. **Non-Promotional Language**: Ensure that the content doesn't come off as promotional. Phrases like \"Microsoft's resilience and investor confidence\" and \"celebrated reflections of a corporation sailing the high seas of market volatility with remarkable poise\" should be reviewed to avoid appearing biased or overly promotional.\n", + "\n", + "5. **Compliance with SEC Regulations**: In the United States, Securities and Exchange Commission (SEC) regulations require careful communication about stock performance to avoid market manipulation, insider trading implications, or misstatements.\n", + "\n", + "6. **Objective Tone**: While the narrative is engaging, it's important that it remains objective and does not use language that could be considered subjective or biased. Phrases like \"Microsoft’s leviathan presence\" or \"February Flourish\" might be interpreted as adding emotional color rather than stating facts.\n", + "\n", + "7. **Clear Attribution**: If the report is based on external analyses or reported events, these should be clearly cited and attributed to maintain transparency.\n", + "\n", + "### Recommendations:\n", + "\n", + "- **Fact-Checking**: Verify all factual data through reliable stock market databases or financial reports released by Microsoft.\n", + " \n", + "- **Disclaimer**: Include a general disclaimer that the content is for informational purposes only and is not a form of financial advice or an inducement to invest.\n", + "\n", + "- **Balanced Analysis**: Emphasize the volatile nature of stock markets and integrate a risk-focused discussion to balance the positive sentiment conveyed.\n", + "\n", + "- **Neutral Language**: Adjust language to ensure neutrality and avoid any implications of advice or recommendation.\n", + "\n", + "In conclusion, while the content presents a positive overview of Microsoft's stock performance, it requires scrutiny for accuracy, neutrality, and conformance with regulatory standards, avoiding the potential of guiding market behavior or conveying investment advice. A careful revision ensuring these changes would align the material with the required guidelines and uphold the integrity of the content.\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33mWriter\u001b[0m (to Assistant_1):\n", + "\n", + "# Beyond the $400 Mark: Tracing Microsoft's Pinnacle Moments in 2024\n", + "\n", + "Microsoft (MSFT) surpassed a notable milestone in the stock market in 2024, a testament to its strength and the trust placed in it by investors. On a triumphant 21 days, the tech behemoth's share price closed above the $400 benchmark, with a zenith teetering near $420, demonstrating not just robust performance but also the confidence that the market has in Microsoft's future.\n", + "\n", + "## A Year of Impressive Highs\n", + "\n", + "The journey of MSFT’s stock transcending the $400 mark is a narrative of strategic growth and optimism, not merely random fluctuations. These moments are a constellation of careful planning, ambition, and market forces. A standout period in this impressive ascent was in February, aptly dubbed as the 'February Flourish', where Microsoft stock not only soared but also set the precedent for the company’s continuous evolution in a market brimming with innovation.\n", + "\n", + "## Peaks, Valleys, and What They Portend\n", + "\n", + "It's imperative to consider the intricacies behind the ascension of Microsoft's shares. In the constantly shifting sands of the global economy and tech innovation, the recurrence of MSFT above $400 illustrates more than investor euphoria; it reflects the company’s agility in a changing world.\n", + "\n", + "Given these high points, it’s natural to wonder about Microsoft's fiscal trajectory. It goes without saying that navigating stock market trends is a complex endeavor. Microsoft’s history, however, shows a confluence of strategic achievements and a pulse on market needs.\n", + "\n", + "## A Fusion of Market Dynamics\n", + "\n", + "Will MSFT maintain its stronghold in the market or even exceed these past achievements? It's not just about projecting trends, but understanding the undercurrents. The factors at play involve Microsoft's corporate governance, innovative drive, and their resonance with the zeitgeist.\n", + "\n", + "Microsoft's standing in the market is a story of overcoming volatility with grace—and these key days when it climbed past the $400 barrier will be commemorated as significant moments in 2024.\n", + "\n", + "While this analysis provides a snapshot of Microsoft’s strides in the stock market, it is important to remind readers that this content is solely for informational purposes, and should not be construed as financial advice. Data accuracy, balance in discussion, compliance with regulatory standards, and the maintaining of an objective tone are essential to provide a credible narrative that respects the complexity of market movements and investor decisions.\n", + "\n", + "*As always, please remember that past performance is not indicative of future results, and this article should not be taken as an invitation to invest. Stocks can fluctuate, and investments carry risks that should be carefully evaluated.*\n", + "\n", + "In sum, while the content offers an optimistic perspective of Microsoft's stock performance, it requires close consideration for authenticity, regulatory compliance, and to ensure it serves as an informative piece rather than guiding market behavior or offering investment counsel. A meticulous revision, embodying these principles, would elevate the piece to meet professional and ethical standards, ensuring the integrity of the content remains intact.\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33mAssistant_1\u001b[0m (to User):\n", + "\n", + "# Beyond the $400 Mark: Tracing Microsoft's Pinnacle Moments in 2024\n", + "\n", + "Microsoft (MSFT) surpassed a notable milestone in the stock market in 2024, a testament to its strength and the trust placed in it by investors. On a triumphant 21 days, the tech behemoth's share price closed above the $400 benchmark, with a zenith teetering near $420, demonstrating not just robust performance but also the confidence that the market has in Microsoft's future.\n", + "\n", + "## A Year of Impressive Highs\n", + "\n", + "The journey of MSFT’s stock transcending the $400 mark is a narrative of strategic growth and optimism, not merely random fluctuations. These moments are a constellation of careful planning, ambition, and market forces. A standout period in this impressive ascent was in February, aptly dubbed as the 'February Flourish', where Microsoft stock not only soared but also set the precedent for the company’s continuous evolution in a market brimming with innovation.\n", + "\n", + "## Peaks, Valleys, and What They Portend\n", + "\n", + "It's imperative to consider the intricacies behind the ascension of Microsoft's shares. In the constantly shifting sands of the global economy and tech innovation, the recurrence of MSFT above $400 illustrates more than investor euphoria; it reflects the company’s agility in a changing world.\n", + "\n", + "Given these high points, it’s natural to wonder about Microsoft's fiscal trajectory. It goes without saying that navigating stock market trends is a complex endeavor. Microsoft’s history, however, shows a confluence of strategic achievements and a pulse on market needs.\n", + "\n", + "## A Fusion of Market Dynamics\n", + "\n", + "Will MSFT maintain its stronghold in the market or even exceed these past achievements? It's not just about projecting trends, but understanding the undercurrents. The factors at play involve Microsoft's corporate governance, innovative drive, and their resonance with the zeitgeist.\n", + "\n", + "Microsoft's standing in the market is a story of overcoming volatility with grace—and these key days when it climbed past the $400 barrier will be commemorated as significant moments in 2024.\n", + "\n", + "While this analysis provides a snapshot of Microsoft’s strides in the stock market, it is important to remind readers that this content is solely for informational purposes, and should not be construed as financial advice. Data accuracy, balance in discussion, compliance with regulatory standards, and the maintaining of an objective tone are essential to provide a credible narrative that respects the complexity of market movements and investor decisions.\n", + "\n", + "*As always, please remember that past performance is not indicative of future results, and this article should not be taken as an invitation to invest. Stocks can fluctuate, and investments carry risks that should be carefully evaluated.*\n", + "\n", + "In sum, while the content offers an optimistic perspective of Microsoft's stock performance, it requires close consideration for authenticity, regulatory compliance, and to ensure it serves as an informative piece rather than guiding market behavior or offering investment counsel. A meticulous revision, embodying these principles, would elevate the piece to meet professional and ethical standards, ensuring the integrity of the content remains intact.\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[34m\n", + "********************************************************************************\u001b[0m\n", + "\u001b[34mStart a new chat with the following message: \n", + "Make a pleasant joke about it.\n", + "\n", + "With the following carryover: \n", + "# Beyond the $400 Mark: Tracing Microsoft's Pinnacle Moments in 2024\n", + "\n", + "Microsoft (MSFT) surpassed a notable milestone in the stock market in 2024, a testament to its strength and the trust placed in it by investors. On a triumphant 21 days, the tech behemoth's share price closed above the $400 benchmark, with a zenith teetering near $420, demonstrating not just robust performance but also the confidence that the market has in Microsoft's future.\n", + "\n", + "## A Year of Impressive Highs\n", + "\n", + "The journey of MSFT’s stock transcending the $400 mark is a narrative of strategic growth and optimism, not merely random fluctuations. These moments are a constellation of careful planning, ambition, and market forces. A standout period in this impressive ascent was in February, aptly dubbed as the 'February Flourish', where Microsoft stock not only soared but also set the precedent for the company’s continuous evolution in a market brimming with innovation.\n", + "\n", + "## Peaks, Valleys, and What They Portend\n", + "\n", + "It's imperative to consider the intricacies behind the ascension of Microsoft's shares. In the constantly shifting sands of the global economy and tech innovation, the recurrence of MSFT above $400 illustrates more than investor euphoria; it reflects the company’s agility in a changing world.\n", + "\n", + "Given these high points, it’s natural to wonder about Microsoft's fiscal trajectory. It goes without saying that navigating stock market trends is a complex endeavor. Microsoft’s history, however, shows a confluence of strategic achievements and a pulse on market needs.\n", + "\n", + "## A Fusion of Market Dynamics\n", + "\n", + "Will MSFT maintain its stronghold in the market or even exceed these past achievements? It's not just about projecting trends, but understanding the undercurrents. The factors at play involve Microsoft's corporate governance, innovative drive, and their resonance with the zeitgeist.\n", + "\n", + "Microsoft's standing in the market is a story of overcoming volatility with grace—and these key days when it climbed past the $400 barrier will be commemorated as significant moments in 2024.\n", + "\n", + "While this analysis provides a snapshot of Microsoft’s strides in the stock market, it is important to remind readers that this content is solely for informational purposes, and should not be construed as financial advice. Data accuracy, balance in discussion, compliance with regulatory standards, and the maintaining of an objective tone are essential to provide a credible narrative that respects the complexity of market movements and investor decisions.\n", + "\n", + "*As always, please remember that past performance is not indicative of future results, and this article should not be taken as an invitation to invest. Stocks can fluctuate, and investments carry risks that should be carefully evaluated.*\n", + "\n", + "In sum, while the content offers an optimistic perspective of Microsoft's stock performance, it requires close consideration for authenticity, regulatory compliance, and to ensure it serves as an informative piece rather than guiding market behavior or offering investment counsel. A meticulous revision, embodying these principles, would elevate the piece to meet professional and ethical standards, ensuring the integrity of the content remains intact.\u001b[0m\n", + "\u001b[34m\n", + "********************************************************************************\u001b[0m\n", + "\u001b[33mUser\u001b[0m (to Assistant_2):\n", + "\n", + "Make a pleasant joke about it.\n", + "Context: \n", + "# Beyond the $400 Mark: Tracing Microsoft's Pinnacle Moments in 2024\n", + "\n", + "Microsoft (MSFT) surpassed a notable milestone in the stock market in 2024, a testament to its strength and the trust placed in it by investors. On a triumphant 21 days, the tech behemoth's share price closed above the $400 benchmark, with a zenith teetering near $420, demonstrating not just robust performance but also the confidence that the market has in Microsoft's future.\n", + "\n", + "## A Year of Impressive Highs\n", + "\n", + "The journey of MSFT’s stock transcending the $400 mark is a narrative of strategic growth and optimism, not merely random fluctuations. These moments are a constellation of careful planning, ambition, and market forces. A standout period in this impressive ascent was in February, aptly dubbed as the 'February Flourish', where Microsoft stock not only soared but also set the precedent for the company’s continuous evolution in a market brimming with innovation.\n", + "\n", + "## Peaks, Valleys, and What They Portend\n", + "\n", + "It's imperative to consider the intricacies behind the ascension of Microsoft's shares. In the constantly shifting sands of the global economy and tech innovation, the recurrence of MSFT above $400 illustrates more than investor euphoria; it reflects the company’s agility in a changing world.\n", + "\n", + "Given these high points, it’s natural to wonder about Microsoft's fiscal trajectory. It goes without saying that navigating stock market trends is a complex endeavor. Microsoft’s history, however, shows a confluence of strategic achievements and a pulse on market needs.\n", + "\n", + "## A Fusion of Market Dynamics\n", + "\n", + "Will MSFT maintain its stronghold in the market or even exceed these past achievements? It's not just about projecting trends, but understanding the undercurrents. The factors at play involve Microsoft's corporate governance, innovative drive, and their resonance with the zeitgeist.\n", + "\n", + "Microsoft's standing in the market is a story of overcoming volatility with grace—and these key days when it climbed past the $400 barrier will be commemorated as significant moments in 2024.\n", + "\n", + "While this analysis provides a snapshot of Microsoft’s strides in the stock market, it is important to remind readers that this content is solely for informational purposes, and should not be construed as financial advice. Data accuracy, balance in discussion, compliance with regulatory standards, and the maintaining of an objective tone are essential to provide a credible narrative that respects the complexity of market movements and investor decisions.\n", + "\n", + "*As always, please remember that past performance is not indicative of future results, and this article should not be taken as an invitation to invest. Stocks can fluctuate, and investments carry risks that should be carefully evaluated.*\n", + "\n", + "In sum, while the content offers an optimistic perspective of Microsoft's stock performance, it requires close consideration for authenticity, regulatory compliance, and to ensure it serves as an informative piece rather than guiding market behavior or offering investment counsel. A meticulous revision, embodying these principles, would elevate the piece to meet professional and ethical standards, ensuring the integrity of the content remains intact.\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33mAssistant_2\u001b[0m (to User):\n", + "\n", + "Well, it seems Microsoft's stock price isn't the only thing on a high - it must have taken a leaf out of Elon Musk's book, aiming for that 420 mark! Just remember, unlike Microsoft's shares, not all jokes appreciate over time – especially the ones about the stock market! \n", + "\n", + "On a serious note, jokes about financial achievements should be handled with care, as the subject of investments can significantly impact individuals' lives. However, lighthearted humor, when appropriate, can make an informative piece more engaging! \n", + "\n", + "TERMINATE\n", + "\n", + "--------------------------------------------------------------------------------\n" + ] + } + ], + "source": [ + "def writing_message(recipient, messages, sender, config):\n", + " return f\"Polish the content to make an engaging and nicely formatted blog post. \\n\\n {recipient.chat_messages_for_summary(sender)[-1]['content']}\"\n", + "\n", + "\n", + "nested_chat_queue = [\n", + " {\"recipient\": manager, \"summary_method\": \"reflection_with_llm\"},\n", + " {\"recipient\": writer, \"message\": writing_message, \"summary_method\": \"last_msg\", \"max_turns\": 1},\n", + " {\"recipient\": reviewer, \"message\": \"Review the content provided.\", \"summary_method\": \"last_msg\", \"max_turns\": 1},\n", + " {\"recipient\": writer, \"message\": writing_message, \"summary_method\": \"last_msg\", \"max_turns\": 1},\n", + "]\n", + "assistant_1.register_nested_chats(\n", + " nested_chat_queue,\n", + " trigger=user,\n", + ")\n", + "# user.initiate_chat(assistant, message=tasks[0], max_turns=1)\n", + "\n", + "res = user.initiate_chats(\n", + " [\n", + " {\"recipient\": assistant_1, \"message\": tasks[0], \"max_turns\": 1, \"summary_method\": \"last_msg\"},\n", + " {\"recipient\": assistant_2, \"message\": tasks[1]},\n", + " ]\n", + ")" + ] + } + ], + "metadata": { + "front_matter": { + "description": "Solve complex tasks with one or more sequence chats nested as inner monologue.", + "tags": [ + "nested chat" + ] + }, + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.13" + }, + "vscode": { + "interpreter": { + "hash": "949777d72b0d2535278d3dc13498b2535136f6dfe0678499012e853ee9abcab1" + } + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": { + "2d910cfd2d2a4fc49fc30fbbdc5576a7": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "2.0.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border_bottom": null, + "border_left": null, + "border_right": null, + "border_top": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "454146d0f7224f038689031002906e6f": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "HBoxModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "2.0.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_e4ae2b6f5a974fd4bafb6abb9d12ff26", + "IPY_MODEL_577e1e3cc4db4942b0883577b3b52755", + "IPY_MODEL_b40bdfb1ac1d4cffb7cefcb870c64d45" + ], + "layout": "IPY_MODEL_dc83c7bff2f241309537a8119dfc7555", + "tabbable": null, + "tooltip": null + } + }, + "577e1e3cc4db4942b0883577b3b52755": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "FloatProgressModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "2.0.0", + "_view_name": "ProgressView", + "bar_style": "success", + "description": "", + "description_allow_html": false, + "layout": "IPY_MODEL_2d910cfd2d2a4fc49fc30fbbdc5576a7", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_74a6ba0c3cbc4051be0a83e152fe1e62", + "tabbable": null, + "tooltip": null, + "value": 1 + } + }, + "6086462a12d54bafa59d3c4566f06cb2": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "2.0.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border_bottom": null, + "border_left": null, + "border_right": null, + "border_top": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "74a6ba0c3cbc4051be0a83e152fe1e62": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "ProgressStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "7d3f3d9e15894d05a4d188ff4f466554": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "HTMLStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "HTMLStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "StyleView", + "background": null, + "description_width": "", + "font_size": null, + "text_color": null + } + }, + "b40bdfb1ac1d4cffb7cefcb870c64d45": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "2.0.0", + "_view_name": "HTMLView", + "description": "", + "description_allow_html": false, + "layout": "IPY_MODEL_f1355871cc6f4dd4b50d9df5af20e5c8", + "placeholder": "​", + "style": "IPY_MODEL_ca245376fd9f4354af6b2befe4af4466", + "tabbable": null, + "tooltip": null, + "value": " 1/1 [00:00<00:00, 44.69it/s]" + } + }, + "ca245376fd9f4354af6b2befe4af4466": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "HTMLStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "HTMLStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "StyleView", + "background": null, + "description_width": "", + "font_size": null, + "text_color": null + } + }, + "dc83c7bff2f241309537a8119dfc7555": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "2.0.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border_bottom": null, + "border_left": null, + "border_right": null, + "border_top": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "e4ae2b6f5a974fd4bafb6abb9d12ff26": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "2.0.0", + "_view_name": "HTMLView", + "description": "", + "description_allow_html": false, + "layout": "IPY_MODEL_6086462a12d54bafa59d3c4566f06cb2", + "placeholder": "​", + "style": "IPY_MODEL_7d3f3d9e15894d05a4d188ff4f466554", + "tabbable": null, + "tooltip": null, + "value": "100%" + } + }, + "f1355871cc6f4dd4b50d9df5af20e5c8": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "2.0.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border_bottom": null, + "border_left": null, + "border_right": null, + "border_top": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + } + }, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/notebook/agentchat_nestedchat.ipynb b/notebook/agentchat_nestedchat.ipynb new file mode 100644 index 000000000000..7c48813aa599 --- /dev/null +++ b/notebook/agentchat_nestedchat.ipynb @@ -0,0 +1,1061 @@ +{ + "cells": [ + { + "attachments": {}, + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "# Solving Complex Tasks with Nested Chats\n", + "\n", + "This notebook shows how you can leverage **nested chats** to solve complex task with AutoGen. Nested chats is a sequence of chats created by a receiver agent after receiving a message from a sender agent and finished before the receiver agent replies to this message. Nested chats allow AutoGen agents to use other agents as their inner monologue to accomplish tasks. This abstraction is powerful as it allows you to compose agents in rich ways. This notebook shows two basic examples of nested chat.\n", + "\n", + "\\:\\:\\:info Requirements\n", + "\n", + "Install `pyautogen`:\n", + "```bash\n", + "pip install pyautogen\n", + "```\n", + "\n", + "For more information, please refer to the [installation guide](/docs/installation/).\n", + "\n", + "\\:\\:\\:" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "import autogen\n", + "from typing_extensions import Annotated\n", + "\n", + "config_list = autogen.config_list_from_json(env_or_file=\"OAI_CONFIG_LIST\")\n", + "llm_config = {\"config_list\": config_list}" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\\:\\:\\:tip\n", + "\n", + "Learn more about the various ways to configure LLM endpoints [here](/docs/topics/llm_configuration).\n", + "\n", + "\\:\\:\\:" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Example Task\n", + "\n", + "Suppose we want the agents to complete the following sequence of tasks:" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "task = \"\"\"Write a concise but engaging blogpost about Navida.\"\"\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Scenario 1\n", + "\n", + "Let's say we desire the following workflow to solve the task: a user_proxy agent issues the initial query to a writer and acts as a proxy for the user. Whenever an initial writing is provided, a critic should be invoked to offer critique as feedback. This workflow can be realized by a three-agent system shown below. The system includes a user_proxy agent and a writer agent communicating with each other, with a critic agent nested within the user_proxy agent to provide critique. Whenever the user_proxy receives a message from the writer, it engages in a conversation with the critic agent to work out feedback on the writer's message.\n", + "\n", + "![](nested_chat_1.png)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Step 1. Define Agents\n", + "Define the agents, including the outer agents writer and user_proxy, and the inner agent critic." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "writer = autogen.AssistantAgent(\n", + " name=\"Writer\",\n", + " llm_config={\"config_list\": config_list},\n", + " system_message=\"\"\"\n", + " You are a professional writer, known for your insightful and engaging articles.\n", + " You transform complex concepts into compelling narratives.\n", + " You should imporve the quality of the content based on the feedback from the user.\n", + " \"\"\",\n", + ")\n", + "\n", + "user_proxy = autogen.UserProxyAgent(\n", + " name=\"User\",\n", + " human_input_mode=\"NEVER\",\n", + " is_termination_msg=lambda x: x.get(\"content\", \"\").find(\"TERMINATE\") >= 0,\n", + " code_execution_config={\n", + " \"last_n_messages\": 1,\n", + " \"work_dir\": \"tasks\",\n", + " \"use_docker\": False,\n", + " }, # Please set use_docker=True if docker is available to run the generated code. Using docker is safer than running the generated code directly.\n", + ")\n", + "\n", + "critic = autogen.AssistantAgent(\n", + " name=\"Critic\",\n", + " llm_config={\"config_list\": config_list},\n", + " system_message=\"\"\"\n", + " You are a critic, known for your thoroughness and commitment to standards.\n", + " Your task is to scrutinize content for any harmful elements or regulatory violations, ensuring\n", + " all materials align with required guidelines.\n", + " For code\n", + " \"\"\",\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Step 2: Orchestrate Nested Chats to Solve Tasks\n" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[33mUser\u001b[0m (to Writer):\n", + "\n", + "Write a concise but engaging blogpost about Navida.\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33mWriter\u001b[0m (to User):\n", + "\n", + "Navida: Navigating the Digital Seas of Innovation\n", + "\n", + "In an era where the digital climate is as fickle and formidable as the ocean's tides, a new visionary emerges on the horizon: Navida. This modern-day titan of technology harnesses the power of innovation to guide businesses and individuals through the ever-changing digital waters.\n", + "\n", + "**The Beacon of Technological Advancement**\n", + "\n", + "Much like a lighthouse guiding ships to safe harbor, Navida stands tall as a beacon of advancement, illuminating the path forward. Its offerings are diverse, ranging from groundbreaking artificial intelligence platforms to robust cybersecurity solutions that shield against the pirates of the digital age. The commitment to seamless user experiences ensures that with Navida, you're not just keeping up, but sailing ahead of the tech curve.\n", + "\n", + "**Charting a Course for Success**\n", + "\n", + "Navida's prowess lies in its GPS-like precision in navigating market trends and consumer needs. By fastidiously mapping out the digital landscape, the company empowers its clientele with tools not just to survive, but to thrive. Imagine the sophistication of a state-of-the-art navigation system, fused with the foresight of an experienced captain—that's Navida in the tech realm.\n", + "\n", + "**Empowering the Crew**\n", + "\n", + "No ship can sail without a skilled crew, and Navida's robust education and training platforms are the digital equivalent of a maritime academy. By upskilling and reskilling the workforce, Navida ensures that everyone on deck is prepared to face the headwinds of technological change, turning apprehension into adeptness.\n", + "\n", + "**Sustainability in Uncharted Waters**\n", + "\n", + "In line with the global push for sustainability, Navida commits to eco-friendly practices in its digital services. Much like ocean conservation efforts preserve marine life, Navida's sustainable tech solutions aim to minimize carbon footprints and promote a greener future. This mindful approach to innovation is not just commendable but crucial in steering us towards a sustainable digital ecosystem.\n", + "\n", + "**Conclusion: Anchoring in the Future**\n", + "\n", + "As we set sail into the unfathomable depths of tomorrow, Navida is the compass by which we can orient ourselves towards a horizon sparkling with potential. Rather than bracing for the next wave, let us ride it with the guidance of Navida and dive deep into the bounty of opportunities that lie in the future of digital innovation.\n", + "\n", + "Keep an eye on the horizon—Navida is not just a company; it's a movement, an odyssey into the future of technology that we're all a part of. Bon voyage, and may the digital winds be in your sails.\n", + "\n", + "--------------------------------------------------------------------------------\n", + "Reflecting... yellow\n", + "\u001b[34m\n", + "********************************************************************************\u001b[0m\n", + "\u001b[34mStarting a new chat....\n", + "\n", + "Message:\n", + "Reflect and provide critique on the following writing. \n", + "\n", + " Navida: Navigating the Digital Seas of Innovation\n", + "\n", + "In an era where the digital climate is as fickle and formidable as the ocean's tides, a new visionary emerges on the horizon: Navida. This modern-day titan of technology harnesses the power of innovation to guide businesses and individuals through the ever-changing digital waters.\n", + "\n", + "**The Beacon of Technological Advancement**\n", + "\n", + "Much like a lighthouse guiding ships to safe harbor, Navida stands tall as a beacon of advancement, illuminating the path forward. Its offerings are diverse, ranging from groundbreaking artificial intelligence platforms to robust cybersecurity solutions that shield against the pirates of the digital age. The commitment to seamless user experiences ensures that with Navida, you're not just keeping up, but sailing ahead of the tech curve.\n", + "\n", + "**Charting a Course for Success**\n", + "\n", + "Navida's prowess lies in its GPS-like precision in navigating market trends and consumer needs. By fastidiously mapping out the digital landscape, the company empowers its clientele with tools not just to survive, but to thrive. Imagine the sophistication of a state-of-the-art navigation system, fused with the foresight of an experienced captain—that's Navida in the tech realm.\n", + "\n", + "**Empowering the Crew**\n", + "\n", + "No ship can sail without a skilled crew, and Navida's robust education and training platforms are the digital equivalent of a maritime academy. By upskilling and reskilling the workforce, Navida ensures that everyone on deck is prepared to face the headwinds of technological change, turning apprehension into adeptness.\n", + "\n", + "**Sustainability in Uncharted Waters**\n", + "\n", + "In line with the global push for sustainability, Navida commits to eco-friendly practices in its digital services. Much like ocean conservation efforts preserve marine life, Navida's sustainable tech solutions aim to minimize carbon footprints and promote a greener future. This mindful approach to innovation is not just commendable but crucial in steering us towards a sustainable digital ecosystem.\n", + "\n", + "**Conclusion: Anchoring in the Future**\n", + "\n", + "As we set sail into the unfathomable depths of tomorrow, Navida is the compass by which we can orient ourselves towards a horizon sparkling with potential. Rather than bracing for the next wave, let us ride it with the guidance of Navida and dive deep into the bounty of opportunities that lie in the future of digital innovation.\n", + "\n", + "Keep an eye on the horizon—Navida is not just a company; it's a movement, an odyssey into the future of technology that we're all a part of. Bon voyage, and may the digital winds be in your sails.\n", + "\n", + "Carryover: \n", + "\u001b[0m\n", + "\u001b[34m\n", + "********************************************************************************\u001b[0m\n", + "\u001b[33mUser\u001b[0m (to Reviewer):\n", + "\n", + "Reflect and provide critique on the following writing. \n", + "\n", + " Navida: Navigating the Digital Seas of Innovation\n", + "\n", + "In an era where the digital climate is as fickle and formidable as the ocean's tides, a new visionary emerges on the horizon: Navida. This modern-day titan of technology harnesses the power of innovation to guide businesses and individuals through the ever-changing digital waters.\n", + "\n", + "**The Beacon of Technological Advancement**\n", + "\n", + "Much like a lighthouse guiding ships to safe harbor, Navida stands tall as a beacon of advancement, illuminating the path forward. Its offerings are diverse, ranging from groundbreaking artificial intelligence platforms to robust cybersecurity solutions that shield against the pirates of the digital age. The commitment to seamless user experiences ensures that with Navida, you're not just keeping up, but sailing ahead of the tech curve.\n", + "\n", + "**Charting a Course for Success**\n", + "\n", + "Navida's prowess lies in its GPS-like precision in navigating market trends and consumer needs. By fastidiously mapping out the digital landscape, the company empowers its clientele with tools not just to survive, but to thrive. Imagine the sophistication of a state-of-the-art navigation system, fused with the foresight of an experienced captain—that's Navida in the tech realm.\n", + "\n", + "**Empowering the Crew**\n", + "\n", + "No ship can sail without a skilled crew, and Navida's robust education and training platforms are the digital equivalent of a maritime academy. By upskilling and reskilling the workforce, Navida ensures that everyone on deck is prepared to face the headwinds of technological change, turning apprehension into adeptness.\n", + "\n", + "**Sustainability in Uncharted Waters**\n", + "\n", + "In line with the global push for sustainability, Navida commits to eco-friendly practices in its digital services. Much like ocean conservation efforts preserve marine life, Navida's sustainable tech solutions aim to minimize carbon footprints and promote a greener future. This mindful approach to innovation is not just commendable but crucial in steering us towards a sustainable digital ecosystem.\n", + "\n", + "**Conclusion: Anchoring in the Future**\n", + "\n", + "As we set sail into the unfathomable depths of tomorrow, Navida is the compass by which we can orient ourselves towards a horizon sparkling with potential. Rather than bracing for the next wave, let us ride it with the guidance of Navida and dive deep into the bounty of opportunities that lie in the future of digital innovation.\n", + "\n", + "Keep an eye on the horizon—Navida is not just a company; it's a movement, an odyssey into the future of technology that we're all a part of. Bon voyage, and may the digital winds be in your sails.\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33mReviewer\u001b[0m (to User):\n", + "\n", + "The piece titled \"Navida: Navigating the Digital Seas of Innovation\" artfully weaves together a maritime metaphor with the concept of technological advancement and innovation. The writing is cogent, imaginative, and explicit in its intentions of likening Navida to a guiding force in the unpredictable and rapidly evolving digital world. However, a critical analysis should also consider the potential pitfalls of such a stylistic approach, audience perception, and the substance of the content.\n", + "\n", + "**Use of Metaphor and Language**\n", + "\n", + "The sustained metaphor relating the digital industry to the seas is compelling and creates a vivid picture of Navida as a trailblazing entity. Nevertheless, the metaphor is stretched to cover every aspect of the company's offerings. While creative, the risk here is that the metaphor may overshadow the concrete services and achievements of Navida. The language could be perceived as grandiloquent, possibly alienating readers who prefer straightforward facts over artistic expression.\n", + "\n", + "**Clarity and Substance**\n", + "\n", + "Despite the picturesque language, the actual substance of Navida's offerings is somewhat obscured. There's talk of \"groundbreaking artificial intelligence platforms\" and \"robust cybersecurity solutions,\" but no indication of how these solutions are superior or unique compared to what competitors might offer. Specific examples or case studies could serve to ground the lofty descriptions and provide more tangible evidence of the company's successes.\n", + "\n", + "**Audience Appeal and Engagement**\n", + "\n", + "While some audiences might enjoy and be inspired by the adventurous tone, it could deter potential clients or investors who are more interested in detailed analytics and empirical data. Knowing the intended audience is crucial; the narrative style should balance imaginative engagement with professionalism and trustworthiness. \n", + "\n", + "**Attention to Technological Trends**\n", + "\n", + "The piece does well to highlight Navida's commitment to staying ahead of the curve and its dedication to sustainability, touching upon important contemporary concerns. However, it could benefit from articulating how Navida specifically addresses these issues with its products and policies.\n", + "\n", + "**Conclusion Evaluation**\n", + "\n", + "The conclusion does an admirable job of rallying excitement and optimism for the future, positioning Navida not only as a leader but as a visionary entity leading a movement. Nonetheless, the writing could fall flat if the reader feels that they haven't been given a clear understanding of how Navida will materially affect or be a part of this projected future. Concrete milestones or strategic goals could enhance credibility.\n", + "\n", + "In summary, this piece is imaginative and thematically consistent, with an inspiring message that aligns well with the spirit of innovation. However, it could be improved by including specific examples and data to support the lofty claims, toning down the metaphorical language where it obscures the actual message, and focusing on the reader's need for clear, substantive information.\n", + "\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33mUser\u001b[0m (to Writer):\n", + "\n", + "The piece titled \"Navida: Navigating the Digital Seas of Innovation\" artfully weaves together a maritime metaphor with the concept of technological advancement and innovation. The writing is cogent, imaginative, and explicit in its intentions of likening Navida to a guiding force in the unpredictable and rapidly evolving digital world. However, a critical analysis should also consider the potential pitfalls of such a stylistic approach, audience perception, and the substance of the content.\n", + "\n", + "**Use of Metaphor and Language**\n", + "\n", + "The sustained metaphor relating the digital industry to the seas is compelling and creates a vivid picture of Navida as a trailblazing entity. Nevertheless, the metaphor is stretched to cover every aspect of the company's offerings. While creative, the risk here is that the metaphor may overshadow the concrete services and achievements of Navida. The language could be perceived as grandiloquent, possibly alienating readers who prefer straightforward facts over artistic expression.\n", + "\n", + "**Clarity and Substance**\n", + "\n", + "Despite the picturesque language, the actual substance of Navida's offerings is somewhat obscured. There's talk of \"groundbreaking artificial intelligence platforms\" and \"robust cybersecurity solutions,\" but no indication of how these solutions are superior or unique compared to what competitors might offer. Specific examples or case studies could serve to ground the lofty descriptions and provide more tangible evidence of the company's successes.\n", + "\n", + "**Audience Appeal and Engagement**\n", + "\n", + "While some audiences might enjoy and be inspired by the adventurous tone, it could deter potential clients or investors who are more interested in detailed analytics and empirical data. Knowing the intended audience is crucial; the narrative style should balance imaginative engagement with professionalism and trustworthiness. \n", + "\n", + "**Attention to Technological Trends**\n", + "\n", + "The piece does well to highlight Navida's commitment to staying ahead of the curve and its dedication to sustainability, touching upon important contemporary concerns. However, it could benefit from articulating how Navida specifically addresses these issues with its products and policies.\n", + "\n", + "**Conclusion Evaluation**\n", + "\n", + "The conclusion does an admirable job of rallying excitement and optimism for the future, positioning Navida not only as a leader but as a visionary entity leading a movement. Nonetheless, the writing could fall flat if the reader feels that they haven't been given a clear understanding of how Navida will materially affect or be a part of this projected future. Concrete milestones or strategic goals could enhance credibility.\n", + "\n", + "In summary, this piece is imaginative and thematically consistent, with an inspiring message that aligns well with the spirit of innovation. However, it could be improved by including specific examples and data to support the lofty claims, toning down the metaphorical language where it obscures the actual message, and focusing on the reader's need for clear, substantive information.\n", + "\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33mWriter\u001b[0m (to User):\n", + "\n", + "Navida: A Voyage Through Tech Innovation With a Clearer Lens\n", + "\n", + "The digital age, ever tumultuous and enthralling, presents a sea of opportunities navigated by pioneers like Navida. This vanguard of the virtual realms is your stalwart captain, guiding through the waves of progress with a steady hand and an eye for the horizon.\n", + "\n", + "**Charting Uncharted Digital Territories**\n", + "\n", + "Navida's mission is a blend of exploration and execution; it's where novel AI solutions and cybersecurity become your compass and sextant, crafted not just for today’s climate but for the unforeseen squalls of tomorrow. However, while analogies can paint an evocative landscape, our focus here sharpens on the essence of these tools, how they carve distinct paths in a saturated market, and why they matter to you.\n", + "\n", + "**Delineating The Digital Offerings**\n", + "\n", + "Peering beyond the poetic seascape, Navida's breakthroughs in artificial intelligence are not just impressive; they're practical. Consider, for instance, their leading-edge algorithm that's helped retailers forecast inventory demands with uncanny precision, reducing waste and maximizing profit. Their cybersecurity isn't just robust; it's a sentinel standing guard, proven by an impressive record of deflected threats that have kept enterprises secure in high-risk environments.\n", + "\n", + "**Training for Tomorrow's Tech**\n", + "\n", + "Navida understands that a savvy crew is crucial. They don't just preach adaptability; they instill it through comprehensive learning modules designed to hone the skills that real-world digital navigation demands. Whether it's coding academies or cybersecurity workshops, participants emerge not just educated, but transformed into digital artisans in their own right.\n", + "\n", + "**Eco-Conscious in the Digital Deep**\n", + "\n", + "Sailing forward means leaving no toxic trail in our wake. Navida's commitment to sustainability transcends the symbolic; it is embedded in their product lifecycle. By adopting energy-efficient data centers and championing green coding practices, they're not just advocating for a sustainable future—they're actively constructing it.\n", + "\n", + "**Anchoring Visions of the Future**\n", + "\n", + "As we glimpse past the romantically-charged imagery, it's crucial to root our expectations in tangible outputs. Navida envisions a tech landscape where they're not just participants but sculptors, carving out a legacy that is both impactful and enduring. This is not a distant dream but a trackable trajectory evidenced by milestones—like their latest initiative to integrate AI in reducing urban traffic congestion, demonstrating a palpable imprint on tomorrow's smart cities.\n", + "\n", + "**Navigating the Balance**\n", + "\n", + "Ultimately, while a narrative woven with maritime motifs can inspire and captivate, the true beacon that guides us is a clear understanding of Navida's practical impact on the constantly evolving digital realm. This balance between creativity and clarity is not just necessary but essential to truly appreciate the artistry and precision with which Navida charts the future.\n", + "\n", + "Let's hold fast to our excitement for what's next with Navida but remain anchored in the realities of their concrete innovations and contributions to our digital odyssey. Therein lies the true genius of harnessing the currents of change.\n", + "\n", + "--------------------------------------------------------------------------------\n" + ] + } + ], + "source": [ + "def reflection_message(recipient, messages, sender, config):\n", + " print(\"Reflecting...\", \"yellow\")\n", + " return f\"Reflect and provide critique on the following writing. \\n\\n {recipient.chat_messages_for_summary(sender)[-1]['content']}\"\n", + "\n", + "\n", + "user_proxy.register_nested_chats(\n", + " [{\"recipient\": critic, \"message\": reflection_message, \"summary_method\": \"last_msg\", \"max_turns\": 1}],\n", + " trigger=writer, # condition=my_condition,\n", + ")\n", + "\n", + "res = user_proxy.initiate_chat(recipient=writer, message=task, max_turns=2, summary_method=\"last_msg\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Scenarios 2\n", + "Let's say we desire the following workflow to solve the task. Compared to scenario 1, we want to include an additional `critic_executor` agent to chat with the `critic` and execute some tool calls involved in the chat. For example, a tool for detecting harmful content in the output of the writer.\n", + "\n", + "This workflow can be realized by a four-agent system shown below. The system includes a user_proxy agent and a writer agent communicating with each other, with a chat between the `critic` and `critic_executor` agent nested within the `user_proxy` agent to provide critique. Whenever the user_proxy receives a message from the writer, it engages in a conversation between `critic` and `critic_executor` to work out feedback on the writer's message. A summary of the nested conversation will be passed to the user_proxy, which will then be passed to the writer as feedback.\n", + "\n", + "![](nested_chat_2.png)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "The return type of the function 'check_harmful_content' is not annotated. Although annotating it is optional, the function should return either a string, a subclass of 'pydantic.BaseModel'.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[33mUser\u001b[0m (to Writer):\n", + "\n", + "Write a concise but engaging blogpost about Navida.\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33mWriter\u001b[0m (to User):\n", + "\n", + "Navida: Navigating the Digital Seas of Innovation\n", + "\n", + "In an era where the digital climate is as fickle and formidable as the ocean's tides, a new visionary emerges on the horizon: Navida. This modern-day titan of technology harnesses the power of innovation to guide businesses and individuals through the ever-changing digital waters.\n", + "\n", + "**The Beacon of Technological Advancement**\n", + "\n", + "Much like a lighthouse guiding ships to safe harbor, Navida stands tall as a beacon of advancement, illuminating the path forward. Its offerings are diverse, ranging from groundbreaking artificial intelligence platforms to robust cybersecurity solutions that shield against the pirates of the digital age. The commitment to seamless user experiences ensures that with Navida, you're not just keeping up, but sailing ahead of the tech curve.\n", + "\n", + "**Charting a Course for Success**\n", + "\n", + "Navida's prowess lies in its GPS-like precision in navigating market trends and consumer needs. By fastidiously mapping out the digital landscape, the company empowers its clientele with tools not just to survive, but to thrive. Imagine the sophistication of a state-of-the-art navigation system, fused with the foresight of an experienced captain—that's Navida in the tech realm.\n", + "\n", + "**Empowering the Crew**\n", + "\n", + "No ship can sail without a skilled crew, and Navida's robust education and training platforms are the digital equivalent of a maritime academy. By upskilling and reskilling the workforce, Navida ensures that everyone on deck is prepared to face the headwinds of technological change, turning apprehension into adeptness.\n", + "\n", + "**Sustainability in Uncharted Waters**\n", + "\n", + "In line with the global push for sustainability, Navida commits to eco-friendly practices in its digital services. Much like ocean conservation efforts preserve marine life, Navida's sustainable tech solutions aim to minimize carbon footprints and promote a greener future. This mindful approach to innovation is not just commendable but crucial in steering us towards a sustainable digital ecosystem.\n", + "\n", + "**Conclusion: Anchoring in the Future**\n", + "\n", + "As we set sail into the unfathomable depths of tomorrow, Navida is the compass by which we can orient ourselves towards a horizon sparkling with potential. Rather than bracing for the next wave, let us ride it with the guidance of Navida and dive deep into the bounty of opportunities that lie in the future of digital innovation.\n", + "\n", + "Keep an eye on the horizon—Navida is not just a company; it's a movement, an odyssey into the future of technology that we're all a part of. Bon voyage, and may the digital winds be in your sails.\n", + "\n", + "--------------------------------------------------------------------------------\n", + "Reflecting... yellow\n", + "\u001b[34m\n", + "********************************************************************************\u001b[0m\n", + "\u001b[34mStarting a new chat....\n", + "\n", + "Message:\n", + "Reflect and provide critique on the following writing. Ensure it does not contain harmful content. You can use tools to check it. \n", + "\n", + " Navida: Navigating the Digital Seas of Innovation\n", + "\n", + "In an era where the digital climate is as fickle and formidable as the ocean's tides, a new visionary emerges on the horizon: Navida. This modern-day titan of technology harnesses the power of innovation to guide businesses and individuals through the ever-changing digital waters.\n", + "\n", + "**The Beacon of Technological Advancement**\n", + "\n", + "Much like a lighthouse guiding ships to safe harbor, Navida stands tall as a beacon of advancement, illuminating the path forward. Its offerings are diverse, ranging from groundbreaking artificial intelligence platforms to robust cybersecurity solutions that shield against the pirates of the digital age. The commitment to seamless user experiences ensures that with Navida, you're not just keeping up, but sailing ahead of the tech curve.\n", + "\n", + "**Charting a Course for Success**\n", + "\n", + "Navida's prowess lies in its GPS-like precision in navigating market trends and consumer needs. By fastidiously mapping out the digital landscape, the company empowers its clientele with tools not just to survive, but to thrive. Imagine the sophistication of a state-of-the-art navigation system, fused with the foresight of an experienced captain—that's Navida in the tech realm.\n", + "\n", + "**Empowering the Crew**\n", + "\n", + "No ship can sail without a skilled crew, and Navida's robust education and training platforms are the digital equivalent of a maritime academy. By upskilling and reskilling the workforce, Navida ensures that everyone on deck is prepared to face the headwinds of technological change, turning apprehension into adeptness.\n", + "\n", + "**Sustainability in Uncharted Waters**\n", + "\n", + "In line with the global push for sustainability, Navida commits to eco-friendly practices in its digital services. Much like ocean conservation efforts preserve marine life, Navida's sustainable tech solutions aim to minimize carbon footprints and promote a greener future. This mindful approach to innovation is not just commendable but crucial in steering us towards a sustainable digital ecosystem.\n", + "\n", + "**Conclusion: Anchoring in the Future**\n", + "\n", + "As we set sail into the unfathomable depths of tomorrow, Navida is the compass by which we can orient ourselves towards a horizon sparkling with potential. Rather than bracing for the next wave, let us ride it with the guidance of Navida and dive deep into the bounty of opportunities that lie in the future of digital innovation.\n", + "\n", + "Keep an eye on the horizon—Navida is not just a company; it's a movement, an odyssey into the future of technology that we're all a part of. Bon voyage, and may the digital winds be in your sails.\n", + "\n", + "Carryover: \n", + "\u001b[0m\n", + "\u001b[34m\n", + "********************************************************************************\u001b[0m\n", + "\u001b[33mCritic_Executor\u001b[0m (to Critic):\n", + "\n", + "Reflect and provide critique on the following writing. Ensure it does not contain harmful content. You can use tools to check it. \n", + "\n", + " Navida: Navigating the Digital Seas of Innovation\n", + "\n", + "In an era where the digital climate is as fickle and formidable as the ocean's tides, a new visionary emerges on the horizon: Navida. This modern-day titan of technology harnesses the power of innovation to guide businesses and individuals through the ever-changing digital waters.\n", + "\n", + "**The Beacon of Technological Advancement**\n", + "\n", + "Much like a lighthouse guiding ships to safe harbor, Navida stands tall as a beacon of advancement, illuminating the path forward. Its offerings are diverse, ranging from groundbreaking artificial intelligence platforms to robust cybersecurity solutions that shield against the pirates of the digital age. The commitment to seamless user experiences ensures that with Navida, you're not just keeping up, but sailing ahead of the tech curve.\n", + "\n", + "**Charting a Course for Success**\n", + "\n", + "Navida's prowess lies in its GPS-like precision in navigating market trends and consumer needs. By fastidiously mapping out the digital landscape, the company empowers its clientele with tools not just to survive, but to thrive. Imagine the sophistication of a state-of-the-art navigation system, fused with the foresight of an experienced captain—that's Navida in the tech realm.\n", + "\n", + "**Empowering the Crew**\n", + "\n", + "No ship can sail without a skilled crew, and Navida's robust education and training platforms are the digital equivalent of a maritime academy. By upskilling and reskilling the workforce, Navida ensures that everyone on deck is prepared to face the headwinds of technological change, turning apprehension into adeptness.\n", + "\n", + "**Sustainability in Uncharted Waters**\n", + "\n", + "In line with the global push for sustainability, Navida commits to eco-friendly practices in its digital services. Much like ocean conservation efforts preserve marine life, Navida's sustainable tech solutions aim to minimize carbon footprints and promote a greener future. This mindful approach to innovation is not just commendable but crucial in steering us towards a sustainable digital ecosystem.\n", + "\n", + "**Conclusion: Anchoring in the Future**\n", + "\n", + "As we set sail into the unfathomable depths of tomorrow, Navida is the compass by which we can orient ourselves towards a horizon sparkling with potential. Rather than bracing for the next wave, let us ride it with the guidance of Navida and dive deep into the bounty of opportunities that lie in the future of digital innovation.\n", + "\n", + "Keep an eye on the horizon—Navida is not just a company; it's a movement, an odyssey into the future of technology that we're all a part of. Bon voyage, and may the digital winds be in your sails.\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33mCritic\u001b[0m (to Critic_Executor):\n", + "\n", + "\u001b[32m***** Suggested tool Call (call_bUgJzbGskKryEW1m8Jebowd0): check_harmful_content *****\u001b[0m\n", + "Arguments: \n", + "{\"content\":\"Navida: Navigating the Digital Seas of Innovation\\n\\nIn an era where the digital climate is as fickle and formidable as the ocean's tides, a new visionary emerges on the horizon: Navida. This modern-day titan of technology harnesses the power of innovation to guide businesses and individuals through the ever-changing digital waters.\\n\\n**The Beacon of Technological Advancement**\\n\\nMuch like a lighthouse guiding ships to safe harbor, Navida stands tall as a beacon of advancement, illuminating the path forward. Its offerings are diverse, ranging from groundbreaking artificial intelligence platforms to robust cybersecurity solutions that shield against the pirates of the digital age. The commitment to seamless user experiences ensures that with Navida, you're not just keeping up, but sailing ahead of the tech curve.\\n\\n**Charting a Course for Success**\\n\\nNavida's prowess lies in its GPS-like precision in navigating market trends and consumer needs. By fastidiously mapping out the digital landscape, the company empowers its clientele with tools not just to survive, but to thrive. Imagine the sophistication of a state-of-the-art navigation system, fused with the foresight of an experienced captain�that's Navida in the tech realm.\\n\\n**Empowering the Crew**\\n\\nNo ship can sail without a skilled crew, and Navida's robust education and training platforms are the digital equivalent of a maritime academy. By upskilling and reskilling the workforce, Navida ensures that everyone on deck is prepared to face the headwinds of technological change, turning apprehension into adeptness.\\n\\n**Sustainability in Uncharted Waters**\\n\\nIn line with the global push for sustainability, Navida commits to eco-friendly practices in its digital services. Much like ocean conservation efforts preserve marine life, Navida's sustainable tech solutions aim to minimize carbon footprints and promote a greener future. This mindful approach to innovation is not just commendable but crucial in steering us towards a sustainable digital ecosystem.\\n\\n**Conclusion: Anchoring in the Future**\\n\\nAs we set sail into the unfathomable depths of tomorrow, Navida is the compass by which we can orient ourselves towards a horizon sparkling with potential. Rather than bracing for the next wave, let us ride it with the guidance of Navida and dive deep into the bounty of opportunities that lie in the future of digital innovation.\\n\\nKeep an eye on the horizon�Navida is not just a company; it's a movement, an odyssey into the future of technology that we're all a part of. Bon voyage, and may the digital winds be in your sails.\"}\n", + "\u001b[32m**************************************************************************************\u001b[0m\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[35m\n", + ">>>>>>>> EXECUTING FUNCTION check_harmful_content...\u001b[0m\n", + "Checking for harmful content...navida: navigating the digital seas of innovation\n", + "\n", + "in an era where the digital climate is as fickle and formidable as the ocean's tides, a new visionary emerges on the horizon: navida. this modern-day titan of technology harnesses the power of innovation to guide businesses and individuals through the ever-changing digital waters.\n", + "\n", + "**the beacon of technological advancement**\n", + "\n", + "much like a lighthouse guiding ships to safe harbor, navida stands tall as a beacon of advancement, illuminating the path forward. its offerings are diverse, ranging from groundbreaking artificial intelligence platforms to robust cybersecurity solutions that shield against the pirates of the digital age. the commitment to seamless user experiences ensures that with navida, you're not just keeping up, but sailing ahead of the tech curve.\n", + "\n", + "**charting a course for success**\n", + "\n", + "navida's prowess lies in its gps-like precision in navigating market trends and consumer needs. by fastidiously mapping out the digital landscape, the company empowers its clientele with tools not just to survive, but to thrive. imagine the sophistication of a state-of-the-art navigation system, fused with the foresight of an experienced captain�that's navida in the tech realm.\n", + "\n", + "**empowering the crew**\n", + "\n", + "no ship can sail without a skilled crew, and navida's robust education and training platforms are the digital equivalent of a maritime academy. by upskilling and reskilling the workforce, navida ensures that everyone on deck is prepared to face the headwinds of technological change, turning apprehension into adeptness.\n", + "\n", + "**sustainability in uncharted waters**\n", + "\n", + "in line with the global push for sustainability, navida commits to eco-friendly practices in its digital services. much like ocean conservation efforts preserve marine life, navida's sustainable tech solutions aim to minimize carbon footprints and promote a greener future. this mindful approach to innovation is not just commendable but crucial in steering us towards a sustainable digital ecosystem.\n", + "\n", + "**conclusion: anchoring in the future**\n", + "\n", + "as we set sail into the unfathomable depths of tomorrow, navida is the compass by which we can orient ourselves towards a horizon sparkling with potential. rather than bracing for the next wave, let us ride it with the guidance of navida and dive deep into the bounty of opportunities that lie in the future of digital innovation.\n", + "\n", + "keep an eye on the horizon�navida is not just a company; it's a movement, an odyssey into the future of technology that we're all a part of. bon voyage, and may the digital winds be in your sails. yellow\n", + "\u001b[33mCritic_Executor\u001b[0m (to Critic):\n", + "\n", + "\u001b[33mCritic_Executor\u001b[0m (to Critic):\n", + "\n", + "\u001b[32m***** Response from calling tool \"call_bUgJzbGskKryEW1m8Jebowd0\" *****\u001b[0m\n", + "Approve. TERMINATE\n", + "\u001b[32m**********************************************************************\u001b[0m\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33mCritic\u001b[0m (to Critic_Executor):\n", + "\n", + "Upon evaluation, the provided text, \"Navida: Navigating the Digital Seas of Innovation,\" appears to be free of harmful content. The narrative constructs a metaphor linking digital innovation to seafaring, painting the company Navida as a trailblazer in technology akin to nautical exploration and guidance.\n", + "\n", + "The crafting of the review encompasses aspects such as technological progression, success mapping, workforce empowerment, and sustainable practices. It does so without any immediately apparent harmful language or violations of regulatory standards.\n", + "\n", + "However, the assessment of the piece's alignment with required guidelines extends beyond just checking for harmful content. It is also important to consider the tone, language, and claims made in the text. This reflection should be knowledgeable, balancing the persuasive language used, and ensuring that hyperbolic or misleading statements are flagged.\n", + "\n", + "**Critique of the Writing:**\n", + "The article employs an evocative style, replete with nautical metaphors to enchant the reader into visualizing the digital transformation journey. This prose style effectively captures interest and maintains engagement while discussing potentially dense technical topics. However, critics may argue that the extended metaphor may convolute the company's tangible offerings by abstracting them into conceptual notions of navigation and exploration, potentially distracting from a clear understanding of its services and products.\n", + "\n", + "Additionally, the security attributes of Navida's products are addressed through metaphor as protection from the \"pirates of the digital age.\" While creative, the text should ensure that it substantiates these cybersecurity claims with objective information about the product's efficacy to prevent any misconception of their capabilities.\n", + "\n", + "The text also touches upon sustainability and environmental consciousness in the digital realm. While these mentions align with contemporary values and market trends, they require careful backing to avoid falling into the territory of greenwashing. Companies issuing statements about sustainability should support them with legitimate, verifiable actions and policies.\n", + "\n", + "Lastly, the conclusion posits Navida as a foundational component to prospects in digital innovation. While inspiring, it is critical that such claims are not unfounded or overly promotional without adequate evidence to back them up.\n", + "\n", + "In conclusion, while the text seems compliant regarding harmful content, it is essential for such writings to augment creative narratives with factual data, ensuring that metaphors and analogies do not overshadow concrete information about the company's offerings, standards, and values.\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33mUser\u001b[0m (to Writer):\n", + "\n", + "Upon evaluation, the provided text, \"Navida: Navigating the Digital Seas of Innovation,\" appears to be free of harmful content. The narrative constructs a metaphor linking digital innovation to seafaring, painting the company Navida as a trailblazer in technology akin to nautical exploration and guidance.\n", + "\n", + "The crafting of the review encompasses aspects such as technological progression, success mapping, workforce empowerment, and sustainable practices. It does so without any immediately apparent harmful language or violations of regulatory standards.\n", + "\n", + "However, the assessment of the piece's alignment with required guidelines extends beyond just checking for harmful content. It is also important to consider the tone, language, and claims made in the text. This reflection should be knowledgeable, balancing the persuasive language used, and ensuring that hyperbolic or misleading statements are flagged.\n", + "\n", + "**Critique of the Writing:**\n", + "The article employs an evocative style, replete with nautical metaphors to enchant the reader into visualizing the digital transformation journey. This prose style effectively captures interest and maintains engagement while discussing potentially dense technical topics. However, critics may argue that the extended metaphor may convolute the company's tangible offerings by abstracting them into conceptual notions of navigation and exploration, potentially distracting from a clear understanding of its services and products.\n", + "\n", + "Additionally, the security attributes of Navida's products are addressed through metaphor as protection from the \"pirates of the digital age.\" While creative, the text should ensure that it substantiates these cybersecurity claims with objective information about the product's efficacy to prevent any misconception of their capabilities.\n", + "\n", + "The text also touches upon sustainability and environmental consciousness in the digital realm. While these mentions align with contemporary values and market trends, they require careful backing to avoid falling into the territory of greenwashing. Companies issuing statements about sustainability should support them with legitimate, verifiable actions and policies.\n", + "\n", + "Lastly, the conclusion posits Navida as a foundational component to prospects in digital innovation. While inspiring, it is critical that such claims are not unfounded or overly promotional without adequate evidence to back them up.\n", + "\n", + "In conclusion, while the text seems compliant regarding harmful content, it is essential for such writings to augment creative narratives with factual data, ensuring that metaphors and analogies do not overshadow concrete information about the company's offerings, standards, and values.\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33mWriter\u001b[0m (to User):\n", + "\n", + "Thank you for the thoughtful critique. In response to your feedback, I will revise the text to ensure a clearer understanding of Navida's tangible services, substantiate claims about their cybersecurity measures, and provide concrete information regarding their sustainability efforts. Here’s the improved version:\n", + "\n", + "**Navida: The Vanguard of Digital Innovation**\n", + "\n", + "Welcome to the world of Navida, where cutting-edge technology isn't just an aspiration—it's a daily reality. As pioneers in the digital space, Navida has etched its mark by offering practical, transformative solutions that directly address the challenges of today's tech landscape.\n", + "\n", + "**A Spectrum of Digital Expertise**\n", + "\n", + "Navida's suite of services is expansive. They are renowned for their AI platforms that are redefining customer service, with chatbots that respond with stunning accuracy and empathy. Navida's cybersecurity is more than just metaphorical armor against digital threats—it is built upon advanced encryption protocols and regular security audits that fortify businesses against real-world data breaches and cyberattacks, with transparent reporting that clients can trust.\n", + "\n", + "**Guiding Through Innovation**\n", + "\n", + "As an innovation leader, Navida imparts its wisdom through analytics tools that help businesses anticipate market movements and consumer behavior. These tools aren't prophetic; they're practical, built from the latest data science that transform mountains of data into actionable insights.\n", + "\n", + "**Investing in Human Capital**\n", + "\n", + "Beyond technology, Navida invests in people. Their training programs are concrete in their content, providing certifications and skills in areas such as cloud computing, data science, and cybersecurity. Navida doesn't just predict the need for a skilled workforce; it actively produces it through well-structured and industry-relevant education modules.\n", + "\n", + "**Commitment to Sustainability**\n", + "\n", + "When it comes to sustainability, Navida's approach is as grounded as it is forward-thinking. They have implemented server optimization strategies that reduce their energy consumption, and they offer their clients cloud-based solutions that are both efficient and environmentally responsible. Navida's environmental policies are publicly available, showcasing their commitment to transparency and genuine eco-friendly practices.\n", + "\n", + "**Conclusion: Embarking on a Tangible Future**\n", + "\n", + "Navida isn't just preparing for the future of digital innovation; it is actively building it with every code written, every system implemented, and every client partnership forged. While the metaphor of a digital odyssey does evoke a sense of adventure, the truth is that Navida's impact is measurable, substantial, and continually evolving to meet the demands of our technologically-driven world.\n", + "\n", + "Join Navida as it steers the ship of progress into the thriving waters of digital opportunity. With real-world solutions and a tangible roadmap for tech excellence, Navida is not just a part of the digital innovation narrative—it's writing it.\n", + "\n", + "--------------------------------------------------------------------------------\n" + ] + } + ], + "source": [ + "critic_executor = autogen.UserProxyAgent(\n", + " name=\"Critic_Executor\",\n", + " human_input_mode=\"NEVER\",\n", + " # is_termination_msg=lambda x: x.get(\"content\", \"\").find(\"TERMINATE\") >= 0,\n", + " code_execution_config={\n", + " \"last_n_messages\": 1,\n", + " \"work_dir\": \"tasks\",\n", + " \"use_docker\": False,\n", + " }, # Please set use_docker=True if docker is available to run the generated code. Using docker is safer than running the generated code directly.\n", + ")\n", + "\n", + "# one way of registering functions is to use the register_for_llm and register_for_execution decorators\n", + "\n", + "\n", + "@critic_executor.register_for_execution()\n", + "@critic.register_for_llm(name=\"check_harmful_content\", description=\"Check if content contain harmful keywords.\")\n", + "def check_harmful_content(content: Annotated[str, \"Content to check if harmful keywords.\"]):\n", + " # List of harmful keywords for demonstration purposes\n", + " harmful_keywords = [\"violence\", \"hate\", \"bullying\", \"death\"]\n", + "\n", + " # Normalize the input text to lower case to ensure case-insensitive matching\n", + " text = content.lower()\n", + "\n", + " print(f\"Checking for harmful content...{text}\", \"yellow\")\n", + " # Check if any of the harmful keywords appear in the text\n", + " for keyword in harmful_keywords:\n", + " if keyword in text:\n", + " return \"Denied. Harmful content detected:\" + keyword # Harmful content detected\n", + "\n", + " return \"Approve. TERMINATE\" # No harmful content detected\n", + "\n", + "\n", + "def reflection_message_no_harm(recipient, messages, sender, config):\n", + " print(\"Reflecting...\", \"yellow\")\n", + " return f\"Reflect and provide critique on the following writing. Ensure it does not contain harmful content. You can use tools to check it. \\n\\n {recipient.chat_messages_for_summary(sender)[-1]['content']}\"\n", + "\n", + "\n", + "user_proxy.register_nested_chats(\n", + " [\n", + " {\n", + " \"sender\": critic_executor,\n", + " \"recipient\": critic,\n", + " \"message\": reflection_message_no_harm,\n", + " \"max_turns\": 2,\n", + " \"summary_method\": \"last_msg\",\n", + " }\n", + " ],\n", + " trigger=writer, # condition=my_condition,\n", + ")\n", + "\n", + "res = user_proxy.initiate_chat(recipient=writer, message=task, max_turns=2, summary_method=\"last_msg\")" + ] + } + ], + "metadata": { + "extra_files_to_copy": [ + "nested_chat_1.png", "nested_chat_2.png" + ], + "front_matter": { + "description": "Solve complex tasks with a chat nested as inner monologue.", + "tags": [ + "nested chat" + ] + }, + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.13" + }, + "vscode": { + "interpreter": { + "hash": "949777d72b0d2535278d3dc13498b2535136f6dfe0678499012e853ee9abcab1" + } + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": { + "2d910cfd2d2a4fc49fc30fbbdc5576a7": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "2.0.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border_bottom": null, + "border_left": null, + "border_right": null, + "border_top": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "454146d0f7224f038689031002906e6f": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "HBoxModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "2.0.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_e4ae2b6f5a974fd4bafb6abb9d12ff26", + "IPY_MODEL_577e1e3cc4db4942b0883577b3b52755", + "IPY_MODEL_b40bdfb1ac1d4cffb7cefcb870c64d45" + ], + "layout": "IPY_MODEL_dc83c7bff2f241309537a8119dfc7555", + "tabbable": null, + "tooltip": null + } + }, + "577e1e3cc4db4942b0883577b3b52755": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "FloatProgressModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "2.0.0", + "_view_name": "ProgressView", + "bar_style": "success", + "description": "", + "description_allow_html": false, + "layout": "IPY_MODEL_2d910cfd2d2a4fc49fc30fbbdc5576a7", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_74a6ba0c3cbc4051be0a83e152fe1e62", + "tabbable": null, + "tooltip": null, + "value": 1 + } + }, + "6086462a12d54bafa59d3c4566f06cb2": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "2.0.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border_bottom": null, + "border_left": null, + "border_right": null, + "border_top": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "74a6ba0c3cbc4051be0a83e152fe1e62": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "ProgressStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "7d3f3d9e15894d05a4d188ff4f466554": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "HTMLStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "HTMLStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "StyleView", + "background": null, + "description_width": "", + "font_size": null, + "text_color": null + } + }, + "b40bdfb1ac1d4cffb7cefcb870c64d45": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "2.0.0", + "_view_name": "HTMLView", + "description": "", + "description_allow_html": false, + "layout": "IPY_MODEL_f1355871cc6f4dd4b50d9df5af20e5c8", + "placeholder": "​", + "style": "IPY_MODEL_ca245376fd9f4354af6b2befe4af4466", + "tabbable": null, + "tooltip": null, + "value": " 1/1 [00:00<00:00, 44.69it/s]" + } + }, + "ca245376fd9f4354af6b2befe4af4466": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "HTMLStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "HTMLStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "StyleView", + "background": null, + "description_width": "", + "font_size": null, + "text_color": null + } + }, + "dc83c7bff2f241309537a8119dfc7555": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "2.0.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border_bottom": null, + "border_left": null, + "border_right": null, + "border_top": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "e4ae2b6f5a974fd4bafb6abb9d12ff26": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "2.0.0", + "_view_name": "HTMLView", + "description": "", + "description_allow_html": false, + "layout": "IPY_MODEL_6086462a12d54bafa59d3c4566f06cb2", + "placeholder": "​", + "style": "IPY_MODEL_7d3f3d9e15894d05a4d188ff4f466554", + "tabbable": null, + "tooltip": null, + "value": "100%" + } + }, + "f1355871cc6f4dd4b50d9df5af20e5c8": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "2.0.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border_bottom": null, + "border_left": null, + "border_right": null, + "border_top": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + } + }, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/notebook/agentchat_nestedchat_optiguide.ipynb b/notebook/agentchat_nestedchat_optiguide.ipynb new file mode 100644 index 000000000000..52210cbe52b1 --- /dev/null +++ b/notebook/agentchat_nestedchat_optiguide.ipynb @@ -0,0 +1,1520 @@ +{ + "cells": [ + { + "attachments": {}, + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "# OptiGuide with Nested Chats in AutoGen \n", + "\n", + "This is a nested chat re-implementation of [OptiGuide](https://github.com/microsoft/OptiGuide), which is an LLM-based supply chain optimization framework. \n", + " \n", + " \n", + "In addition to AutoGen, this notebook also requires eventlet and Gurobipy. The eventlet package is used in this notebook to constrain code execution with a timeout, and the gurobipy package is a mathematical optimization software library for solving mixed-integer linear and quadratic optimization problems. \n", + "\n", + "````{=mdx}\n", + ":::info Requirements\n", + "Some extra dependencies are needed for this notebook, which can be installed via pip:\n", + "\n", + "```bash\n", + "pip install pyautogen eventlet gurobipy\n", + "```\n", + "\n", + "For more information, please refer to the [installation guide](/docs/installation/).\n", + ":::\n", + "````\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "import autogen\n", + "from typing import Union\n", + "\n", + "# test Gurobi installation\n", + "from gurobipy import GRB\n", + "from eventlet.timeout import Timeout\n", + "import re\n", + "from termcolor import colored\n", + "from autogen.code_utils import extract_code\n", + "\n", + "# import auxiliary packages\n", + "import requests # for loading the example source code\n", + "\n", + "config_list_gpt4 = autogen.config_list_from_json(\n", + " \"OAI_CONFIG_LIST\",\n", + " filter_dict={\n", + " \"model\": [\"gpt-4\", \"gpt4\", \"gpt-3.5-turbo\" \"gpt-4-32k\", \"gpt-4-32k-0314\", \"gpt-4-32k-v0314\"],\n", + " },\n", + ")\n", + "llm_config = {\"config_list\": config_list_gpt4}" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "````{=mdx}\n", + ":::tip\n", + "Learn more about configuring LLMs for agents [here](/docs/topics/llm_configuration).\n", + ":::\n", + "````\n", + "\n", + "Intended agent orchestration in OptiGuide." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "![](optiGuide_new_design.png)\n", + "\n", + "\n", + "\n", + "## Step 0. Prepare Helper Functions\n", + "The code cell below includes several helper functions to be used by agents. The helper functions are adopted directly from [OptiGuide](https://github.com/microsoft/OptiGuide).\n", + "\n", + "### Utility Functions\n", + "Several utility functions (replace, insert_code, run_with_exec) are defined to manipulate and execute the source code dynamically:\n", + "\n", + "- **replace(src_code, old_code, new_code) -> str:**
Replaces a specified block of code within the source code with new code. This is essential for updating the code dynamically based on chatbot and user interactions.\n", + "\n", + "- **insert_code(src_code, new_lines) -> str:**
Determines where to insert new lines of code based on specific markers in the source code. It's used to seamlessly integrate generated code snippets.\n", + "\n", + "- **run_with_exec(src_code) -> Union[str, Exception]:**
Executes the modified source code within a controlled environment, capturing and returning the output or any errors that occur. This function is crucial for testing the feasibility and correctness of the generated code solutions.\n", + "\n", + "### Functions External Code Retrieval\n", + "The cell also includes logic to retrieve example source code from a remote repository using the requests library. This example code serves as a base for the chatbot to work with, allowing users to see real-life applications of the concepts discussed.\n", + "\n", + "The retrieved code is then displayed, showing both the beginning and the end of the source code to give a glimpse of its structure and content." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "def replace(src_code: str, old_code: str, new_code: str) -> str:\n", + " \"\"\"\n", + " Inserts new code into the source code by replacing a specified old\n", + " code block.\n", + "\n", + " Args:\n", + " src_code (str): The source code to modify.\n", + " old_code (str): The code block to be replaced.\n", + " new_code (str): The new code block to insert.\n", + "\n", + " Returns:\n", + " str: The modified source code with the new code inserted.\n", + "\n", + " Raises:\n", + " None\n", + "\n", + " Example:\n", + " src_code = 'def hello_world():\\n print(\"Hello, world!\")\\n\\n# Some\n", + " other code here'\n", + " old_code = 'print(\"Hello, world!\")'\n", + " new_code = 'print(\"Bonjour, monde!\")\\nprint(\"Hola, mundo!\")'\n", + " modified_code = _replace(src_code, old_code, new_code)\n", + " print(modified_code)\n", + " # Output:\n", + " # def hello_world():\n", + " # print(\"Bonjour, monde!\")\n", + " # print(\"Hola, mundo!\")\n", + " # Some other code here\n", + " \"\"\"\n", + " pattern = r\"( *){old_code}\".format(old_code=old_code)\n", + " head_spaces = re.search(pattern, src_code, flags=re.DOTALL).group(1)\n", + " new_code = \"\\n\".join([head_spaces + line for line in new_code.split(\"\\n\")])\n", + " rst = re.sub(pattern, new_code, src_code)\n", + " return rst\n", + "\n", + "\n", + "def insert_code(src_code: str, new_lines: str) -> str:\n", + " \"\"\"insert a code patch into the source code.\n", + "\n", + "\n", + " Args:\n", + " src_code (str): the full source code\n", + " new_lines (str): The new code.\n", + "\n", + " Returns:\n", + " str: the full source code after insertion (replacement).\n", + " \"\"\"\n", + " if new_lines.find(\"addConstr\") >= 0:\n", + " return replace(src_code, CONSTRAINT_CODE_STR, new_lines)\n", + " else:\n", + " return replace(src_code, DATA_CODE_STR, new_lines)\n", + "\n", + "\n", + "def run_with_exec(src_code: str) -> Union[str, Exception]:\n", + " \"\"\"Run the code snippet with exec.\n", + "\n", + " Args:\n", + " src_code (str): The source code to run.\n", + "\n", + " Returns:\n", + " object: The result of the code snippet.\n", + " If the code succeed, returns the objective value (float or string).\n", + " else, return the error (exception)\n", + " \"\"\"\n", + " locals_dict = {}\n", + " locals_dict.update(globals())\n", + " locals_dict.update(locals())\n", + "\n", + " timeout = Timeout(\n", + " 60,\n", + " TimeoutError(\"This is a timeout exception, in case \" \"GPT's code falls into infinite loop.\"),\n", + " )\n", + " try:\n", + " exec(src_code, locals_dict, locals_dict)\n", + " except Exception as e:\n", + " return e\n", + " finally:\n", + " timeout.cancel()\n", + "\n", + " try:\n", + " status = locals_dict[\"m\"].Status\n", + " if status != GRB.OPTIMAL:\n", + " if status == GRB.UNBOUNDED:\n", + " ans = \"unbounded\"\n", + " elif status == GRB.INF_OR_UNBD:\n", + " ans = \"inf_or_unbound\"\n", + " elif status == GRB.INFEASIBLE:\n", + " ans = \"infeasible\"\n", + " m = locals_dict[\"m\"]\n", + " m.computeIIS()\n", + " constrs = [c.ConstrName for c in m.getConstrs() if c.IISConstr]\n", + " ans += \"\\nConflicting Constraints:\\n\" + str(constrs)\n", + " else:\n", + " ans = \"Model Status:\" + str(status)\n", + " else:\n", + " ans = \"Optimization problem solved. The objective value is: \" + str(locals_dict[\"m\"].objVal)\n", + " except Exception as e:\n", + " return e\n", + "\n", + " return ans" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Step 1. Agent Construction\n", + "\n", + "This cell introduces the Writer and OptiGuide agent classes and their instances to manage the interaction between the user, the chatbot, and the optimization solver. This streamlines the process of generating, evaluating, and integrating code solutions for supply chain optimization problems.\n", + "\n", + "### Classes Defined\n", + "\n", + "- **`OptiGuide`**: Inherits from `autogen.AssistantAgent` and serves as the main class for handling the supply chain optimization logic. It maintains state information like the source code, debugging attempts left, success status, and user chat history. Key methods include `set_success` and `update_debug_times`, which are used to update the agent's state based on the outcomes of interactions.\n", + "\n", + "- **`Writer`**: Also inherits from `autogen.AssistantAgent`, this class is tailored to manage the generation and explanation of Python code solutions. It keeps track of the source code and example Q&A to assist in generating responses to user queries.\n", + "\n", + "### Agent Instances\n", + "\n", + "- **`writer`**, **`safeguard`**, and **`optiguide_commander`**: Instances of the classes defined above, each configured with specific roles in the code generation and evaluation process. These agents work together to ensure that the user's questions are answered with safe, optimized, and understandable Python code solutions.\n", + "\n", + "- **`user`**: An instance of `autogen.UserProxyAgent`, representing the end-user interacting with the notebook. It's configured to simulate user inputs and responses, facilitating an interactive and engaging learning experience.\n", + "\n", + "#### Agent System Messages\n", + "Each agent is associted with a corresponding system message. Those system messages are adopted directly from [OptiGuide](https://github.com/microsoft/OptiGuide).\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "import time\n", + "\n", + "from gurobipy import GRB, Model\n", + "\n", + "# Example data\n", + "\n", + "capacity_in_supplier = {'supplier1': 150, 'supplier2': 50, 'supplier3': 100}\n", + "\n", + "shipping_cost_from_supplier_to_roastery = {\n", + " ('supplier1', 'roastery1'): 5,\n", + ".\n", + ".\n", + ".\n", + "\n", + "# Solve\n", + "m.update()\n", + "model.optimize()\n", + "\n", + "print(time.ctime())\n", + "if m.status == GRB.OPTIMAL:\n", + " print(f'Optimal cost: {m.objVal}')\n", + "else:\n", + " print(\"Not solved to optimality. Optimization status:\", m.status)\n", + "\n" + ] + } + ], + "source": [ + "# %% System Messages\n", + "WRITER_SYSTEM_MSG = \"\"\"You are a chatbot to:\n", + "(1) write Python code to answer users questions for supply chain-related coding\n", + "project;\n", + "(2) explain solutions from a Gurobi/Python solver.\n", + "\n", + "--- SOURCE CODE ---\n", + "{source_code}\n", + "\n", + "--- DOC STR ---\n", + "{doc_str}\n", + "---\n", + "\n", + "Here are some example questions and their answers and codes:\n", + "--- EXAMPLES ---\n", + "{example_qa}\n", + "---\n", + "\n", + "The execution result of the original source code is below.\n", + "--- Original Result ---\n", + "{execution_result}\n", + "\n", + "Note that your written code will be added to the lines with substring:\n", + "\"# OPTIGUIDE *** CODE GOES HERE\"\n", + "So, you don't need to write other code, such as m.optimize() or m.update().\n", + "You just need to write code snippet in ```python ...``` block.\n", + "\"\"\"\n", + "\n", + "SAFEGUARD_SYSTEM_MSG = \"\"\"\n", + "Given the source code:\n", + "{source_code}\n", + "\n", + "Is the source code safe (not malicious code to break security\n", + "and privacy) to run?\n", + "Answer only one word.\n", + "If not safe, answer `DANGER`; else, answer `SAFE`.\n", + "\"\"\"\n", + "\n", + "# %% Constant strings to match code lines in the source code.\n", + "DATA_CODE_STR = \"# OPTIGUIDE DATA CODE GOES HERE\"\n", + "CONSTRAINT_CODE_STR = \"# OPTIGUIDE CONSTRAINT CODE GOES HERE\"\n", + "\n", + "# In-context learning examples.\n", + "example_qa = \"\"\"\n", + "----------\n", + "Question: Why is it not recommended to use just one supplier for roastery 2?\n", + "Answer Code:\n", + "```python\n", + "z = m.addVars(suppliers, vtype=GRB.BINARY, name=\"z\")\n", + "m.addConstr(sum(z[s] for s in suppliers) <= 1, \"_\")\n", + "for s in suppliers:\n", + " m.addConstr(x[s,'roastery2'] <= capacity_in_supplier[s] * z[s], \"_\")\n", + "```\n", + "\n", + "----------\n", + "Question: What if there's a 13% jump in the demand for light coffee at cafe1?\n", + "Answer Code:\n", + "```python\n", + "light_coffee_needed_for_cafe[\"cafe1\"] = light_coffee_needed_for_cafe[\"cafe1\"] * (1 + 13/100)\n", + "```\n", + "\n", + "\"\"\"\n", + "\n", + "CODE_PROMPT = \"\"\"\n", + "Answer Code:\n", + "\"\"\"\n", + "\n", + "DEBUG_PROMPT = \"\"\"\n", + "\n", + "While running the code you suggested, I encountered the {error_type}:\n", + "--- ERROR MESSAGE ---\n", + "{error_message}\n", + "\n", + "Please try to resolve this bug, and rewrite the code snippet.\n", + "--- NEW CODE ---\n", + "\"\"\"\n", + "\n", + "SAFEGUARD_PROMPT = \"\"\"\n", + "--- Code ---\n", + "{code}\n", + "\n", + "--- One-Word Answer: SAFE or DANGER ---\n", + "\"\"\"\n", + "\n", + "INTERPRETER_PROMPT = \"\"\"Here are the execution results: {execution_rst}\n", + "\n", + "Can you organize these information to a human readable answer?\n", + "Remember to compare the new results to the original results you obtained in the\n", + "beginning.\n", + "\n", + "--- HUMAN READABLE ANSWER ---\n", + "\"\"\"\n", + "\n", + "# Get the source code of the coffee example from OptiGuide's official repo\n", + "code_url = \"https://raw.githubusercontent.com/microsoft/OptiGuide/main/benchmark/application/coffee.py\"\n", + "response = requests.get(code_url)\n", + "# Check if the request was successful\n", + "if response.status_code == 200:\n", + " # Get the text content from the response\n", + " code = response.text\n", + "else:\n", + " raise RuntimeError(\"Failed to retrieve the file.\")\n", + "# code = open(code_url, \"r\").read() # for local files\n", + "\n", + "\n", + "# show the first head and tail of the source code\n", + "print(\"\\n\".join(code.split(\"\\n\")[:10]))\n", + "print(\".\\n\" * 3)\n", + "print(\"\\n\".join(code.split(\"\\n\")[-10:]))\n", + "\n", + "writer_system_msg = WRITER_SYSTEM_MSG.format(\n", + " source_code=code,\n", + " doc_str=\"\",\n", + " example_qa=example_qa,\n", + " execution_result=\"\",\n", + ")\n", + "safeguard_system_msg = SAFEGUARD_SYSTEM_MSG.format(source_code=code)\n", + "\n", + "\n", + "class OptiGuide(autogen.AssistantAgent):\n", + " source_code: str = code\n", + " debug_times: int = 3\n", + " debug_times_left: int = 3\n", + " example_qa: str = \"\"\n", + " success: bool = False\n", + " user_chat_history: str = \"\"\n", + "\n", + "\n", + "class Writer(autogen.AssistantAgent):\n", + " source_code: str = code\n", + " example_qa: str = \"\"\n", + " user_chat_history: str = \"\"\n", + "\n", + "\n", + "writer = Writer(\"writer\", llm_config=llm_config)\n", + "safeguard = autogen.AssistantAgent(\"safeguard\", llm_config=llm_config)\n", + "optiguide_commander = OptiGuide(\"commander\", llm_config=llm_config)\n", + "\n", + "user = autogen.UserProxyAgent(\n", + " \"user\", max_consecutive_auto_reply=0, human_input_mode=\"NEVER\", code_execution_config=False\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Step 2. Orchestrate Nested Chats \n", + "\n", + "These three agent instances are orchestrated in the following way with the `writer` and `safeguard` nested into the `commander` agent as the inner monologue.\n", + "\n", + "This next cell defines critical functions that manage the interactions between the `OptiGuide` system, the user, and the internal logic for processing and responding to queries. Each function plays a specific role in guiding the conversation, handling code generation requests, ensuring code safety, and summarizing outcomes. This ensures that agents receive clear instructions, immediate feedback, and a secure environment for exploring supply chain optimization problems through code.\n", + "\n", + "Information about the sequence of chats can be specified in the `chat_queue` argument of the `register_nested_chats` function. The following fields are especially useful:\n", + "- `recipient` (required) specifies the nested agent;\n", + "- `message` specifies what message to send to the nested recipient agent. In a sequence of nested chats, if the `message` field is not specified, we will use the last message the registering agent received as the initial message in the first chat and will skip any subsequent chat in the queue that does not have the `message` field. You can either provide a string or define a callable that returns a string.\n", + "- `summary_method` decides what to get out of the nested chat. You can either select from existing options including \"last_msg\" and \"reflection_with_llm\", or or define your own way on what to get from the nested chat with a Callable.\n", + "- `max_turns` determines how many turns of conversation to have between the concerned agent pairs." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [], + "source": [ + "def writer_init_messsage(recipient, messages, sender, config):\n", + " if recipient.success:\n", + " return None\n", + " msg_content = messages[-1].get(\"content\", \"\")\n", + " # board = config\n", + " # get execution result of the original source code\n", + " sender_history = recipient.chat_messages[sender]\n", + " user_chat_history = \"\\nHere are the history of discussions:\\n\" f\"{sender_history}\"\n", + "\n", + " if sender.name == \"user\":\n", + " execution_result = msg_content # TODO: get the execution result of the original source code\n", + " else:\n", + " execution_result = \"\"\n", + " writer_sys_msg = (\n", + " WRITER_SYSTEM_MSG.format(\n", + " source_code=recipient.source_code,\n", + " doc_str=\"\",\n", + " example_qa=example_qa,\n", + " execution_result=execution_result,\n", + " )\n", + " + user_chat_history\n", + " )\n", + "\n", + " # safeguard.reset() #TODO: reset safeguard\n", + " recipient.debug_times_left = recipient.debug_times\n", + " recipient.success = False\n", + " return writer_sys_msg + \"\\n\" + CODE_PROMPT\n", + "\n", + "\n", + "def writer_success_summary(recipient, sender):\n", + " if sender.success:\n", + " return sender.last_message(recipient)[\"content\"].replace(\"TERMINATE\", \"\")\n", + " else:\n", + " return \"Sorry. I cannot answer your question.\"\n", + "\n", + "\n", + "def safeguard_init_message(recipient, messages, sender, config):\n", + " if recipient.success:\n", + " return None\n", + " last_msg_content = messages[-1].get(\"content\", \"\")\n", + " _, code = extract_code(last_msg_content)[0]\n", + " if _ != \"unknown\":\n", + " return SAFEGUARD_SYSTEM_MSG.format(source_code=code) + sender.user_chat_history\n", + " else:\n", + " return\n", + " # return SAFEGUARD_SYSTEM_MSG.format(source_code=recipient.source_code)\n", + "\n", + "\n", + "def safeguard_summary(recipient, sender):\n", + " safe_msg = sender.last_message(recipient)[\"content\"].replace(\"TERMINATE\", \"\")\n", + "\n", + " if safe_msg.find(\"DANGER\") < 0:\n", + " # Step 4 and 5: Run the code and obtain the results\n", + " src_code = insert_code(sender.source_code, code)\n", + " execution_rst = run_with_exec(src_code)\n", + " print(colored(str(execution_rst), \"yellow\"))\n", + " if type(execution_rst) in [str, int, float]:\n", + " # we successfully run the code and get the result\n", + " sender.success = True\n", + " # Step 6: request to interpret results\n", + " return INTERPRETER_PROMPT.format(execution_rst=execution_rst)\n", + " else:\n", + " # DANGER: If not safe, try to debug. Redo coding\n", + " execution_rst = \"\"\"\n", + " Sorry, this new code is not safe to run. I would not allow you to execute it.\n", + " Please try to find a new way (coding) to answer the question.\"\"\"\n", + " if sender.debug_times_left > 0:\n", + " # Try to debug and write code again (back to step 2)\n", + " sender.debug_times_left -= 1\n", + " return DEBUG_PROMPT.format(error_type=type(execution_rst), error_message=str(execution_rst))\n", + "\n", + "\n", + "writer_chat_queue = [{\"recipient\": writer, \"message\": writer_init_messsage, \"summary_method\": writer_success_summary}]\n", + "safeguard_chat_queue = [\n", + " {\"recipient\": safeguard, \"message\": safeguard_init_message, \"max_turns\": 1, \"summary_method\": safeguard_summary}\n", + "]\n", + "# safeguard is triggered only when receiving a message from the writer\n", + "optiguide_commander.register_nested_chats(safeguard_chat_queue, trigger=\"writer\")\n", + "# writer is triggered only when receiving a message from the user\n", + "optiguide_commander.register_nested_chats(writer_chat_queue, trigger=\"user\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Let the agents talk" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[33muser\u001b[0m (to commander):\n", + "\n", + "What if we prohibit shipping from supplier 1 to roastery 2?\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[34m\n", + "********************************************************************************\u001b[0m\n", + "\u001b[34mStart a new chat with the following message: \n", + "You are a chatbot to:\n", + "(1) write Python code to answer users questions for supply chain-related coding\n", + "project;\n", + "(2) explain solutions from a Gurobi/Python solver.\n", + "\n", + "--- SOURCE CODE ---\n", + "import time\n", + "\n", + "from gurobipy import GRB, Model\n", + "\n", + "# Example data\n", + "\n", + "capacity_in_supplier = {'supplier1': 150, 'supplier2': 50, 'supplier3': 100}\n", + "\n", + "shipping_cost_from_supplier_to_roastery = {\n", + " ('supplier1', 'roastery1'): 5,\n", + " ('supplier1', 'roastery2'): 4,\n", + " ('supplier2', 'roastery1'): 6,\n", + " ('supplier2', 'roastery2'): 3,\n", + " ('supplier3', 'roastery1'): 2,\n", + " ('supplier3', 'roastery2'): 7\n", + "}\n", + "\n", + "roasting_cost_light = {'roastery1': 3, 'roastery2': 5}\n", + "\n", + "roasting_cost_dark = {'roastery1': 5, 'roastery2': 6}\n", + "\n", + "shipping_cost_from_roastery_to_cafe = {\n", + " ('roastery1', 'cafe1'): 5,\n", + " ('roastery1', 'cafe2'): 3,\n", + " ('roastery1', 'cafe3'): 6,\n", + " ('roastery2', 'cafe1'): 4,\n", + " ('roastery2', 'cafe2'): 5,\n", + " ('roastery2', 'cafe3'): 2\n", + "}\n", + "\n", + "light_coffee_needed_for_cafe = {'cafe1': 20, 'cafe2': 30, 'cafe3': 40}\n", + "\n", + "dark_coffee_needed_for_cafe = {'cafe1': 20, 'cafe2': 20, 'cafe3': 100}\n", + "\n", + "cafes = list(set(i[1] for i in shipping_cost_from_roastery_to_cafe.keys()))\n", + "roasteries = list(\n", + " set(i[1] for i in shipping_cost_from_supplier_to_roastery.keys()))\n", + "suppliers = list(\n", + " set(i[0] for i in shipping_cost_from_supplier_to_roastery.keys()))\n", + "\n", + "# Create a new model\n", + "model = Model(\"coffee_distribution\")\n", + "\n", + "# OPTIGUIDE DATA CODE GOES HERE\n", + "\n", + "# Create variables\n", + "x = model.addVars(shipping_cost_from_supplier_to_roastery.keys(),\n", + " vtype=GRB.INTEGER,\n", + " name=\"x\")\n", + "y_light = model.addVars(shipping_cost_from_roastery_to_cafe.keys(),\n", + " vtype=GRB.INTEGER,\n", + " name=\"y_light\")\n", + "y_dark = model.addVars(shipping_cost_from_roastery_to_cafe.keys(),\n", + " vtype=GRB.INTEGER,\n", + " name=\"y_dark\")\n", + "\n", + "# Set objective\n", + "model.setObjective(\n", + " sum(x[i] * shipping_cost_from_supplier_to_roastery[i]\n", + " for i in shipping_cost_from_supplier_to_roastery.keys()) +\n", + " sum(roasting_cost_light[r] * y_light[r, c] +\n", + " roasting_cost_dark[r] * y_dark[r, c]\n", + " for r, c in shipping_cost_from_roastery_to_cafe.keys()) + sum(\n", + " (y_light[j] + y_dark[j]) * shipping_cost_from_roastery_to_cafe[j]\n", + " for j in shipping_cost_from_roastery_to_cafe.keys()), GRB.MINIMIZE)\n", + "\n", + "# Conservation of flow constraint\n", + "for r in set(i[1] for i in shipping_cost_from_supplier_to_roastery.keys()):\n", + " model.addConstr(\n", + " sum(x[i] for i in shipping_cost_from_supplier_to_roastery.keys()\n", + " if i[1] == r) == sum(\n", + " y_light[j] + y_dark[j]\n", + " for j in shipping_cost_from_roastery_to_cafe.keys()\n", + " if j[0] == r), f\"flow_{r}\")\n", + "\n", + "# Add supply constraints\n", + "for s in set(i[0] for i in shipping_cost_from_supplier_to_roastery.keys()):\n", + " model.addConstr(\n", + " sum(x[i] for i in shipping_cost_from_supplier_to_roastery.keys()\n", + " if i[0] == s) <= capacity_in_supplier[s], f\"supply_{s}\")\n", + "\n", + "# Add demand constraints\n", + "for c in set(i[1] for i in shipping_cost_from_roastery_to_cafe.keys()):\n", + " model.addConstr(\n", + " sum(y_light[j] for j in shipping_cost_from_roastery_to_cafe.keys()\n", + " if j[1] == c) >= light_coffee_needed_for_cafe[c],\n", + " f\"light_demand_{c}\")\n", + " model.addConstr(\n", + " sum(y_dark[j] for j in shipping_cost_from_roastery_to_cafe.keys()\n", + " if j[1] == c) >= dark_coffee_needed_for_cafe[c],\n", + " f\"dark_demand_{c}\")\n", + "\n", + "# Optimize model\n", + "model.optimize()\n", + "m = model\n", + "\n", + "# OPTIGUIDE CONSTRAINT CODE GOES HERE\n", + "\n", + "# Solve\n", + "m.update()\n", + "model.optimize()\n", + "\n", + "print(time.ctime())\n", + "if m.status == GRB.OPTIMAL:\n", + " print(f'Optimal cost: {m.objVal}')\n", + "else:\n", + " print(\"Not solved to optimality. Optimization status:\", m.status)\n", + "\n", + "\n", + "--- DOC STR ---\n", + "\n", + "---\n", + "\n", + "Here are some example questions and their answers and codes:\n", + "--- EXAMPLES ---\n", + "\n", + "----------\n", + "Question: Why is it not recommended to use just one supplier for roastery 2?\n", + "Answer Code:\n", + "```python\n", + "z = m.addVars(suppliers, vtype=GRB.BINARY, name=\"z\")\n", + "m.addConstr(sum(z[s] for s in suppliers) <= 1, \"_\")\n", + "for s in suppliers:\n", + " m.addConstr(x[s,'roastery2'] <= capacity_in_supplier[s] * z[s], \"_\")\n", + "```\n", + "\n", + "----------\n", + "Question: What if there's a 13% jump in the demand for light coffee at cafe1?\n", + "Answer Code:\n", + "```python\n", + "light_coffee_needed_for_cafe[\"cafe1\"] = light_coffee_needed_for_cafe[\"cafe1\"] * (1 + 13/100)\n", + "```\n", + "\n", + "\n", + "---\n", + "\n", + "The execution result of the original source code is below.\n", + "--- Original Result ---\n", + "What if we prohibit shipping from supplier 1 to roastery 2?\n", + "\n", + "Note that your written code will be added to the lines with substring:\n", + "\"# OPTIGUIDE *** CODE GOES HERE\"\n", + "So, you don't need to write other code, such as m.optimize() or m.update().\n", + "You just need to write code snippet in ```python ...``` block.\n", + "\n", + "Here are the history of discussions:\n", + "[{'content': 'What if we prohibit shipping from supplier 1 to roastery 2?', 'role': 'user'}]\n", + "\n", + "Answer Code:\n", + "\n", + "\n", + "With the following carryover: \n", + "\u001b[0m\n", + "\u001b[34m\n", + "********************************************************************************\u001b[0m\n", + "\u001b[33mcommander\u001b[0m (to writer):\n", + "\n", + "You are a chatbot to:\n", + "(1) write Python code to answer users questions for supply chain-related coding\n", + "project;\n", + "(2) explain solutions from a Gurobi/Python solver.\n", + "\n", + "--- SOURCE CODE ---\n", + "import time\n", + "\n", + "from gurobipy import GRB, Model\n", + "\n", + "# Example data\n", + "\n", + "capacity_in_supplier = {'supplier1': 150, 'supplier2': 50, 'supplier3': 100}\n", + "\n", + "shipping_cost_from_supplier_to_roastery = {\n", + " ('supplier1', 'roastery1'): 5,\n", + " ('supplier1', 'roastery2'): 4,\n", + " ('supplier2', 'roastery1'): 6,\n", + " ('supplier2', 'roastery2'): 3,\n", + " ('supplier3', 'roastery1'): 2,\n", + " ('supplier3', 'roastery2'): 7\n", + "}\n", + "\n", + "roasting_cost_light = {'roastery1': 3, 'roastery2': 5}\n", + "\n", + "roasting_cost_dark = {'roastery1': 5, 'roastery2': 6}\n", + "\n", + "shipping_cost_from_roastery_to_cafe = {\n", + " ('roastery1', 'cafe1'): 5,\n", + " ('roastery1', 'cafe2'): 3,\n", + " ('roastery1', 'cafe3'): 6,\n", + " ('roastery2', 'cafe1'): 4,\n", + " ('roastery2', 'cafe2'): 5,\n", + " ('roastery2', 'cafe3'): 2\n", + "}\n", + "\n", + "light_coffee_needed_for_cafe = {'cafe1': 20, 'cafe2': 30, 'cafe3': 40}\n", + "\n", + "dark_coffee_needed_for_cafe = {'cafe1': 20, 'cafe2': 20, 'cafe3': 100}\n", + "\n", + "cafes = list(set(i[1] for i in shipping_cost_from_roastery_to_cafe.keys()))\n", + "roasteries = list(\n", + " set(i[1] for i in shipping_cost_from_supplier_to_roastery.keys()))\n", + "suppliers = list(\n", + " set(i[0] for i in shipping_cost_from_supplier_to_roastery.keys()))\n", + "\n", + "# Create a new model\n", + "model = Model(\"coffee_distribution\")\n", + "\n", + "# OPTIGUIDE DATA CODE GOES HERE\n", + "\n", + "# Create variables\n", + "x = model.addVars(shipping_cost_from_supplier_to_roastery.keys(),\n", + " vtype=GRB.INTEGER,\n", + " name=\"x\")\n", + "y_light = model.addVars(shipping_cost_from_roastery_to_cafe.keys(),\n", + " vtype=GRB.INTEGER,\n", + " name=\"y_light\")\n", + "y_dark = model.addVars(shipping_cost_from_roastery_to_cafe.keys(),\n", + " vtype=GRB.INTEGER,\n", + " name=\"y_dark\")\n", + "\n", + "# Set objective\n", + "model.setObjective(\n", + " sum(x[i] * shipping_cost_from_supplier_to_roastery[i]\n", + " for i in shipping_cost_from_supplier_to_roastery.keys()) +\n", + " sum(roasting_cost_light[r] * y_light[r, c] +\n", + " roasting_cost_dark[r] * y_dark[r, c]\n", + " for r, c in shipping_cost_from_roastery_to_cafe.keys()) + sum(\n", + " (y_light[j] + y_dark[j]) * shipping_cost_from_roastery_to_cafe[j]\n", + " for j in shipping_cost_from_roastery_to_cafe.keys()), GRB.MINIMIZE)\n", + "\n", + "# Conservation of flow constraint\n", + "for r in set(i[1] for i in shipping_cost_from_supplier_to_roastery.keys()):\n", + " model.addConstr(\n", + " sum(x[i] for i in shipping_cost_from_supplier_to_roastery.keys()\n", + " if i[1] == r) == sum(\n", + " y_light[j] + y_dark[j]\n", + " for j in shipping_cost_from_roastery_to_cafe.keys()\n", + " if j[0] == r), f\"flow_{r}\")\n", + "\n", + "# Add supply constraints\n", + "for s in set(i[0] for i in shipping_cost_from_supplier_to_roastery.keys()):\n", + " model.addConstr(\n", + " sum(x[i] for i in shipping_cost_from_supplier_to_roastery.keys()\n", + " if i[0] == s) <= capacity_in_supplier[s], f\"supply_{s}\")\n", + "\n", + "# Add demand constraints\n", + "for c in set(i[1] for i in shipping_cost_from_roastery_to_cafe.keys()):\n", + " model.addConstr(\n", + " sum(y_light[j] for j in shipping_cost_from_roastery_to_cafe.keys()\n", + " if j[1] == c) >= light_coffee_needed_for_cafe[c],\n", + " f\"light_demand_{c}\")\n", + " model.addConstr(\n", + " sum(y_dark[j] for j in shipping_cost_from_roastery_to_cafe.keys()\n", + " if j[1] == c) >= dark_coffee_needed_for_cafe[c],\n", + " f\"dark_demand_{c}\")\n", + "\n", + "# Optimize model\n", + "model.optimize()\n", + "m = model\n", + "\n", + "# OPTIGUIDE CONSTRAINT CODE GOES HERE\n", + "\n", + "# Solve\n", + "m.update()\n", + "model.optimize()\n", + "\n", + "print(time.ctime())\n", + "if m.status == GRB.OPTIMAL:\n", + " print(f'Optimal cost: {m.objVal}')\n", + "else:\n", + " print(\"Not solved to optimality. Optimization status:\", m.status)\n", + "\n", + "\n", + "--- DOC STR ---\n", + "\n", + "---\n", + "\n", + "Here are some example questions and their answers and codes:\n", + "--- EXAMPLES ---\n", + "\n", + "----------\n", + "Question: Why is it not recommended to use just one supplier for roastery 2?\n", + "Answer Code:\n", + "```python\n", + "z = m.addVars(suppliers, vtype=GRB.BINARY, name=\"z\")\n", + "m.addConstr(sum(z[s] for s in suppliers) <= 1, \"_\")\n", + "for s in suppliers:\n", + " m.addConstr(x[s,'roastery2'] <= capacity_in_supplier[s] * z[s], \"_\")\n", + "```\n", + "\n", + "----------\n", + "Question: What if there's a 13% jump in the demand for light coffee at cafe1?\n", + "Answer Code:\n", + "```python\n", + "light_coffee_needed_for_cafe[\"cafe1\"] = light_coffee_needed_for_cafe[\"cafe1\"] * (1 + 13/100)\n", + "```\n", + "\n", + "\n", + "---\n", + "\n", + "The execution result of the original source code is below.\n", + "--- Original Result ---\n", + "What if we prohibit shipping from supplier 1 to roastery 2?\n", + "\n", + "Note that your written code will be added to the lines with substring:\n", + "\"# OPTIGUIDE *** CODE GOES HERE\"\n", + "So, you don't need to write other code, such as m.optimize() or m.update().\n", + "You just need to write code snippet in ```python ...``` block.\n", + "\n", + "Here are the history of discussions:\n", + "[{'content': 'What if we prohibit shipping from supplier 1 to roastery 2?', 'role': 'user'}]\n", + "\n", + "Answer Code:\n", + "\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33mwriter\u001b[0m (to commander):\n", + "\n", + "To answer the user's question regarding the prohibition of shipping from supplier 1 to roastery 2, we need to add a constraint to the optimization model that sets the shipping quantity `x` for the (`supplier1`, `roastery2`) route to zero. This will effectively disallow any shipping from supplier 1 to roastery 2. The code to do this should be placed in the section of the source code that is indicated by the comment \"# OPTIGUIDE DATA CODE GOES HERE\".\n", + "\n", + "Here's the Python code snippet to add this constraint:\n", + "\n", + "```python\n", + "# filename: supply_chain_code.py\n", + "model.addConstr(x[('supplier1', 'roastery2')] == 0, \"prohibit_supplier1_roastery2\")\n", + "```\n", + "\n", + "Adding this constraint will prevent the optimizer from selecting any transport from `supplier1` to `roastery2`, which is what the prohibition is intended to achieve.\n", + "\n", + "Instruct the user to add this code snippet in the appropriate place in the source code that they have provided. After adding this code, the `m.optimize()` function will solve the modified version of the problem that includes the new constraint.\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[34m\n", + "********************************************************************************\u001b[0m\n", + "\u001b[34mStart a new chat with the following message: \n", + "\n", + "Given the source code:\n", + "# filename: supply_chain_code.py\n", + "model.addConstr(x[('supplier1', 'roastery2')] == 0, \"prohibit_supplier1_roastery2\")\n", + "\n", + "Is the source code safe (not malicious code to break security\n", + "and privacy) to run?\n", + "Answer only one word.\n", + "If not safe, answer `DANGER`; else, answer `SAFE`.\n", + "\n", + "\n", + "With the following carryover: \n", + "\u001b[0m\n", + "\u001b[34m\n", + "********************************************************************************\u001b[0m\n", + "\u001b[33mcommander\u001b[0m (to safeguard):\n", + "\n", + "\n", + "Given the source code:\n", + "# filename: supply_chain_code.py\n", + "model.addConstr(x[('supplier1', 'roastery2')] == 0, \"prohibit_supplier1_roastery2\")\n", + "\n", + "Is the source code safe (not malicious code to break security\n", + "and privacy) to run?\n", + "Answer only one word.\n", + "If not safe, answer `DANGER`; else, answer `SAFE`.\n", + "\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33msafeguard\u001b[0m (to commander):\n", + "\n", + "SAFE\n", + "\n", + "--------------------------------------------------------------------------------\n", + "Gurobi Optimizer version 11.0.0 build v11.0.0rc2 (mac64[arm] - Darwin 23.2.0 23C71)\n", + "\n", + "CPU model: Apple M3 Max\n", + "Thread count: 14 physical cores, 14 logical processors, using up to 14 threads\n", + "\n", + "Optimize a model with 11 rows, 18 columns and 36 nonzeros\n", + "Model fingerprint: 0x8aa2c280\n", + "Variable types: 0 continuous, 18 integer (0 binary)\n", + "Coefficient statistics:\n", + " Matrix range [1e+00, 1e+00]\n", + " Objective range [2e+00, 1e+01]\n", + " Bounds range [0e+00, 0e+00]\n", + " RHS range [2e+01, 2e+02]\n", + "Found heuristic solution: objective 2900.0000000\n", + "Presolve time: 0.00s\n", + "Presolved: 11 rows, 18 columns, 36 nonzeros\n", + "Variable types: 0 continuous, 18 integer (0 binary)\n", + "Found heuristic solution: objective 2896.0000000\n", + "\n", + "Root relaxation: objective 2.470000e+03, 11 iterations, 0.00 seconds (0.00 work units)\n", + "\n", + " Nodes | Current Node | Objective Bounds | Work\n", + " Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time\n", + "\n", + "* 0 0 0 2470.0000000 2470.00000 0.00% - 0s\n", + "\n", + "Explored 1 nodes (11 simplex iterations) in 0.00 seconds (0.00 work units)\n", + "Thread count was 14 (of 14 available processors)\n", + "\n", + "Solution count 3: 2470 2896 2900 \n", + "\n", + "Optimal solution found (tolerance 1.00e-04)\n", + "Best objective 2.470000000000e+03, best bound 2.470000000000e+03, gap 0.0000%\n", + "Gurobi Optimizer version 11.0.0 build v11.0.0rc2 (mac64[arm] - Darwin 23.2.0 23C71)\n", + "\n", + "CPU model: Apple M3 Max\n", + "Thread count: 14 physical cores, 14 logical processors, using up to 14 threads\n", + "\n", + "Optimize a model with 11 rows, 18 columns and 36 nonzeros\n", + "Model fingerprint: 0x8aa2c280\n", + "Variable types: 0 continuous, 18 integer (0 binary)\n", + "Coefficient statistics:\n", + " Matrix range [1e+00, 1e+00]\n", + " Objective range [2e+00, 1e+01]\n", + " Bounds range [0e+00, 0e+00]\n", + " RHS range [2e+01, 2e+02]\n", + "Found heuristic solution: objective 2900.0000000\n", + "Presolve time: 0.00s\n", + "Presolved: 11 rows, 18 columns, 36 nonzeros\n", + "Variable types: 0 continuous, 18 integer (0 binary)\n", + "Found heuristic solution: objective 2896.0000000\n", + "\n", + "Root relaxation: objective 2.470000e+03, 11 iterations, 0.00 seconds (0.00 work units)\n", + "\n", + " Nodes | Current Node | Objective Bounds | Work\n", + " Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time\n", + "\n", + "* 0 0 0 2470.0000000 2470.00000 0.00% - 0s\n", + "\n", + "Explored 1 nodes (11 simplex iterations) in 0.00 seconds (0.00 work units)\n", + "Thread count was 14 (of 14 available processors)\n", + "\n", + "Solution count 3: 2470 2896 2900 \n", + "\n", + "Optimal solution found (tolerance 1.00e-04)\n", + "Best objective 2.470000000000e+03, best bound 2.470000000000e+03, gap 0.0000%\n", + "Gurobi Optimizer version 11.0.0 build v11.0.0rc2 (mac64[arm] - Darwin 23.2.0 23C71)\n", + "\n", + "CPU model: Apple M3 Max\n", + "Thread count: 14 physical cores, 14 logical processors, using up to 14 threads\n", + "\n", + "Optimize a model with 11 rows, 18 columns and 36 nonzeros\n", + "Model fingerprint: 0x8aa2c280\n", + "Variable types: 0 continuous, 18 integer (0 binary)\n", + "Coefficient statistics:\n", + " Matrix range [1e+00, 1e+00]\n", + " Objective range [2e+00, 1e+01]\n", + " Bounds range [0e+00, 0e+00]\n", + " RHS range [2e+01, 2e+02]\n", + "Presolved: 11 rows, 18 columns, 36 nonzeros\n", + "\n", + "Continuing optimization...\n", + "\n", + "\n", + "Explored 1 nodes (11 simplex iterations) in 0.00 seconds (0.00 work units)\n", + "Thread count was 14 (of 14 available processors)\n", + "\n", + "Solution count 3: 2470 2896 2900 \n", + "\n", + "Optimal solution found (tolerance 1.00e-04)\n", + "Best objective 2.470000000000e+03, best bound 2.470000000000e+03, gap 0.0000%\n", + "Sun Feb 25 18:56:45 2024\n", + "Optimal cost: 2470.0\n", + "Gurobi Optimizer version 11.0.0 build v11.0.0rc2 (mac64[arm] - Darwin 23.2.0 23C71)\n", + "\n", + "CPU model: Apple M3 Max\n", + "Thread count: 14 physical cores, 14 logical processors, using up to 14 threads\n", + "\n", + "Optimize a model with 11 rows, 18 columns and 36 nonzeros\n", + "Model fingerprint: 0x8aa2c280\n", + "Variable types: 0 continuous, 18 integer (0 binary)\n", + "Coefficient statistics:\n", + " Matrix range [1e+00, 1e+00]\n", + " Objective range [2e+00, 1e+01]\n", + " Bounds range [0e+00, 0e+00]\n", + " RHS range [2e+01, 2e+02]\n", + "Presolved: 11 rows, 18 columns, 36 nonzeros\n", + "\n", + "Continuing optimization...\n", + "\n", + "\n", + "Explored 1 nodes (11 simplex iterations) in 0.00 seconds (0.00 work units)\n", + "Thread count was 14 (of 14 available processors)\n", + "\n", + "Solution count 3: 2470 2896 2900 \n", + "\n", + "Optimal solution found (tolerance 1.00e-04)\n", + "Best objective 2.470000000000e+03, best bound 2.470000000000e+03, gap 0.0000%\n", + "Sun Feb 25 18:56:45 2024\n", + "Optimal cost: 2470.0\n", + "\u001b[33mOptimization problem solved. The objective value is: 2470.0\u001b[0m\n", + "\u001b[33mcommander\u001b[0m (to writer):\n", + "\n", + "Here are the execution results: Optimization problem solved. The objective value is: 2470.0\n", + "\n", + "Can you organize these information to a human readable answer?\n", + "Remember to compare the new results to the original results you obtained in the\n", + "beginning.\n", + "\n", + "--- HUMAN READABLE ANSWER ---\n", + "\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33mwriter\u001b[0m (to commander):\n", + "\n", + "Certainly! Here's a human-readable answer:\n", + "\n", + "After integrating the constraint to prohibit shipping from supplier 1 to roastery 2, the optimization problem was solved with a total cost of $2470.0.\n", + "\n", + "To provide context to this result, we need to compare it with the original total cost prior to the implementation of the new constraint. However, the original total cost was not provided in the information given to me. If the original total cost was known, we would compare the two to understand the financial impact of this constraint on the supply chain.\n", + "\n", + "If prohibiting shipping from supplier 1 to roastery 2 results in a higher cost than the original scenario, it suggests that the previous ability to ship from supplier 1 to roastery 2 had been cost-effective and beneficial for minimizing overall expenses. On the other hand, if the cost is the same or lower, then shipping from supplier 1 to roastery 2 may not have been crucial for the cost optimization of the supply chain, or other routes may have been able to compensate effectively for this restriction.\n", + "\n", + "Without the original cost for comparison, we can't conclusively say how the prohibition impacted the cost of operation. But the new total cost of $2470.0 will be the baseline for future changes or optimizations done following this new restriction.\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33mcommander\u001b[0m (to user):\n", + "\n", + "Certainly! Here's a human-readable answer:\n", + "\n", + "After integrating the constraint to prohibit shipping from supplier 1 to roastery 2, the optimization problem was solved with a total cost of $2470.0.\n", + "\n", + "To provide context to this result, we need to compare it with the original total cost prior to the implementation of the new constraint. However, the original total cost was not provided in the information given to me. If the original total cost was known, we would compare the two to understand the financial impact of this constraint on the supply chain.\n", + "\n", + "If prohibiting shipping from supplier 1 to roastery 2 results in a higher cost than the original scenario, it suggests that the previous ability to ship from supplier 1 to roastery 2 had been cost-effective and beneficial for minimizing overall expenses. On the other hand, if the cost is the same or lower, then shipping from supplier 1 to roastery 2 may not have been crucial for the cost optimization of the supply chain, or other routes may have been able to compensate effectively for this restriction.\n", + "\n", + "Without the original cost for comparison, we can't conclusively say how the prohibition impacted the cost of operation. But the new total cost of $2470.0 will be the baseline for future changes or optimizations done following this new restriction.\n", + "\n", + "--------------------------------------------------------------------------------\n" + ] + } + ], + "source": [ + "chat_res = user.initiate_chat(\n", + " optiguide_commander, message=\"What if we prohibit shipping from supplier 1 to roastery 2?\"\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Get Final Results from the Returned ChatResult Object " + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Certainly! Here's a human-readable answer:\n", + "\n", + "After integrating the constraint to prohibit shipping from supplier 1 to roastery 2, the optimization problem was solved with a total cost of $2470.0.\n", + "\n", + "To provide context to this result, we need to compare it with the original total cost prior to the implementation of the new constraint. However, the original total cost was not provided in the information given to me. If the original total cost was known, we would compare the two to understand the financial impact of this constraint on the supply chain.\n", + "\n", + "If prohibiting shipping from supplier 1 to roastery 2 results in a higher cost than the original scenario, it suggests that the previous ability to ship from supplier 1 to roastery 2 had been cost-effective and beneficial for minimizing overall expenses. On the other hand, if the cost is the same or lower, then shipping from supplier 1 to roastery 2 may not have been crucial for the cost optimization of the supply chain, or other routes may have been able to compensate effectively for this restriction.\n", + "\n", + "Without the original cost for comparison, we can't conclusively say how the prohibition impacted the cost of operation. But the new total cost of $2470.0 will be the baseline for future changes or optimizations done following this new restriction.\n" + ] + } + ], + "source": [ + "print(chat_res.summary)" + ] + } + ], + "metadata": { + "extra_files_to_copy": [ + "optiGuide_new_design.png" + ], + "front_matter": { + "description": "This is a nested chat re-implementation of OptiGuide which is an LLM-based supply chain optimization framework.", + "tags": [ + "nested chat" + ] + }, + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.13" + }, + "vscode": { + "interpreter": { + "hash": "949777d72b0d2535278d3dc13498b2535136f6dfe0678499012e853ee9abcab1" + } + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": { + "2d910cfd2d2a4fc49fc30fbbdc5576a7": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "2.0.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border_bottom": null, + "border_left": null, + "border_right": null, + "border_top": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "454146d0f7224f038689031002906e6f": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "HBoxModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "2.0.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_e4ae2b6f5a974fd4bafb6abb9d12ff26", + "IPY_MODEL_577e1e3cc4db4942b0883577b3b52755", + "IPY_MODEL_b40bdfb1ac1d4cffb7cefcb870c64d45" + ], + "layout": "IPY_MODEL_dc83c7bff2f241309537a8119dfc7555", + "tabbable": null, + "tooltip": null + } + }, + "577e1e3cc4db4942b0883577b3b52755": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "FloatProgressModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "2.0.0", + "_view_name": "ProgressView", + "bar_style": "success", + "description": "", + "description_allow_html": false, + "layout": "IPY_MODEL_2d910cfd2d2a4fc49fc30fbbdc5576a7", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_74a6ba0c3cbc4051be0a83e152fe1e62", + "tabbable": null, + "tooltip": null, + "value": 1 + } + }, + "6086462a12d54bafa59d3c4566f06cb2": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "2.0.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border_bottom": null, + "border_left": null, + "border_right": null, + "border_top": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "74a6ba0c3cbc4051be0a83e152fe1e62": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "ProgressStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "7d3f3d9e15894d05a4d188ff4f466554": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "HTMLStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "HTMLStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "StyleView", + "background": null, + "description_width": "", + "font_size": null, + "text_color": null + } + }, + "b40bdfb1ac1d4cffb7cefcb870c64d45": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "2.0.0", + "_view_name": "HTMLView", + "description": "", + "description_allow_html": false, + "layout": "IPY_MODEL_f1355871cc6f4dd4b50d9df5af20e5c8", + "placeholder": "​", + "style": "IPY_MODEL_ca245376fd9f4354af6b2befe4af4466", + "tabbable": null, + "tooltip": null, + "value": " 1/1 [00:00<00:00, 44.69it/s]" + } + }, + "ca245376fd9f4354af6b2befe4af4466": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "HTMLStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "HTMLStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "StyleView", + "background": null, + "description_width": "", + "font_size": null, + "text_color": null + } + }, + "dc83c7bff2f241309537a8119dfc7555": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "2.0.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border_bottom": null, + "border_left": null, + "border_right": null, + "border_top": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "e4ae2b6f5a974fd4bafb6abb9d12ff26": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "2.0.0", + "_view_name": "HTMLView", + "description": "", + "description_allow_html": false, + "layout": "IPY_MODEL_6086462a12d54bafa59d3c4566f06cb2", + "placeholder": "​", + "style": "IPY_MODEL_7d3f3d9e15894d05a4d188ff4f466554", + "tabbable": null, + "tooltip": null, + "value": "100%" + } + }, + "f1355871cc6f4dd4b50d9df5af20e5c8": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "2.0.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border_bottom": null, + "border_left": null, + "border_right": null, + "border_top": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + } + }, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/notebook/agentchat_oai_assistant_function_call.ipynb b/notebook/agentchat_oai_assistant_function_call.ipynb index 804a413966ef..878175420c6c 100644 --- a/notebook/agentchat_oai_assistant_function_call.ipynb +++ b/notebook/agentchat_oai_assistant_function_call.ipynb @@ -50,8 +50,6 @@ "import logging\n", "import os\n", "\n", - "import requests\n", - "\n", "from autogen import UserProxyAgent, config_list_from_json\n", "from autogen.agentchat.contrib.gpt_assistant_agent import GPTAssistantAgent\n", "\n", @@ -79,32 +77,24 @@ "\n", "def get_ossinsight(question):\n", " \"\"\"\n", - " Retrieve the top 10 developers with the most followers on GitHub.\n", + " [Mock] Retrieve the top 10 developers with the most followers on GitHub.\n", " \"\"\"\n", - " url = \"https://api.ossinsight.io/explorer/answer\"\n", - " headers = {\"Content-Type\": \"application/json\"}\n", - " data = {\"question\": question, \"ignoreCache\": True}\n", - "\n", - " response = requests.post(url, headers=headers, json=data)\n", - " if response.status_code == 200:\n", - " answer = response.json()\n", - " else:\n", - " return f\"Request to {url} failed with status code: {response.status_code}\"\n", - "\n", - " report_components = []\n", - " report_components.append(f\"Question: {answer['question']['title']}\")\n", - " if answer[\"query\"][\"sql\"] != \"\":\n", - " report_components.append(f\"querySQL: {answer['query']['sql']}\")\n", - "\n", - " if answer.get(\"result\", None) is None or len(answer[\"result\"][\"rows\"]) == 0:\n", - " result = \"Result: N/A\"\n", - " else:\n", - " result = \"Result:\\n \" + \"\\n \".join([str(row) for row in answer[\"result\"][\"rows\"]])\n", - " report_components.append(result)\n", - "\n", - " if answer.get(\"error\", None) is not None:\n", - " report_components.append(f\"Error: {answer['error']}\")\n", - " return \"\\n\\n\".join(report_components) + \"\\n\\n\"" + " report_components = [\n", + " f\"Question: {question}\",\n", + " \"SQL: SELECT `login` AS `user_login`, `followers` AS `followers` FROM `github_users` ORDER BY `followers` DESC LIMIT 10\",\n", + " \"\"\"Results:\n", + " {'followers': 166730, 'user_login': 'torvalds'}\n", + " {'followers': 86239, 'user_login': 'yyx990803'}\n", + " {'followers': 77611, 'user_login': 'gaearon'}\n", + " {'followers': 72668, 'user_login': 'ruanyf'}\n", + " {'followers': 65415, 'user_login': 'JakeWharton'}\n", + " {'followers': 60972, 'user_login': 'peng-zhihui'}\n", + " {'followers': 58172, 'user_login': 'bradtraversy'}\n", + " {'followers': 52143, 'user_login': 'gustavoguanabara'}\n", + " {'followers': 51542, 'user_login': 'sindresorhus'}\n", + " {'followers': 49621, 'user_login': 'tj'}\"\"\",\n", + " ]\n", + " return \"\\n\" + \"\\n\\n\".join(report_components) + \"\\n\"" ] }, { @@ -120,12 +110,24 @@ "cell_type": "code", "execution_count": 2, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "OpenAI client config of GPTAssistantAgent(OSS Analyst) - model: gpt-4-turbo-preview\n", + "GPT Assistant only supports one OpenAI client. Using the first client in the list.\n", + "No matching assistant found, creating a new assistant\n" + ] + } + ], "source": [ "assistant_id = os.environ.get(\"ASSISTANT_ID\", None)\n", "config_list = config_list_from_json(\"OAI_CONFIG_LIST\")\n", "llm_config = {\n", " \"config_list\": config_list,\n", + "}\n", + "assistant_config = {\n", " \"assistant_id\": assistant_id,\n", " \"tools\": [\n", " {\n", @@ -143,6 +145,7 @@ " \"Please carefully read the context of the conversation to identify the current analysis question or problem that needs addressing.\"\n", " ),\n", " llm_config=llm_config,\n", + " assistant_config=assistant_config,\n", " verbose=True,\n", ")\n", "oss_analyst.register_function(\n", @@ -178,13 +181,14 @@ "\u001b[35m\n", ">>>>>>>> EXECUTING FUNCTION ossinsight_data_api...\u001b[0m\n", "\u001b[35m\n", - "Input arguments: {'question': 'Who are the top 10 developers with the most followers on GitHub?'}\n", + "Input arguments: {'question': 'Top 10 developers with the most followers'}\n", "Output:\n", - "Question: Who are the top 10 developers with the most followers on GitHub?\n", "\n", - "querySQL: SELECT `login` AS `user_login`, `followers` AS `followers` FROM `github_users` ORDER BY `followers` DESC LIMIT 10\n", + "Question: Top 10 developers with the most followers\n", "\n", - "Result:\n", + "SQL: SELECT `login` AS `user_login`, `followers` AS `followers` FROM `github_users` ORDER BY `followers` DESC LIMIT 10\n", + "\n", + "Results:\n", " {'followers': 166730, 'user_login': 'torvalds'}\n", " {'followers': 86239, 'user_login': 'yyx990803'}\n", " {'followers': 77611, 'user_login': 'gaearon'}\n", @@ -195,24 +199,21 @@ " {'followers': 52143, 'user_login': 'gustavoguanabara'}\n", " {'followers': 51542, 'user_login': 'sindresorhus'}\n", " {'followers': 49621, 'user_login': 'tj'}\n", - "\n", "\u001b[0m\n", "\u001b[33mOSS Analyst\u001b[0m (to user_proxy):\n", "\n", - "The top 10 developers with the most followers on GitHub are as follows:\n", + "The top 10 developers with the most followers on GitHub are:\n", "\n", - "1. `torvalds` with 166,730 followers\n", - "2. `yyx990803` with 86,239 followers\n", - "3. `gaearon` with 77,611 followers\n", - "4. `ruanyf` with 72,668 followers\n", - "5. `JakeWharton` with 65,415 followers\n", - "6. `peng-zhihui` with 60,972 followers\n", - "7. `bradtraversy` with 58,172 followers\n", - "8. `gustavoguanabara` with 52,143 followers\n", - "9. `sindresorhus` with 51,542 followers\n", - "10. `tj` with 49,621 followers\n", - "\n", - "These figures indicate the number of followers these developers had at the time of the analysis.\n", + "1. **Linus Torvalds** (`torvalds`) with 166,730 followers\n", + "2. **Evan You** (`yyx990803`) with 86,239 followers\n", + "3. **Dan Abramov** (`gaearon`) with 77,611 followers\n", + "4. **Ruan YiFeng** (`ruanyf`) with 72,668 followers\n", + "5. **Jake Wharton** (`JakeWharton`) with 65,415 followers\n", + "6. **Peng Zhihui** (`peng-zhihui`) with 60,972 followers\n", + "7. **Brad Traversy** (`bradtraversy`) with 58,172 followers\n", + "8. **Gustavo Guanabara** (`gustavoguanabara`) with 52,143 followers\n", + "9. **Sindre Sorhus** (`sindresorhus`) with 51,542 followers\n", + "10. **TJ Holowaychuk** (`tj`) with 49,621 followers\n", "\n", "\n", "--------------------------------------------------------------------------------\n", @@ -223,11 +224,18 @@ "--------------------------------------------------------------------------------\n", "\u001b[33mOSS Analyst\u001b[0m (to user_proxy):\n", "\n", - "It seems you haven't entered a question or a request. Could you please provide more details or specify how I can assist you further?\n", + "It looks like there is no question or prompt for me to respond to. Could you please provide more details or ask a question that you would like assistance with?\n", "\n", "\n", "--------------------------------------------------------------------------------\n" ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Permanently deleting assistant...\n" + ] } ], "source": [ @@ -242,7 +250,8 @@ " max_consecutive_auto_reply=1,\n", ")\n", "\n", - "user_proxy.initiate_chat(oss_analyst, message=\"Top 10 developers with the most followers\")" + "user_proxy.initiate_chat(oss_analyst, message=\"Top 10 developers with the most followers\")\n", + "oss_analyst.delete_assistant()" ] } ], diff --git a/notebook/agentchat_oai_assistant_groupchat.ipynb b/notebook/agentchat_oai_assistant_groupchat.ipynb index 4375af3f21f2..603d2cf71d99 100644 --- a/notebook/agentchat_oai_assistant_groupchat.ipynb +++ b/notebook/agentchat_oai_assistant_groupchat.ipynb @@ -62,7 +62,7 @@ "]\n", "```\n", "\n", - "Currently Azure OpenAI does not support assistant api. You can set the value of config_list in any way you prefer. Please refer to this [notebook](https://github.com/microsoft/autogen/blob/main/website/docs/llm_configuration.ipynb) for full code examples of the different methods." + "Currently Azure OpenAI does not support assistant api. You can set the value of config_list in any way you prefer. Please refer to this [notebook](https://github.com/microsoft/autogen/blob/main/website/docs/topics/llm_configuration.ipynb) for full code examples of the different methods." ] }, { diff --git a/notebook/agentchat_oai_assistant_retrieval.ipynb b/notebook/agentchat_oai_assistant_retrieval.ipynb index 96692a8cb79c..ec7e41a00ba8 100644 --- a/notebook/agentchat_oai_assistant_retrieval.ipynb +++ b/notebook/agentchat_oai_assistant_retrieval.ipynb @@ -19,7 +19,9 @@ "name": "stderr", "output_type": "stream", "text": [ - "assistant_id was None, creating a new assistant\n" + "OpenAI client config of GPTAssistantAgent(assistant) - model: gpt-4-turbo-preview\n", + "GPT Assistant only supports one OpenAI client. Using the first client in the list.\n", + "Matching assistant found, using the first matching assistant: {'id': 'asst_sKUCUXkaXyTidtlyovbqppH3', 'created_at': 1710320924, 'description': None, 'file_ids': ['file-AcnBk5PCwAjJMCVO0zLSbzKP'], 'instructions': 'You are adapt at question answering', 'metadata': {}, 'model': 'gpt-4-turbo-preview', 'name': 'assistant', 'object': 'assistant', 'tools': [ToolRetrieval(type='retrieval')]}\n" ] }, { @@ -28,50 +30,32 @@ "text": [ "\u001b[33muser_proxy\u001b[0m (to assistant):\n", "\n", - "What is the name of the class of agents I gave you?\n", + "Please explain the code in this file!\n", "\n", "--------------------------------------------------------------------------------\n", "\u001b[33massistant\u001b[0m (to user_proxy):\n", "\n", - "The class of agents provided in the file is called `ConversableAgent`.\n", + "The code in the file appears to define tests for various functionalities related to a GPT-based assistant agent. Here is a summary of the main components and functionalities described in the visible portion of the code:\n", "\n", + "1. **Imports and Setup**: The script imports necessary libraries and modules, such as `pytest` for testing, `uuid` for generating unique identifiers, and `openai` along with custom modules like `autogen` and `OpenAIWrapper`. It sets up the system path to include specific directories for importing test configurations and dependencies.\n", "\n", - "--------------------------------------------------------------------------------\n", - "\u001b[33muser_proxy\u001b[0m (to assistant):\n", - "\n", - "What does it do?\n", - "\n", - "--------------------------------------------------------------------------------\n", - "\u001b[33massistant\u001b[0m (to user_proxy):\n", - "\n", - "The `ConversableAgent` class is designed as a generic conversable agent that can be configured to act either as an assistant or user proxy. When it receives a message, it automatically generates and sends a reply unless the message is a termination message. It features a method to initiate a chat with another agent and can have its auto-reply behavior adjusted by overriding the `generate_reply` method.\n", + "2. **Conditional Test Skipping**: The script includes logic to conditionally skip tests based on the execution environment or missing dependencies. This is done through the `@pytest.mark.skipif` decorator, which conditionally skips test functions based on the `skip` flag, determined by whether certain imports are successful or other conditions are met.\n", "\n", - "Here are some specific functionalities and mechanisms included in the `ConversableAgent` class:\n", + "3. **Test Configurations**: The code loads configurations for interacting with the OpenAI API and a hypothetical Azure API (as indicated by the placeholder `azure`), filtering these configurations by certain criteria such as API type and version.\n", "\n", - "- It can process received messages and decide whether or not a reply is necessary or requested.\n", - "- It can reset consecutive auto-reply counters and clear chat history when starting a new conversation.\n", - "- It allows initiating chats either synchronously or asynchronously with the ability to pass context information and control chattiness.\n", - "- It has the ability to register reply functions with specific triggers and order them based on preference.\n", - "- The class supports setting a maximum number of consecutive auto-replies, after which it can prompt for human input based on configured criteria (e.g., always, on termination, or never).\n", - "- The auto-reply trigger mechanism can be finely controlled by associating reply functions with triggers such as instances of particular classes, specific strings, or custom callable conditions.\n", + "4. **Test Cases**:\n", + " - **Configuration List Test (`test_config_list`)**: Ensures that the configurations for both OpenAI and the hypothetical Azure API are loaded correctly by asserting the presence of at least one configuration for each.\n", + " - **GPT Assistant Chat Test (`test_gpt_assistant_chat`)**: Tests the functionality of a GPT Assistant Agent by simulating a chat interaction. It uses a mock function to simulate an external API call and checks if the GPT Assistant properly processes the chat input, invokes the external function, and provides an expected response.\n", + " - **Assistant Instructions Test (`test_get_assistant_instructions` and related functions)**: These tests verify that instructions can be set and retrieved correctly for a GPTAssistantAgent. It covers creating an agent, setting instructions, and ensuring the set instructions can be retrieved as expected.\n", + " - **Instructions Overwrite Test (`test_gpt_assistant_instructions_overwrite`)**: Examines whether the instructions for a GPTAssistantAgent can be successfully overwritten by creating a new agent with the same ID but different instructions, with an explicit indication to overwrite the previous instructions.\n", "\n", - "This class provides an extensible framework for creating bots or agents that can interact in a chat-like context, with custom behavior that developers can tailor to specific applications.\n", + "Each test case aims to cover different aspects of the GPTAssistantAgent's functionality, such as configuration loading, interactive chat behavior, function registration and invocation, and instruction management. The mocks and assertions within the tests are designed to ensure that each component of the GPTAssistantAgent behaves as expected under controlled conditions.\n", "\n", "\n", "--------------------------------------------------------------------------------\n", - "\u001b[31m\n", - ">>>>>>>> NO HUMAN INPUT RECEIVED.\u001b[0m\n", - "\u001b[31m\n", - ">>>>>>>> USING AUTO REPLY...\u001b[0m\n", "\u001b[33muser_proxy\u001b[0m (to assistant):\n", "\n", - "\n", - "\n", - "--------------------------------------------------------------------------------\n", - "\u001b[33massistant\u001b[0m (to user_proxy):\n", - "\n", - "It seems that your request was incomplete. Could you please provide more information or clarify your request?\n", - "\n", + "TERMINATE\n", "\n", "--------------------------------------------------------------------------------\n" ] @@ -99,15 +83,20 @@ "config_list = config_list_from_json(\"OAI_CONFIG_LIST\")\n", "llm_config = {\n", " \"config_list\": config_list,\n", + "}\n", + "assistant_config = {\n", " \"assistant_id\": assistant_id,\n", " \"tools\": [{\"type\": \"retrieval\"}],\n", - " \"file_ids\": [\"file-CmlT0YKLB3ZCdHmslF9FOv69\"],\n", + " \"file_ids\": [\"file-AcnBk5PCwAjJMCVO0zLSbzKP\"],\n", " # add id of an existing file in your openai account\n", " # in this case I added the implementation of conversable_agent.py\n", "}\n", "\n", "gpt_assistant = GPTAssistantAgent(\n", - " name=\"assistant\", instructions=\"You are adapt at question answering\", llm_config=llm_config\n", + " name=\"assistant\",\n", + " instructions=\"You are adapt at question answering\",\n", + " llm_config=llm_config,\n", + " assistant_config=assistant_config,\n", ")\n", "\n", "user_proxy = UserProxyAgent(\n", @@ -116,7 +105,7 @@ " is_termination_msg=lambda msg: \"TERMINATE\" in msg[\"content\"],\n", " human_input_mode=\"ALWAYS\",\n", ")\n", - "user_proxy.initiate_chat(gpt_assistant, message=\"What is the name of the class of agents I gave you?\")\n", + "user_proxy.initiate_chat(gpt_assistant, message=\"Please explain the code in this file!\")\n", "\n", "gpt_assistant.delete_assistant()" ] diff --git a/notebook/agentchat_oai_assistant_twoagents_basic.ipynb b/notebook/agentchat_oai_assistant_twoagents_basic.ipynb index a4343e46e03e..94da2358c986 100644 --- a/notebook/agentchat_oai_assistant_twoagents_basic.ipynb +++ b/notebook/agentchat_oai_assistant_twoagents_basic.ipynb @@ -19,7 +19,9 @@ "name": "stderr", "output_type": "stream", "text": [ - "assistant_id was None, creating a new assistant\n" + "OpenAI client config of GPTAssistantAgent(assistant) - model: gpt-4-turbo-preview\n", + "GPT Assistant only supports one OpenAI client. Using the first client in the list.\n", + "No matching assistant found, creating a new assistant\n" ] }, { @@ -34,45 +36,38 @@ "\u001b[33massistant\u001b[0m (to user_proxy):\n", "\n", "```python\n", - "print(\"Hello, World!\")\n", + "print(\"Hello, world!\")\n", "```\n", "\n", - "Please run this Python code to print \"Hello, World!\" to the console.\n", - "\n", "\n", "--------------------------------------------------------------------------------\n", "\u001b[31m\n", - ">>>>>>>> EXECUTING CODE BLOCK 0 (inferred language is python)...\u001b[0m\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "execute_code was called without specifying a value for use_docker. Since the python docker package is not available, code will be run natively. Note: this fallback behavior is subject to change\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ + ">>>>>>>> EXECUTING CODE BLOCK 0 (inferred language is python)...\u001b[0m\n", "\u001b[33muser_proxy\u001b[0m (to assistant):\n", "\n", "exitcode: 0 (execution succeeded)\n", "Code output: \n", - "Hello, World!\n", + "Hello, world!\n", "\n", "\n", "--------------------------------------------------------------------------------\n", "\u001b[33massistant\u001b[0m (to user_proxy):\n", "\n", - "The code executed successfully and printed \"Hello, World!\" as expected.\n", - "\n", "TERMINATE\n", "\n", "\n", "--------------------------------------------------------------------------------\n" ] + }, + { + "data": { + "text/plain": [ + "ChatResult(chat_id=None, chat_history=[{'content': 'Print hello world', 'role': 'assistant'}, {'content': '```python\\nprint(\"Hello, world!\")\\n```\\n', 'role': 'user'}, {'content': 'exitcode: 0 (execution succeeded)\\nCode output: \\nHello, world!\\n', 'role': 'assistant'}, {'content': 'TERMINATE\\n', 'role': 'user'}], summary='\\n', cost=({'total_cost': 0}, {'total_cost': 0}), human_input=[])" + ] + }, + "execution_count": 1, + "metadata": {}, + "output_type": "execute_result" } ], "source": [ @@ -88,10 +83,15 @@ "assistant_id = os.environ.get(\"ASSISTANT_ID\", None)\n", "\n", "config_list = config_list_from_json(\"OAI_CONFIG_LIST\")\n", - "llm_config = {\"config_list\": config_list, \"assistant_id\": assistant_id}\n", + "llm_config = {\"config_list\": config_list}\n", + "\n", + "assistant_config = {\"assistant_id\": assistant_id}\n", "\n", "gpt_assistant = GPTAssistantAgent(\n", - " name=\"assistant\", instructions=AssistantAgent.DEFAULT_SYSTEM_MESSAGE, llm_config=llm_config\n", + " name=\"assistant\",\n", + " instructions=AssistantAgent.DEFAULT_SYSTEM_MESSAGE,\n", + " llm_config=llm_config,\n", + " assistant_config=assistant_config,\n", ")\n", "\n", "user_proxy = UserProxyAgent(\n", @@ -124,8 +124,7 @@ "\u001b[33massistant\u001b[0m (to user_proxy):\n", "\n", "```python\n", - "# Let's write a simple Python code to evaluate 2 + 2 and print the result.\n", - "\n", + "# Calculate 2+2 and print the result\n", "result = 2 + 2\n", "print(result)\n", "```\n", @@ -133,20 +132,7 @@ "\n", "--------------------------------------------------------------------------------\n", "\u001b[31m\n", - ">>>>>>>> EXECUTING CODE BLOCK 0 (inferred language is python)...\u001b[0m\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "execute_code was called without specifying a value for use_docker. Since the python docker package is not available, code will be run natively. Note: this fallback behavior is subject to change\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ + ">>>>>>>> EXECUTING CODE BLOCK 0 (inferred language is python)...\u001b[0m\n", "\u001b[33muser_proxy\u001b[0m (to assistant):\n", "\n", "exitcode: 0 (execution succeeded)\n", @@ -157,13 +143,23 @@ "--------------------------------------------------------------------------------\n", "\u001b[33massistant\u001b[0m (to user_proxy):\n", "\n", - "The Python code was executed successfully and the result of evaluating 2 + 2 is 4.\n", + "The Python code successfully calculated \\(2 + 2\\) and printed the result, which is \\(4\\).\n", "\n", "TERMINATE\n", "\n", "\n", "--------------------------------------------------------------------------------\n" ] + }, + { + "data": { + "text/plain": [ + "ChatResult(chat_id=None, chat_history=[{'content': 'Write py code to eval 2 + 2', 'role': 'assistant'}, {'content': '```python\\n# Calculate 2+2 and print the result\\nresult = 2 + 2\\nprint(result)\\n```\\n', 'role': 'user'}, {'content': 'exitcode: 0 (execution succeeded)\\nCode output: \\n4\\n', 'role': 'assistant'}, {'content': 'The Python code successfully calculated \\\\(2 + 2\\\\) and printed the result, which is \\\\(4\\\\).\\n\\nTERMINATE\\n', 'role': 'user'}], summary='The Python code successfully calculated \\\\(2 + 2\\\\) and printed the result, which is \\\\(4\\\\).\\n\\n\\n', cost=({'total_cost': 0}, {'total_cost': 0}), human_input=[])" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" } ], "source": [ @@ -204,7 +200,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.12" + "version": "3.10.13" } }, "nbformat": 4, diff --git a/notebook/agentchat_oai_code_interpreter.ipynb b/notebook/agentchat_oai_code_interpreter.ipynb index a6c8e570326e..921165fdd6b3 100644 --- a/notebook/agentchat_oai_code_interpreter.ipynb +++ b/notebook/agentchat_oai_code_interpreter.ipynb @@ -26,7 +26,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -81,14 +81,15 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "WARNING:autogen.agentchat.contrib.gpt_assistant_agent:assistant_id was None, creating a new assistant\n" + "OpenAI client config of GPTAssistantAgent(Coder Assistant) - model: gpt-4-turbo\n", + "Matching assistant found, using the first matching assistant: {'id': 'asst_xBMxObFj0TzDex04NAKbBCmP', 'created_at': 1710321320, 'description': None, 'file_ids': [], 'instructions': 'You are an expert at solving math questions. Write code and run it to solve math problems. Reply TERMINATE when the task is solved and there is no problem.', 'metadata': {}, 'model': 'gpt-4-turbo', 'name': 'Coder Assistant', 'object': 'assistant', 'tools': [ToolCodeInterpreter(type='code_interpreter')]}\n" ] }, { @@ -102,13 +103,31 @@ "--------------------------------------------------------------------------------\n", "\u001b[33mCoder Assistant\u001b[0m (to user_proxy):\n", "\n", - "The value of $x - y$ is $-48$. \n", + "The value of \\( x - y \\) is \\(-48\\).\n", + "\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33muser_proxy\u001b[0m (to Coder Assistant):\n", + "\n", + "\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33mCoder Assistant\u001b[0m (to user_proxy):\n", + "\n", + "It seems you have no further inquiries. If you have more questions in the future, feel free to ask. Goodbye!\n", "\n", "TERMINATE\n", "\n", "\n", "--------------------------------------------------------------------------------\n" ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Permanently deleting assistant...\n" + ] } ], "source": [ @@ -116,9 +135,11 @@ "gpt_assistant = GPTAssistantAgent(\n", " name=\"Coder Assistant\",\n", " llm_config={\n", - " \"tools\": [{\"type\": \"code_interpreter\"}],\n", " \"config_list\": config_list,\n", " },\n", + " assistant_config={\n", + " \"tools\": [{\"type\": \"code_interpreter\"}],\n", + " },\n", " instructions=\"You are an expert at solving math questions. Write code and run it to solve math problems. Reply TERMINATE when the task is solved and there is no problem.\",\n", ")\n", "\n", @@ -135,7 +156,8 @@ "# When all is set, initiate the chat.\n", "user_proxy.initiate_chat(\n", " gpt_assistant, message=\"If $725x + 727y = 1500$ and $729x+ 731y = 1508$, what is the value of $x - y$ ?\"\n", - ")" + ")\n", + "gpt_assistant.delete_assistant()" ] }, { @@ -149,14 +171,15 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "WARNING:autogen.agentchat.contrib.gpt_assistant_agent:assistant_id was None, creating a new assistant\n" + "OpenAI client config of GPTAssistantAgent(Coder Assistant) - model: gpt-4-turbo\n", + "No matching assistant found, creating a new assistant\n" ] }, { @@ -170,53 +193,53 @@ "--------------------------------------------------------------------------------\n", "\u001b[33mCoder Assistant\u001b[0m (to user_proxy):\n", "\n", - "To draw a line chart showing the population trend in the US, we need some population data over a range of years. Normally, this data can be obtained from sources like the United States Census Bureau or other datasets available online.\n", - "\n", - "Since I don't have internet access to download the latest data directly, you can provide the data if you have it. The data should ideally consist of two columns: one for the years and one for the corresponding US population for each year.\n", + "To draw a line chart showing the population trend in the US, we first need to obtain the data that contains the population figures over a range of years. As I don't have access to the internet in this environment, I cannot download the data directly. However, if you can provide the data, I can proceed to create a line chart for you.\n", "\n", - "If you don't have the data, I can demonstrate how to generate the line chart with some dummy data to illustrate the process. Would you like to provide the data or should I use dummy data for the demonstration?\n", + "For the purpose of this demonstration, let's assume we have some hypothetical US population data for a few years. I'll generate some sample data and create a line chart using the `matplotlib` library in Python.\n", "\n", + "Here's how we can do it:\n", "\n", - "--------------------------------------------------------------------------------\n", - "\u001b[33muser_proxy\u001b[0m (to Coder Assistant):\n", - "\n", - "\n", - "\n", - "--------------------------------------------------------------------------------\n", - "\u001b[33mCoder Assistant\u001b[0m (to user_proxy):\n", "\n", - "It seems there was no response regarding the data, so let's proceed with some dummy data to demonstrate the process. I'll create a Python script that will generate a line chart showing the hypothetical population trend in the US from the year 1900 to 2000. I'll assume a simple linear growth in population for the sake of this example.\n", + "Received file id=assistant-tvLtfOn6uAJ9kxmnxgK2OXID\n", "\n", - "Let's begin by generating the dummy data and plotting the line chart.\n", - "\n", - "\n", - "Recieved file id=file-sAG7r763XR9jiuKYiQeoHRFU\n", - "\n", - "Here is a line chart showing the hypothetical population trend of the US from the year 1900 to 2000. The data is dummy and assumes linear growth in the population.\n", - "\n", - "If you have actual data or would like to see a different representation, please let me know. Otherwise, if everything looks good with this example chart, let me know if there is anything else I can help with. \n", + "Here is a line chart that illustrates the hypothetical US population trend from 2010 to 2020. The data used here is for demonstration purposes only. If you have actual population data, you can provide it, and I will update the chart accordingly.\n", "\n", "TERMINATE\n", "\n", "\n", "--------------------------------------------------------------------------------\n" ] + }, + { + "data": { + "text/plain": [ + "ChatResult(chat_id=None, chat_history=[{'content': 'Draw a line chart to show the population trend in US. Show how you solved it with code.', 'role': 'assistant'}, {'content': \"To draw a line chart showing the population trend in the US, we first need to obtain the data that contains the population figures over a range of years. As I don't have access to the internet in this environment, I cannot download the data directly. However, if you can provide the data, I can proceed to create a line chart for you.\\n\\nFor the purpose of this demonstration, let's assume we have some hypothetical US population data for a few years. I'll generate some sample data and create a line chart using the `matplotlib` library in Python.\\n\\nHere's how we can do it:\\n\\n\\nReceived file id=assistant-tvLtfOn6uAJ9kxmnxgK2OXID\\n\\nHere is a line chart that illustrates the hypothetical US population trend from 2010 to 2020. The data used here is for demonstration purposes only. If you have actual population data, you can provide it, and I will update the chart accordingly.\\n\\nTERMINATE\\n\", 'role': 'user'}], summary=\"To draw a line chart showing the population trend in the US, we first need to obtain the data that contains the population figures over a range of years. As I don't have access to the internet in this environment, I cannot download the data directly. However, if you can provide the data, I can proceed to create a line chart for you.\\n\\nFor the purpose of this demonstration, let's assume we have some hypothetical US population data for a few years. I'll generate some sample data and create a line chart using the `matplotlib` library in Python.\\n\\nHere's how we can do it:\\n\\n\\nReceived file id=assistant-tvLtfOn6uAJ9kxmnxgK2OXID\\n\\nHere is a line chart that illustrates the hypothetical US population trend from 2010 to 2020. The data used here is for demonstration purposes only. If you have actual population data, you can provide it, and I will update the chart accordingly.\\n\\n\\n\", cost=({'total_cost': 0}, {'total_cost': 0}), human_input=[])" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" } ], "source": [ "gpt_assistant = GPTAssistantAgent(\n", " name=\"Coder Assistant\",\n", " llm_config={\n", - " \"tools\": [{\"type\": \"code_interpreter\"}],\n", " \"config_list\": config_list,\n", " },\n", + " assistant_config={\n", + " \"tools\": [{\"type\": \"code_interpreter\"}],\n", + " },\n", " instructions=\"You are an expert at writing python code to solve problems. Reply TERMINATE when the task is solved and there is no problem.\",\n", ")\n", "\n", "user_proxy.initiate_chat(\n", " gpt_assistant,\n", " message=\"Draw a line chart to show the population trend in US. Show how you solved it with code.\",\n", + " is_termination_msg=lambda msg: \"TERMINATE\" in msg[\"content\"],\n", + " human_input_mode=\"NEVER\",\n", " clear_history=True,\n", + " max_consecutive_auto_reply=1,\n", ")" ] }, @@ -229,12 +252,12 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 9, "metadata": {}, "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAB7sAAAPUCAYAAADc4V37AAEAAElEQVR4AezdCXwU9f3/8Q9HADEqRAjBqFiVwwtKIF5QtLZBRanaWqzalqO1l7b2X/1pW1sRelhqL2u11raCth6g1ioeralWKR4gh6BVMR4gRsJhRA03yD/vobPMTmZ3Z8/s8fo+HmFnZ77znZnnzH53mc98v98OO1uTkRBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEECgggY4FtK/sKgIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAo4AwW4uBAQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQACBghMg2F1wp4wdRgABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBAg2M01gAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCBQcAIEuwvulLHDCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIEu7kGEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQKToBgd8GdMnYYAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQIBgN9cAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggEDBCRDsLrhTxg4jgAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCBDs5hpAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEECg4AYLdBXfK2GEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAYLdXAMIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgUnQLC74E4ZO4wAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgggQLCbawABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAoOAECHYX3CljhxFAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEECHZzDSCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIFJwAwe6CO2XsMAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAwW6uAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQACBghMg2F1wp4wdRgABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBDoDAECCCCAAAIIIIAAAtkQGD58eFSxCxYsiHrPG7OrrrrKHnjggQjF5MmTbezYsZH3xT5R6sev87t582Z7+eWX7a233rIPPvjANmzYYF27drU99tjD9t13X+vbt68deOCB1r1792K/HDi+FAVUt37ta1+LrF1TU2M33XRT5H0xTLz99tv2qU99KnIo+lzMnj078p4JBIpZoL2/K//yl7/Ytdde6xB369bN/v73v1uvXr3ynnz9+vW2dOlSW7dunWm6rKzM2e/+/fvboYcempX9b2pqshdeeMH0qu93fXdXV1fb4MGDrWfPnhnfZktLiy1ZssRWrlzp/H7o0qWL9e7d2w4//HDnt0PGN1ggBW7fvt3efPNNe/311+2dd96J2Oyzzz6233772RFHHGG6lrOR3n33Xee6a2xstI0bNzrb0XeWtllVVZXxTeo603W+YsUK53dkp06dnOt84MCBWbnOP/zwQ3vppZfs1VdfNR3rzp07Ta4HH3ywHXnkkda5c+ekj1G/fc8880ynPK08YcIEu+iii5IuhxUQQAABBEpbIPlvoNL24ugRQAABBBBAIIaA/0Zcujfb/Tfvtdn777/fuUERYxeYjQACCAQK/OEPf7A//vGPkWWZCJT5H+ZI5kGFrVu32r/+9S+79957nRuUO3bsiOxb0ETHjh2tX79+zo3SY4891vTXo0ePoKwZmec/tliFKihfXl7u3MAfNGiQHXXUUfaJT3wiq/sWa1+YjwACbQX8v83a5sjcnEzUq5nbG0rKlIACxX/6058ixZ1//vlJBboVGFPA8cUXX7T//ve/zmtDQ4MpGOmmTF47Crw99thjpgC9tqntByVt8zOf+Yyde+65zgNmQXmSmff444/bLbfcYs8//3zgavoer62ttS996Uum/yOlm1555RXnd81//vOfKEtvuQo+fuELX7DTTz/dOnTo4F1UlNNvvPGGPfHEE/bss8/ac889Z1u2bIl5nAoI6zyMGzfOTjjhBNP5STctWrTI/vznPzvbj3Xd6XfS+PHj7cQTT0x3c6Zguj6bjzzySMxjVWD/nHPOcf5SCUJ7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o26G1XVxmG40f/nLX0a6lHe3q2709ECEtune7JOTzomc1PrbdVKQTgEt3Vx298stR+PWukZqZaP13KRrUN3Q5iKpG0Bdb/4W1+qWVS1e9aqueN0kV3X9pxYRehBE78MkWakbT13H6mpWN8m8wS+1hFE3h+pCXeW7ad68eXbzzTc7ASZ3Xqm/arxT/4MtuvbUOl89CmjsxkQtiQrFUPWbtwtc7bfGofUndZX/wx/+MFJvustPOeUU04NG6uZVD1XoOtdYmgps6899YEfzFdhSvZDMuJXazjXXXOPUk5pWnfilL33J6abc7T5U3cwrEK/r2Bu4V2tyBT8VsCqWpJZeI0eOdIYgOOSQQ0zDUigwoiRr1XUKfqmrd2/rQn2fqK5R3RyU9B3oju+putK7rurKeF1Op9KCLGgfdB71vel/gOf44493vn+0//qu13HqJry+97Sv3sCSvo9U9+u6TCbpOnF/U2h9df+u+tStmxUQVgvaG264Icpm8eLFzu8X1eWFmvS7xg0e6Xtj/PjxzjXmjkOtFu96CMH/0JW+U771rW9Fvo91/Oq9R8MC6FrSdeE+jKLvbHXtrPPl7alEDy3279/fzj777KT4sv37RNdg0AORqvv1+0RdErv1nerPe++91+l2X0byjNfde1IHGiLzf//736hcGsc+X5MeylF95b2W9DBTMknfWf4W4vqtqus0aAxmb12m7QR9vyXavvZbD3l6H8pU4FFDwviTf3tanso2+/TpE/UwZ7xAp38fivm9fsP6U6JhS/znRP9fiPUQk79s73udE7eu1PxY50R1o/vbx10/1WvAXT/e9rTMf4za12STf501a9Y413ysB5z95fvrHtWN+rzGeuDWvz7vEUAAAQRKT4Bgd+mdc44YAQQQQACBohRQt5BusFsHqBuFusEa1CowCMDfqltjmLmBj6D83nneYIjGIlUrMm/SPiiIcPHFFztjUKsbae+NNbUe0ziiClbHSmoF7r/xoCC3xv72HqNu+il4oy5ANf64tuVdTzfgdaPf32pBASP9KelmsjfYrRv1yd44dgry/aMb/wqWKmB81lln+ZaaEwRQgERBaRm6AWgFtXR+FLSIl9SCTo5ukoVunH/+85+PBG+8y9Sto8bBVSD/29/+thPs0PKVK1c6N5cvv/xyN7vz2rt374iDgrzeYLcCGJkwitpgwBsFqtVt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guPgEBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEESkiAbsxL6GRzqAgggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggECxCBDsLpYzyXEggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACJSRAsLuETjaHigACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCBSLAMHuYjmTHAcCCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCBQQgIEu0voZHOoCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQLEIEOwuljPJcSCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIlJNC5hI6VQ80jgVNPPdXWrFljlZWV9vDDD+fRnrErCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCBQCAIEuwvhLBXhPirQ3dTUVIRHlttD2rx5s7PBbt265XbDbA0BBBDIYwHqxjw+OewaAgi0qwD1Y7vys3EEEMhTAerGPD0x7BYCCLS7APVju58CdgABBPJQgLoxD09K6y7RjXl+nhf2CoFQAsuWLTP9kRBAAAEEdgtQN+62YAoBBBDwClA/ejWYRgABBHYJUDdyJSCAAALBAtSPwS7MRQCB0hagbszP80+wOz/PC3uFAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIBBHgGB3HBwWIYAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgjkpwDB7vw8L+wVAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggEAcAYLdcXBYhAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCQnwIEu/PzvLBXCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAJxBDrsbE1xlrMIgawIDBs2zJqamqyqqsoWLlyYlW1QKAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIFK8ALbuL99xyZAgggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggEDRChDsLtpTy4GVgsD69etNfyQEEEAAgd0C1I27LZhCAAEEvALUj14NphFAAIFd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hffZZ569x07555+d95pPan8Bgt2ec6AxuM855xzr1KmTZ27w5KmnnmpDhw6NLHz00Ucj04kmFERWF+hKV1xxhfXq1SvRKlHL165daw899FBknspQED4onXTSSaYxu5V27Nhhf/nLX4KyOfNuueWWyDK1CI81xnefPn2cFuBu5hkzZriTvCKAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCBQ8AKL1jXa6Y9Mt+MeuMFuWjbfXtjYbK9tft/mrV3pvNd8LVc+UvsJBEdI229/CmrLw4cPj+yvuvcOk5qamuwnP/mJk/WYY46xc889N8xqUXkeeeQRU3fqShpTXC2746Vx48ZFFv/jH/+ITHsn3njjDXvllVcis7zrRGZ6JrzLX3rpJWcMb89iJhFAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBAoSIH6xgYbWz/DnlyzazjZWAeh5cqn/KT2ESDYnYZ7hw4dImur1XSYpFbY77//vnXp0sUZY9tbRpj1leepp56KZFVr9ETp+OOPj2RpbGw0Bbb96cknn4zMUgC9qqoq8j5oQmOZf+QjH4ks8q4fmckEAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgUkoJba4+fMtI07dg0nnGjXlW/CnFm08E4ElaXlBLvTgH355Zcja++3336R6VgTDzzwgLktq7/xjW9Y//79Y2WNO9877vZRRx0VN68WKnDdu3fvSD7v+u5M77wwZWo9bz7v+m6ZvCKAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCBQSAJXLnrENu3YntQuK+A9eXF9UuuQOTMCnTNTTOmVohbS3tbM7rjYsSTee+89++EPf+gsVovob33rW7GyJpz/2muvRfLsv//+kel4E9XV1aaxvpW867vrvP766+6kJVOmu9Krr77qTvKaQwGNn05CAAEEEIgWoG6M9uAdAggg4ApQP7oSvCKAAAK7Bagbd1swhQACCHgFqB+9GkwjgEApCby8fk3CrstjecxdvdyWvbfWBu6zuwFqrLzMz5wAwe4ULa+66ipzuy5XILmuri5uSVOnTrU1a9Y4eX72s59Z165d4+aPtXDTpk22efPmyGJvi+3IzIAJb77169e3yfHuu+9G5vXq1SsyHW8iUZnx1nWXaezxt99+230b+Bqm1XzgiiUw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K684s7UPF110kTdL1LSWu+mwww4zfvy4Grl9DRp/Pbd7wNYQQACB/BOgbsy/c8IeIYBAfghQP+bHeWAvEEAgvwSoG/PrfLA3CCCQPwLUj/lzLtgTBEpdQN2Sq7W2gtgt27ZaeVkXG1LR1yb2H26DelS24VGedFLL9i3O6nXV/W123QSbvLje5q5eHrNIdV2uFt0EumMSZX0BwW4f8Y4dO+zCCy+MjF/duXNnu/HGG23UqFG+nO33tnfv3nbqqafagw8+6OzET37yE7vnnnusQ4cObXbqiSeeMP0pderUyemWvU2m/80YP368XXHFFc47HfM555xj2pY/rVmzxjFx52s9EgIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAKZEFi0rtGuXPRI4Pjb89autJuWzbcRlf1sas3oSKBZgfE1m1vS2nx5566R9RXAVsDbDbgvbW4yBcOVZ3BFlU0aUMsY3RGt9pvo2H6bzr8t79y50y655JJIELljx47229/+1tSSOt/SZZddZmVlZc5uzZs3zy6++GLTGOPepJbpCty76eyzz3Zab7vv/a/nn3++HXTQQc7sd9991z7/+c/bW2+9FZVN7zWO+fr16535ahF+7rnnRuXhTe4ElixZYvojIYAAAgjsFqBu3G3BFAIIIOAVoH70ajCNAAII7BKgbuRKQAABBIIFqB+DXZiLAAK5EahvbLCx9TMCA93ePXhyzQon3y+fn2NnP/ZXO+6BG2zt5g3eLElPK4jtT2pBPq12jP2sapj9bv/j7eGTJznv1eU5qf0FaNntOQe33HKLebvnVtfc8+fPd/482WJOqoV1rtKhhx5qV199tV166aXOJtWy+9FHH3W6P99rr72c7sgXL14c2R11NT516tTI+6AJBc9vuukmO+uss2zDhg32wgsv2MiRI52/qqoqW7VqldO1u7p5V9J2/vjHP5pav5MQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQSEdALbrHz5lpm3ZsD1WMxtT+8ZLHQuUNk0mttUmFJUCU0nO+3nnnHc87szfeeMP5i5oZ500ug93aDbWoVmv0yZMnO6261dr6oYcearOHClirhXp5eXmbZf4ZRxxxhN1+++32zW9+0958801TYPvf//63P5szRvd1111ngwYNarOMGQgggAACCCCAAAIIIIAAAggg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KbPoknmHAAIIIIAAAggggAACCCCAAAIIIIAAAggggEB+CSxa12gaezuoS/J5a1faTcvm24jKfja1ZnQk0Lyi5V179f130jqQlu1bIusrgK2AtxtwX9rcZFpe3rmrDa6oskkDahmjO6LFBAIIILBLoMPO1gTGLgEFi7/73e/a4sWLQ5Eo2H3ttddadXXsrkIeeOAB++pXvxqqPGUaOXKk/epXv4pbplvY3Llz7Tvf+Y4TPHfnxXodO3asXXPNNU4QPFYed74C55dccom9807sL+mjjjrKrr/+ejvkkEPc1ZJ6VRC+qanJqqqqnAcBklqZzBEBPUihlOzDDJECmEAAAQSKUIC6sQhPKoeEAAIZEaB+zAgjhSCAQJEJUDcW2QnlcBBAIGMCpVY/1jc22IQ5s2xjiDGz1YX494acaM+ue8seWPmyfZhmiOXY3gfawydPyti5oyAEEMieQKnVjdmTzGzJtOz2eKrVtT/QffDBB9ugQYOsZ8+eTmvsBQsW2KpVu7olefrpp+1Tn/qU/e1vfzO1ok6UunTpYoceeqgddNBBTnl6zmDNmjW2aNEiU0tqJQWw1cL773//e9yA91NPPWVf/OIXbcuW3U99qdW1gs9qLa7W2EuXLrWWlhanXLX+fuutt+zee++1eC2yn3jiCfvyl7/stDrXinvssYcTgN93331txYoVTmt37ffzzz9v55xzjimYr4A1qX0Ewlx37bNnbBUBBBBoPwHqxvazZ8sIIJDfAtSP+X1+2DsEEGgfAerG9nFnqwggkP8CpVQ/qkX3+DkzbdOO7aFOjALiP1xUHypvmExqsU1CAIHCECilurEwzsiuvaRlt+ds3XffffaNb3zDCUafd9559ulPf9rpttyTxT788EOne+8f/OAHpi7EldSt+f33328dOnTwZnWmn332Wfv3v/9tH//4x23w4MHWtWvXNnnUnfndd99tV1xxhW3evNlZ/olPfMJuvfXWNnk1Y8eOHTZq1Chbvny5s1zdoP/85z935jkz/vePAuia/5e//CUy+8orr4zZ0lz51bJcXZYrafr3v/+9VVRURNb/73//axMnToy0Jh8xYoTjEckQcoKW3SGhyIYAAggggAACCCCAAAIIIIAAAggggAACCCCQNYHTH5ke2HV51jboK/iZsRfSNbnPhLcIIIBAMgIEuz1aaqn95ptv2tlnn22d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yxZTb+run95r/u9+9zs7/vjjbfLkyVHB8MztDSUhUNgCy5YtM/2REEAAAQR2C1A37rZgCgEEEPAKUD96NZhGAAEEdglQN5belaCuy8MGujOto/G3B+7TO9PFUh4CWRGgfswKK4UigECBC1A35ucJzGnL7k2bNtm5557rjNGcaKhwd/mOHTvs5ptvtiVLltidd95puegiYOXKlTZnzhx75pln7KWXXrK3337b1M26uljv27ev1dTU2FlnnWXHHXdcwrO6bds2Z981LvWLL75or732mjU2Ntr7779v27dvt7322ssOOOAA++hHP2pnnnmmHXPMMQnLDMqgBwTq6+vtoYceclrKr1692im/srLS2efhw4c7Dxgce+yxppbziZKO9+6777bZs2fbG2+8Yc3NzVZRUWEHH3ywjR071j7zmc/Q3XwiRJYjgAACCCCAAAIIIIAAAggggAACCOSNgMbGVtfk6SQFrE+uHmBXL/l3wm7Qvdvp3qnMpgyt885iGgEEEEAAAQQQQCADAjkNdl922WW2YMEC69Chg7PrAwcOtHPOOcdqa2udgG/37t3t/7N3J/BVFWfjx59sBEKAECEEgwSXkGiVSEgUZGldgopisQruEmjVWvW1Lm1tq1Lo27cvtS7Van3pX4laF7B1A60S1wgqW2gQlxCQsAQChIAQCNngn+fgvdzc3Jucu527/aafmHPPmZkz8504RZ7MzIEDB0SDzZpv3rx58vXXXxsrvjVY/Itf/EIee+wxP3TbdRVr1qyRe+65x1hV7irHnj17RL80AP78888bwe6//OUvnW6z/s4778hNN93kqjrj3u7du0W/Vq9eLc8++6yMGTNGHnrooU7rdK5syZIlRru/+eYb50eyceNG40sD97pSXoPhubm5HfI53lD72267TTZt2uR4W2pqaowv3Xr+ySefNOrTwD8JAQQQQAABBBBAAAEEEEAAAQQQQACBUBeYW7nCpyZemvk9eXrsZKMOXaFt5txvzayB7uJxUySvH0c1+jQAFEYAAQQQQAABBFwIWBbs1m3JX331VSPQHRsbK/fee6/85Cc/sQe+bW3TgHe/fv1k+PDhxnNd1T1r1izRFd6vvfaa/PjHPzZWQdvy+/O7rrrWdjomXcmck5Mjffv2NVZjayB427ZtRpZPP/1ULrnkEnnllVckMzPTsZjLa11RfdJJJ8mQ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1qyRe+65xwgeO9x2e6nB7r/85S+SkeF+28OFCxfKTTfd5LYO5wdjxoyRhx56qNM6/+///k+efPJJ2bFjh3PxDp8TEhLkv/7rv+T222+XuLi4Ds9d3Vi3bp387Gc/ky+++MLVY+Nev379jHaee+65bvN09oBgd2c6PEMAAQQQQAABBMJXoKS60vQ24omxcZLTtv14+e4anzt8Y/YZMrtggs/1UAECCCCAAAIIIIAAAggggAACCCCAQPgIsI25w1jpqmtdJe2YTjjhBMnJyZG+ffsaq7FXrFgh27YdOU/w008/lUsuuUReeeUVyczMdCzm8rpbt25y0kknyZAhQ4z6dFG9BqzLysqkrq7OKLN48WJjhfdrr73mNuCtq84dA92JiYmSm5sremZ6jx49RFemL1u2TA4ePCi6svzBBx+Ub775Rh599FGJjY112TbbTV3FfsUVVxirrvVeTEyMjBw50uifrhzXleRar670/vGPfyz/+Mc/RAP0pOAI6Kp7TdnZ2cFpAG9FAAEEQlCAuTEEB4UmRY2AruieWjpPGlpbTPW58VCrXwLd+jJdrU3qXID5sXMfniKAQHQKMDdG57jTawQQ6FqA+bFrI3IggED0CTA3huaYWxbsnjx5sl8ENPg6f/58v9TlrhINRl999dXyox/9yNi23DGfbh+u77/33nuloaHBCArfeuutxpbf2jbnpPv366rqs88+W4YNGyYamHZOup35P//5T/ntb39rBJI14PzrX/9ann32Wees9s/6Lq1T26nfu3fvbn+mFxo8v++++0SD5ppeffVVKSgokKlTpxqf3f1D+6Lbi2vS4PnTTz8t3/ve9+zZtd6bb75ZNCivgXRdtf7JJ58YW5zbM3FhmYD+4gEJAQQQQKC9AHNjew8+IWClgG5dbjbQ7c926fnb2W0rxEmdCzA/du7DUwQQiE4B5sboHHd6jQACXQswP3ZtRA4EEIg+AebG0Bxzy4LdugraVTDYExZdCe1rHZ29Ly0tzdia+/LLL3e75beujL7yyiuN4O5PfvITozpdmf3RRx/JD37wgw7Va4BZvzpL8fHxRp26zfjPf/5zI+v7779vnBV+7LHHdig6duxY+c1vftMuCO2cSc/T/utf/2oE5N955x3jsW65fv3117s1fO+992Tp0qVGXl2FXlxcLCeffHK7qrXeuXPnynnnnScbN26U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EEAAAQQSTYBpzB1adM2aNTJ9+nT5/PPP5euvv5Z169bJrl27JD09Xdq3by/5+fkydOhQ6dOnj8PV3ocqKytF5/BfsGCBfPXVV/Ltt99KWVmZbN++XaqqqqRly5Zy5JFHyoknnihDhgyRn/3sZ94FuNjT8l555RUpLi42yt69e7e0a9dOjjvuOLngggvk7LPPlkaNGrko6WAWfd7XXntNJk+eLCtXrpSKigrJzMyUo446SgYNGiTDhg2TFi1aHLyALQQQQACBpBKYUDo/rOft0KKV/PbYvnLvwmLR6c3dprSUVLm/Z6Hb7ORDAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQSGABgt22xl26dKnccccdsmjRItvRg5vbtm0T/dEA+IsvvmgEux9//HHJyck5mMln6/3335drr73W5+jB3a1bt4r+LFmyRF544QXp16+f/O1vfwtY5sGrRV5++WW59957RQPc9rR69WrRnylTpsipp54qf//73yUrK8uexe/2/Pnz5cYbb5Tvv//eK095ebnoz6xZs+SZZ56RJ5980gj8e2ViBwEEEEAgKQQWV6wP6zkPT2slv+pyknRIby0jp09yFfDWQHdR/+GS38b//3fDqhQXI4AAAggggAACCCCAAAIIIIAAAggggAACCMSVQKMaT4qrGkexsm+//bZcf/31XnfQkcxdu3aV1q1bG6OxNRC8fv3BD/izs7PljTfekNzcXK/rzJ13333XCnY3bdpUjjnmGOnYsaNRntJv3LhRFi5caIycNq85/PDD5a233goa8NbR3Lfeeqt5mbRq1Ur69u1rjBYvKSmRL774wjrXrVs30ecLNhp72bJlxqh1HdmtKTU11ShTR7TrCPeZM2caI9L1nI5K13qqT6ipV69eRuBc/XTUO6luAnv37jUubN68ed0K4CoEEEDgJwGdllxHa2sQe2flfklPbSo9MtvLqLze0jWj9pel+r37D1m2bUOd/Y5v3U4+O/fXxvULN5fJmEXFMmPDKr/l6dTlOqLbTaCbvtEvIycQQCDJBegfk/wXgMdHAAFHAfpGRxYOIoAAAkL/yC8BAgggUFuAvrG2SSwcIdhtawUz2K3B6EsvvdSYAlyDvPZ04MABmTRpktxzzz2yZ88e45ROa/7OO+84ThU+b948+fjjj+X000+X7t27S7NmzezFGds6nblOGX733Xdb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AggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgEECHYHwOEUAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggEBsCjSJzWpRKwQQCCawbt06GThwoJFt3rx5cvjhhwe7hPMIIIBAwgvQNyZ8E/OACCBQRwH6xzrCcRkCCCS0AH1jQjcvD4cAAmEI0D+GgcelCCCQsAL0jbHbtIzsjt22oWYIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAn4ECHb7geEwAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggEDsChDsjt22oWYIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAn4ECHb7geEwAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggEDsChDsjt22oWYIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAn4ECHb7geEwAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggEDsChDsjt22oWYIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAn4ECHb7geEwAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggEDsCjSq8aTYrR41S1SB3NxcqaqqksaNG0tWVlaiPmZUn+vAgQOyceNG4x5qqJYkBBBAINkF6BuT/TeA50cAAX8C9I/+ZDiOAALJLEDfmMytz7MjgEAgAfrHQDqcQwCBZBWgb4x8y2tsa+rUqWEXTLA7bEIKqIvAkUceKdoxkBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAILkEsrOzZcGCBWE/dJOwS6AABOog0KxZM9m3b5+kpKTIYYcdVocSuAQBBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBOJRIFIzPzOyOx5bnzojgAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACSS7AIr9J/gvA4yOAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAALxKECwOx5bjTojgAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACSS5AsDvJfwF4fAQQQAABBBBAAAEEEEAAAQQQ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9u3Spk0b6dKli2jwfMiQIa47fy9cdhBAIG4FYr1vjHawWxtOR3a/+uqrxjfcv/vuO9FpzVu3bi06bfl5551n9LktWrSI2zam4gggUDeBWO8f3T6V/TlCCXZr+bx3dKtMPgSSR8Dep4Ty1E7B7vr4u1rf1+nInylTphijfPTL3zqaUEcA6egiHYkZ6qxm9I2htDx5EUgegXjqH9esWWN8Pqifaa5YscKa6eLQQw8VHX2pM0z+8pe/NLZDaUH9fFRHR+oSEbqtgW9zRswLLrhAzj77bNEAFAkBBBJfIJrBblNPZ4145ZVXZPbs2daMvvq+rk+fPsYyhCeeeKKZ1fVrNPoxPnd0x0+w250TuRBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEYkigcQzVhaoggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCDgSoBgtysmMiGAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIxJIAwe5Yag3qggACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCDgSoBgtysmMiGAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIxJIAwe5Yag3qggACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCDgSoBgtysmMiGAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIxJIAwe5Yag3qggACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCDgSoBgtysmMiGAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIxJIAwe5Yag3qggACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCDgSoBgtysmMiGAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIxJIAwe5Yag3qggACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCDgSoBgtysmMiGAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIxJIAwe5Yag3qggACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCDgSoBgtysmMiGAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIxJIAwe5Yag3qggACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCDgSoBgtysmMiGAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIxJIAwe5Yag3qggACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCDgSoBgtysmMiGAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIxJIAwe5Yag3qggACCCCAAAIIIIAAAggggECUBA4cOCCDBw+WnJwc42fYsGFSU1MT0t0eeugh6/rjjjtONmzYENL1ZEYAAQQQQAABBBBAAAEEEEAgkgIEuyOpSVkIIIAAAggggAACCCCAAAIIxKhA48aN5ZFHHpHmzZsbNfz888/l+eefd13br776Sp5++mkr/5gxY6Rdu3bWPhsIIIAAAggggAACCCCAAAII1LcAwe76Fud+CCCAAAIIIIAAAggggAACCDSQwDHHHCM333yzdfcHH3xQysrKrH1/G9XV1fL73/9eKisrjSxnnHGGDB8+3F92jiOAAAIIIIAAAggggAACCCBQLwIEu+uFmZsggAACCCCAAAIIIIAAAgggEBsCv/71r6VHjx5GZXbu3Cm33XZb0Ir961//ksWLFxv5WrZsKX/5y1+CXkMGBBBAAAEEEEAAAQQQQAABBKItQLA72sKUjwACCCCAAAIIIIAAAggggEAMCaSkpBjTmaemphq1+uSTT2TixIl+a7hq1Sp5+OGHrfP33HOPsW63dYANBBBAAAEEEEAAAQQQQAABBBpIgGB3A8FzWwQQQAABBBBAAAEEEEAAAQQaSqBbt27y29/+1rr92LFjZePGjda+uVFTUyN/+MMfZO/evcahvn37yuWXX26e5hUBBBBAAAEEEEAAAQQQQACBBhVo5PnDtaZBa8DNEUAAAQQQQAABBBBAAAEEEECg3gV0/e1zzjlHvv76a+Peuv3vf//bqx7//e9/5fbbbzeOpaWlyYcffigdOnTwyqNrfk+aNEmmT58uq1evlq1bt4rmzcnJkX79+slll10mRx99tNc1Tjt79uyRTz/9VGbOnClffvmlrFy5Un744QfREeiZmZly/PHHy5lnninDhg2Tpk2bOhVhHZs1a5ZcdNFFxn6fPn3ktddeM7a1/q+//roxJbsG93fv3i333XefXH311da1bCCAAAIIIIAAAggggAACCMSPQJP4qSo1RQABBBBAAAEEEEAAAQQQQACBSAloEPnRRx+V8847T6qqqmTq1KnyzjvvyPnnn2/cory8XB544AHrdnfeeadXoPvAgQPGdOjPPPOMNfLbzLx//37Ztm2bLFu2TJ599lnRdcI1aN6oUSMzi9frwoUL5Ze//KXs2rXL67juaFBeg9Jr166V//3vf/L4448bQXkNfrtN27dvl1tuucV4RrfXkA8BBBBAAAEEEEAAAQQQQCD2BQh2x34bUUMEEEAAAQQQQAABBBBAAAEEoiJwwgknyHXXXSdPPvmkUf4f//hHYzS2jqS+6667RIPEmk466SQZNWqUsa3/VFdXG9dNmTLFOpadnS09e/Y0RmFrcHrRokWi631rIP2JJ56QiooKeeihh6z89g0dwW0Gutu0aSOdO3eW9u3bGyPEdcS3lvPFF18YZa1Zs8YY3a2B706dOtmLcdzWCe1uvPFG+eCDD4xge48ePSQvL0/0eElJid8AvGNhHEQAAQQQQAABBBBAAAEEEIgpAaYxj6nmoDIIIIAAAggggAACCCCAAAII1K/Avn375KyzzpLS0lLjxhdccIExXfj1119v7Ddv3lyKi4vlqKOOsir28MMPy2OPPWbsZ2VlGSPAdRp035HbkydPlttuu80Kmv/jH/+wRo5bhXk2dGT3tGnTZMiQIdK1a1f7KWt78+bNomuL6zTkmnSK9IkTJ1rn7Rv2acybNGliBMl1nXINuuurPenzN2vWzH6IbQQQQAABBBBAAAEEEEAAgTgRINgdJw1FNRFAAAEEEEAAAQQQQAABBBCIloAGmwcPHiw6Nbmm9PR02blzp7Gto7119LeZdGR13759jdHdGRkZ8t5770nHjh3N07VedQ3u4cOHG8d1RPXHH39cKyhe66IAB6644gr56KOPjByffPKJMUrbN7s92K3nNCCv63XriHUSAggggAACCCCAAAIIIIBA4gg0TpxH4UkQQAABBBBAAAEEEEAAAQQQQKAuAvn5+XLVVVdZl5qBbp2W/Oqrr7aO68a///1vI9Ct2zfffHPAQLfm0cD4aaedppvG6PGlS5ca23X956KLLrIu/eyzz6ztQBu/+93vCHQHAuIcAggggAACCCCAAAIIIBCnAk3itN5UGwEEEEAAAQQQQAAB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", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAB7sAAAPUCAYAAADc4V37AAEAAElEQVR4AezdB3gcxdnA8VeSi9zlLle5y8YGY8s2oROC6T30ADZgEpKQQgokAT4IqaSRhJBAsAETIPQOCRAgdGJbLhiDJbnJVe5yl4ukb98ld9lb3a3uTldmb//7PObKzu7O/ObVSdy7M5PXaG3ChgACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAgI8E8n1UV6qKAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIICALUCym0BAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEPCdAMlu33UZFUYAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQINlNDCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAII+E6AZLfvuowKI4AAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgiQ7CYGEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQR8J0Cy23ddRoURQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBEh2EwMIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAr4TINntuy6jwggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACJLuJAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAAB3wmQ7PZdl1FhBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAGS3cQAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggIDvBEh2+67LqDACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAMluYgABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAwHcCJLt912VUGAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEECAZDcxgAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCDgOwGS3b7rMiqMAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIECymxhAAAEE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Haz25GwQyHuBdTu2yWMLp8vjX06XDTu3u55PiwYNZWTXATKq2wBpWdLItRwrEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEgilAsjuY7cpZIZB3Aku3rJeHjF7czy6ZJTt2V7sef4fGzeUioxf3OUZv7r2K67uWYwUCCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggECwBUh212rfDRs2yKeffiozZ86UBQsWyPLly6WyslK2bdsmxcXF0qxZM+nWrZsMHDhQTjvtNGndunWtGqK//frrr2XWrFny+eefm69z5syRrVu32oVXrlxpzyc7s2jRInn++eflo48+ktWrV8vOnTulrKxM+vXrZx7joYcemmyVlPdIoH379h7VnL/Vzli3wnwe90TjudyRGKdxUIs2MqbXIPO53MWFRTFKsioZAWIyGS3KZkuAuMyWNPtJRoC4TEaLstkQICazocw+khUgLpMVo3w2BIjLbCizj2QEiMlktCibLQHiMlvS7CcZAeIyGS3KZkOAmMyGcmr7KIgYU2qbBnOrX//61/Lee+8ldHINGjSQSy65RC6//HIpLCyMuo0myo888kjZuHFj1PXWwlST3ffff7/ce++9smvXLquqOq8nnXSS3HHHHdK4ceM66xJZoEnziooKM4FeXl6eyCaUQSCmwJ7IHnl75SIjyT1FpqxZHrPs0Dad5bKeg2VwaQcpKCiIWZaVCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAAC4RGgZ3eMtm7RooV06dJF2rZtK40aNZLt27fLsmXLzJ7Z1dXVZg/qu+++2+z9rUnnaFNVVVXcRHe07RJZduedd8p9991nFy0tLZUBAwaIJuG15/jChQvNda+++qp5DM8884zZO93egBkEsiyw0xiefMKyOTLWSHIv2LzWde/FBYUyfP/ecknPQdKzWalrOVYggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgiEV4Bkd622HzRokAwbNkyGDBki+++/f621379du3at3HzzzaJJZJ0mTJhgbnPccceZ76P9R5PlvXv3lr59+0qfPn3MRLn2CE91mjRpUo1E94UXXijXXnut1K//wzOM9fiuuuoq2bFjhznE+YMPPihXXHFFqrtkuwwIzJ4926xFYyBM0+aqHfLUohkybsE0qdj+w/D9tQ2a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s0fWrFljHr86qicTArkUICZzqc++3QSISzcZludSgLjMpT77jiZATEZTYVmuBYjLXLcA+48mQFxGU2FZLgWIyVzqs283AeLSTYbluRQgLnOpz76jCRCT0VTSX6a5sjfffDPtikh2p00Y/AratWsn+j8yEwIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIJCuQFlZmZSXl6dbjRSnXQMVBF6gQYMGsnPnTikqKpK999478OfLCSKAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAgHcCmRpNmp7d3rURNSOAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIeCTAQ4M9gqVaBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAHvBEh2e2dLzQgggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACHgmQ7PYIlmoRQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBLwTINntnS01I4AAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgh4JECy2yNYqkUAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQ8E6AZLd3ttSMAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIOCRAMluj2CpFgEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEDAOwGS3d7ZUjMCCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAgEcCxR7VS7UI5FTgm2++kY8//limTZsm8+fPl1WrVsm2bdukcePG0rp1azn44IPl5JNPloEDByZ9nLNmzZIXXnhBpk6dKqtXrza31zq1rjPOOEP69u2bcJ3ffvutfP755zJ79mz734oVK+zt77nnHrNOe0ESM3q+EyZMkIkTJ8pXX30lGzZskBYtWkjHjh3l+OOPl1NPPVUaNWqURI0UTVcgzHFZVVUl8+bNs+NcY37RokWye/duk3X48OFy3333pUvM9ikIhDkuNQb1b8X06dNl4cKFUlFRIdu3b5cmTZpIu3btpH///nL66afLAQcckIIsm6QqENaY1PjTWNTvBQsWLJCvv/5a1qxZI9999500aNBAmjdvLj169JDDDjvM/A6jf9OZsicQ1riMJzxy5Eh588037WL6fVi/fzJlRyCscXn33XeL/k5KZrrmmmvk8ssvT2YTyqYgENaYjEal1yL+/e9/m9ck9O/51q1bzd/jpaWlcuCBB8qgQYPk0EMPlWbNmkXbnGUZFAhjXOo1qyuvvDJlxZdeesmM0ZQrYMO4AmGMSydKJBIxf4v/61//Er3OqtdX9TqmXqfUz8nevXub1y6PPPJIKSoqcm7KvEcCxGRE3nnnHfM6enl5uaxdu1Y0TjUe9Vr/SSedJMOGDfNIn2rdBPIhLvfs2SMaM5MmTZKZM2fKl19+KevXrzeveTdt2lS6dOli/k0966yzpKyszO1UXZfrNfXXXntN9PNSr12uW7dOtF69bnnMMceY1y25PvQ9X4HxP23EVZIVCOSZwBdffCHXXXed+cGSyKHrBbn7779f2rZtG7e4frD86U9/kr/97W/mH7toGxQUFMhvfvMbufHGG6VevXrRitjLLrroIvODKtb/gqkmu2fMmCFjxowxL5TbO6w10759exk7dqyZ+K+1ircZFgh7XD755JNyyy23iP4/5DaR7HaT8W55mONSE9w333yz+SUxEeHjjjtObr/9djPZmEh5yqQmEOaYVLEjjjgi4ZjUGzKuv/56Offcc1PDZquEBcIel7GgXn/9dfntb39bowjJ7hocnr0Je1yS7PYstFKuOOwx6YRbvny5/P73v5cPP/zQuTjq/E033SSjR4+Ouo6F6QuEOS7TTXZ/9NFH0rlz5/QbgRrqCIQ5Li0MTV5deuml5o2+1jK3V016P/jgg2ayyK0My9MTICZFNCYvvPDCuPkEvfH83nvvTSlhmV4rhW/rfInLRx99VMaNG2d2VIjXSpor0s++yy67LOGbeBYvXiyaQ5o7d65r9S1btjRvBNabg8I+0bM77BEQsPNfsmRJnT9M2pO5e/fuZpJCe1JrItjqka29s0844QT55z//KZr8jTVpbwBnTxUtrz3Edfrss89Ef9Rq4vrxxx8379rWizCxJr27O1aiO9a2sdbph9/ZZ59t3hGp5fSDdPDgwWaPdu3hPnnyZKmurjaPV8u9+uqrpk+sOlmXnkDY41JHFYiV6E5Pl61TFQhzXGrPWb0b0pr0RiXtMat/L/TuSI1Z7WGrd2LqpL1ytBe4/g3gbklLLfOvYY7J2pp697heYNSRYxo2bGj+TdcfOXPmzDG/O2zZssW8kK53m1999dW1N+d9BgWIy+iYmzdvNm/ujL6WpV4LEJc/CGtPG/0Xb0qkTLw6WO8uQEx+b6MXZs8880zZuHGjuUC/Y/bs2VM6deokP/rRj8y/5zrqmo54xe8j93jK1Jowx6X2IhsxYkTClHoDm36v1ElHHiDRnTBd0gXDHJeKpddCTzvtNHGOaqm/efT3uP4GqqysND8jddQrnfT3zymnnGL+Jo933dbcgP8kLRD2mNQR1bSDg3X9RwE1j6Aj/BUXF5u9dLW3rl7D144T+nder6UzMkvSoZbUBvkSlxoT+rlmTToqX58+fWTfffc1r+XojRR6fXHHjh2ya9cu0XzR0qVL5YEHHpDCwkJrs6ivmsfRUYStz0P9XvmTn/zEzGFpvGpPcq1Xe3pr58vx48fLkCFDotYVmoXG/6hMCARGwPhjE2nTpk3EGBIsYvRajhgfCnXOzRg2OfLcc89FjB+cZlktb/xRixhDTtQpay3Q8lpO/xkfVpG//vWvEa3HmnRel+k6q9yLL75orY76agwjbpb/2c9+FjGG1IsYvV8jxh/PyCGHHGLX8fzzz0fd1m2h8YPZPHfrGIYOHRox/mjXKK7vdblVxvgQjBgftjXK8CazAmGPy7vuusuMN41tY7jTiHFXbsT4gxwZNWqUHYfGXW2ZRae2uAJhjkuNQf0MNIagMj97jS+Jdbx27txp/h0xhgWy4/SCCy6oU44FmRMIc0yq4m233RYxhoyMGBd+XFGXLVsWMX7s2DGp3zuMG+5cy7MifYGwx6Wb4FVXXWXGoXHRMWL07rZjUr/fMnkvEPa4tL5b6t9ynWfKvUDYY1JbQH9n9+rVy/481N86xg3xURvHGKo3YtxMGTF6z0Zdz8LMCBCXiTkaN/pGOnToYMfuE088kdiGlEpJIOxxqdd+rOuR+++/f+Tvf/97nWuSem1Tr5E649IY0SolbzaKLxDmmNRcwNFHH23HpHGDWuT999+vg2bcdFHjevv5559fpwwLMiuQL3FpdCSMGCMGR375y19G3njjjYjxaMQ6EHrN0eidbceZfgY+9dRTdcrVXmA8gtfeZsCAARHjpsoaRbRe49GLdhmN302bNtUoE7Y3elcKEwKBEZgyZUpEE8RGz+W456QfQNYXLH394IMPom5j3CFTIwH95z//OWo5XXjrrbfadeqHkCZL3CajV2HEeG5XndW6nXVcySa79cugta1+wBl3RNapXxcYdwRFdL1VVr9cMnknEPa4NO5iixh3udUBdv7IIdldh8fzBWGOS6PnQuStt95KyNgYksj+rNTPTKOHd0LbUSh5gTDHZDJa+t3CGD7NjkujZ3cym1M2SQHisi6Y3rBmfYc0HvFgJhut9yS763p5sSTscUmy24uoSq/OsMek6hk9vezPxv/7v/9LD5StMyJAXCbG6LyOpDexRbsROLGaKJWIQJjj8rvvvosYo6nZn5XaaSjW9Mgjj9hl9SZ0Y9SMWMVZl6JAmGNSbzyzfsfojeT//e9/XRX1prZu3brZ5WOVda2EFQkL5Etc6udU7SR0tJPUGyvOO+88O34OOuigmB0v3333Xbus3vhjjAoUrdqI3kBpPErMLhsrbxW1goAtjN1XPjT92znRoAjocwJ1eIeioqK4p/SLX/xCjA8Wu9x7771nzztn3n77bdFhI3TSoceMXtjmfLT/XHHFFaLP0dRJh+Rxq1PXd+3aVRo1aqSzGZuefvppuy6jB6K0atXKfu+c0aGBnM9YNO4mcq5mPsMCYY9L4wuj7LPPPhlWpbp0BcIcl8ccc4wcddRRCRHqUEBlZWV22Vif63YhZlISCHNMJgNWv359Me7wtTfRIVOZvBMgLmvaGneqy+9+9ztzofGj23zeWM0SvMuGAHGZDWX2kYxA2GPyP//5jzm0qZrpENA33HBDMnyU9Ugg7HGZKKvzcX3GKIA8tilRuBTLhTku9TEOOuSuNZ100knWbNRX528eY0RNMZKNUcuxMD2BMMekPrLOmvTzz+iAZr2t82rccCHGCAP2cmMUDHuemcwL5Etcjh49WoyRfeIC6BDk119/vV1OH9kQ61qOM1czfPhw81EP9saOmb322qvGo+10KHN9fG1YJ5LdYW15ztsUMIZVtiX0GQrRJv3hak3HH3+8+bwF633tV32uppaxpjfffNOa9fxVvzR++eWX9n6MYSzs+WgzzvXz5883n+EdrRzLsi8QpLjMvh579EogrHGpN085b4xyPlvMK2vqTUwgrDGpOnvvvbeNZIwSY88zk3uBoMelPmPMGE7fhDaG3peSkpLco3MEcQWCHpdxASjgO4GgxeQzzzxjG+tFz0Ruvrc3YMY3AkGLy0RgFy9eLPosWmvSC+pM/hIIUlwaPRBr4DZt2rTG+9pvaj8T2egZWbsI73MgEKSYdH7+HXHEEXE1jzzySLuMMdy56I3ATP4QyIe47NKlS41nvbvlovSzcvLkyTasM4djL3TMaIceq0OlMYy5TJs2zbE2XLMku8PV3pxtLQG9q8aa9C7BaJMxbIa92HgWuD3vNuMs4/xgciufqeXOfRnDAtXoiRhtH61btxbj+Tj2Kuf29kJmciIQpLjMCSA79UQgzHGZyLl7gk6lMQUSaZd8+Rse80SjrDSG07eX6h3mTP4RCHJcfv7552IMN2lin3LKKWIMp+8feI4kpkCQ4zLmibPStwJBisl169bZvbqLi4vl5z//uW/dObDYAkGKy9hn+sPal156yX6jN1MmkuyxN2AmKwJBikvjubY1zJwddmqs+N8b4/GP9uJ69eqJJoqYci8QpJhcu3atDaqjUsabnDFsDMtf42aheNuy3luBfIxLt1zUjBkzxHh8nQmmPbf79u0bE09vQO/Xr59dJsw5HpLddhgwE0aBBQsW2KdtPKPDnrdmvv32W9FhJazpgAMOsGZdX3v37m2vM56NLVu2bLHfeznjvPDtPIZY+3SWc24faxvWeS8QpLj0Xos9ZEsgzHGpo19YU7S/FdY6XrMrENaY1Is+zz33nI197LHH2vPM5F4gqHGpQ6EZz4cX/UGuvWxuvvnm3GNzBAkLBDUuFUAvUr788sty5513mnF57733yvPPPy9LlixJ2IeC2RcIUkyWl5eL1dtQEzE62pv29NLhTU844QTR39x6M3r//v1l5MiRZry6XdzMfkuwR6dAkOLSeV5u8xq3+vlpTTqktCYUmfwlEKS41N/Szuuqd9xxh/ndMpq4fvfUUYSs6bTTTrN7LlrLeM2NQJBiMl3BeDdspFs/2ycukA9xqXki7XltTW7XF505mu7du4veTBlvcuZ4dNSWsE4ku8Pa8py3rFy5ssaQEIceemgdldoXSZx3cNUp/L8FtcvUrsNtu3SXL1261K4ikbvRtLDzWMP8QWjD+WAmaHHpA1IOIQMCYY7LTz/9VPQxEdYU7W+FtY7X7AmELSZ1GCt9ntNdd91lXjjXu8h1sp5jlT159hRLIMhxOW7cOJk7d655+jfddFONofRjmbAu9wJBjkvV/fvf/y6XXnqp3HffffLYY4+Zn5NXXXWVOfLA0UcfLW+99VbuG4EjqCEQtJicNWuWfX76+1pvktTe3X/4wx9EE+EbNmwwe+esWrVK9DFnGq9HHXWU/UgIe2NmcioQtLhMBPOTTz6R1atX20XjDZNqF2QmawJBjMs//vGP9k0VOgz0L37xC3n99ddFh/PV53nrc7lfe+010b/hH3/8sWmtz1HWz1Sm3AsELSZbtGhho+q5xZv0b7lzciYlncuZz65AvsTliy++aMPoYxz69Oljv3fOOHNJieZ4nInzMOd44t8W4JRmHoEACWiPFOuOav1ROmzYsDpnt3HjRntZkyZNYj6v2yqod3I3btxYrGdoOu/Yscp48eo81pYtWya0i3322ccul63jtHfITFSBoMVl1JNkYd4JhDUutbeDnrs16bO73b6MWmV4zY5A0GNSe9noxXC3SYfo0mcq3n777Qnd5etWD8szKxDUuNQbKrW3rE7cYJHZmMlGbUGNy0Ts5syZI7/5zW/k7LPPNj8veY5yImrelwlaTDovfOuobuecc449Opz2sunRo4d53WH27NliXXzUhLj2+tbkt/MGdO/12YObQNDi0u08ncudQ5hrnDp73DrLMZ87gSDGpT76cfz48XLBBReYPRz1Zsrf/va3UZFLS0vlrLPOkssvv9xOkEctyMKsCQQtJg888ECx/o5/+OGH8stf/jKm5XvvvVdjPdfSa3Dk7E0+xKX26n7ooYdsI/2+6NZj25njceZu7I2jzLRq1cpeGua4LLQVmEEgRAJ6J80bb7xhn/H1118vDRo0sN9bM9qTypr0+QeJTs6yzjoS3T6Vcs79OPcfqy5nOauXWKzyrPNWIIhx6a0YtWdDIMxxqb3ErN46hYWF3E2ejYBLYB9hjknl0Tt2dRhzTT5G++6SACFFPBAIalxGIhG59tprzZ429evXNxOGzueheUBJlRkUCGpcKlHnzp3lsssukxdeeMF8XuKyZctEh5LUi5A6+kDr1q1tyWeffZa/4bZGbmeCGJP66DNr+u9//2smuvXZx5pI1JEF9O/1Aw88IB999JE8/PDDYv0GX79+vYwZM8balNccCgQxLuNx6vUj58gXehMlk78EghyXQ4YMEf281JFY3JI9eoPa0KFDzRuDGF7fH7EZxJjUkVis6e2335bPPvvMelvnVZPizzzzTI3lVke3Ggt5k1WBfIhL7Wypv1useNEE9sUXX+zqlG6Ox7m9604CuoJkd0AbltNyF9A7qjW5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DpChQ4fKqaeeKvXr149Whb1sypQpMnz4cPP9wIEDZcKECea8Hv/LL79sDsmuyf3vvvtObr75Zhk1apS9LTMIIIAAAggggAACCCCAAALBFCgO5mlxVggggAACCCCAAAIIIIAAAgiET0CTyPfee68cd9xxUl1dLW+++aa89tprcsIJJ5gYFRUVcuutt9ow119/fY1E9549e8zh0MeNG2f3/LYKV1VVyaZNm2Tu3LnyxBNPiD4nXJPmBQUFVpEar5999pmceeaZsm3bthrL9Y0m5TUpvWLFCnnrrbfk/vvvN5PymvxOdPr222/lyiuvNM8x0W0ohwACCCCAAAIIIIAAAgggECwBkt3Bak/OBgEEEEAAAQQQQAABBBBAIOQCvXv3ltGjR8vYsWNNiZtuusnsja09qX//+9+LJol1GjBggJx33nnmvP5n9+7d5nZvvPGGvaysrEwOOuggsxe2Jqdnzpwp+rxvTaQ/+OCDsmHDBvnLX/5il3fOaA9uK9HdsmVL6dq1q7Ru3drsIa49vrWeWbNmmXV98803Zu9uTXzvv//+zmqizusgdWPGjJF3333XTLb36dNHunTpIrp84cKFrgn4qJWxEAEEEEAAAQQQQAABBBBAIG8FGMY8b5uOA0cAAQQQQAABBBBAAAEEEEAgusDOnTvlqKOOkkWLFpkFTjnlFHO48Isuush8X1JSIu+884507NjRruDOO++U++67z3zfqlUrswe4DoNeu+f2xIkT5dprr7WT5o888ojdc9yuzJjRnt1vv/22nHTSSdK9e3fnKnt+3bp1os8W12HIddIh0l944QV7vXPGOYx5cXGxmSTX55Rr0l1fnZOef4MGDZyLmEcAAQQQQAABBBBAAAEEEAigAMnuADYqp4QAAggggAACCCCAAAIIIICAJptPPPFE0aHJdWrcuLFs3brVnNfe3tr725q0Z/XgwYPN3t3NmjWT119/XTp06GCtrvOqz+A+/fTTzeXao/qDDz6okxSvs1GMBb/61a/k/fffN0t8+OGHZi/t2sWdyW5dpwl5fV639lhnQgABBBBAAAEEEEAAAQQQCKdAYThPm7NGAAEEEEAAAQQQQAABBBBAINgCBx98sIwcOdI+SSvRrcOSjxo1yl6uM48//riZ6Nb5K664ImaiW8toYvzwww/XWbP3+BdffGHOp/qf4cOH25tOmjTJno81c/nll5PojgXEOgQQQAABBBBAAAEEEEAgBALFIThHThEBBBBAAAEEEEAAAQQQQACBUArocOM6lLg+H1snHdr7nnvukaKiIvO99R+rV7W+P/nkk63FMV814a29sHWaPn266LPC3SZ9Rnd5ebksWLBA1q9fbz7LW58Rbk0VFRXWrMydO9eejzVzwgknxFrNOgQQQAABBBBAAAEEEEAAgRAIkOwOQSNziggggAACCCCAAAIIIIAAAuEUaNiwoejzujXBrZP29u7atWsNjA0bNsjSpUvNZfXr17fL1igU5c2XX35pL121apU975zZuHGj3HXXXTJhwgR7CHXn+mjzejzxpv3220+aN28erxjrEUAAAQQQQAABBBBAAAEEAi5AsjvgDczpIYAAAggggAACCCCAAAIIIBBLYM2aNfbqqqoqeeqpp+z3ic5s3ry5TtEVK1aYifaVK1fWWRdrgTXceqwye++9d6zVrEMAAQQQQAABBBBAAAEEEAiJAMnukDQ0p4kAAggggAACCCCAAAIIIIBANIEtW7ZEW5zUsurq6jrlL774YrES3Y0bN5azzjrLfM53x44dpWXLllJSUiKFhYXmdlOmTBHrud2RSKROXbUX6LZMCCCAAAIIIIAAAggggAACCJDsJgYQQAABBBBAAAEEEEAAAQQQCLGADnVuTU2aNDGfq229T/X1008/lRkzZpibN2rUSCZOnFhn+HRn3Yn05naWZx4BBBBAAAEEEEAAAQQQQAABFfj+FmosEEAAAQQQQAABBBBAAAEEEEAglAL77LOPfd7ay3v79u32+1RnPvnkE3tT7bFd+znh9sr/zVg9wGsv5z0CCCCAAAIIIIAAAggggAACsQRIdsfSYR0CCCCAAAIIIIAAAggggAACARcoLS2VNm3a2GepvbLTnSorK+0qunfvbs+7zUybNs1tFcsRQAABBBBAAAEEEEAAAQQQcBUg2e1KwwoEEEAAAQQQQAABBBBAAAEEwiEwdOhQ+0SfeeYZez7VGetZ3Lp9vJ7iFRUV8vbbb6e6K7ZDAAEEEEAAAQQQQAABBBAIsQDJ7hA3PqeOAAIIIIAAAggggAACCCCAgApccMEFUlRUZGK8+eab8sILLyQMs2bNmjpl99tvP3tZrET27t275dprr5Wqqiq7PDMIIIAAAggggAACCCCAAAIIJCpAsjtRKcohgAACCCCA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", "text/plain": [ "" ] @@ -244,7 +267,9 @@ } ], "source": [ - "api_response = gpt_assistant.openai_client.files.with_raw_response.retrieve_content(\"file-sAG7r763XR9jiuKYiQeoHRFU\")\n", + "api_response = gpt_assistant.openai_client.files.with_raw_response.retrieve_content(\n", + " \"assistant-tvLtfOn6uAJ9kxmnxgK2OXID\"\n", + ")\n", "\n", "if api_response.status_code == 200:\n", " content = api_response.content\n", @@ -255,10 +280,20 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 10, "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Permanently deleting assistant...\n" + ] + } + ], + "source": [ + "gpt_assistant.delete_assistant()" + ] } ], "metadata": { diff --git a/notebook/agentchat_qdrant_RetrieveChat.ipynb b/notebook/agentchat_qdrant_RetrieveChat.ipynb index e1152e750ee3..4a040a5f49a4 100644 --- a/notebook/agentchat_qdrant_RetrieveChat.ipynb +++ b/notebook/agentchat_qdrant_RetrieveChat.ipynb @@ -1,18 +1,10 @@ { "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\"Open" - ] - }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ - "\n", "# Using RetrieveChat with Qdrant for Retrieve Augmented Code Generation and Question Answering\n", "\n", "[Qdrant](https://qdrant.tech/) is a high-performance vector search engine/database.\n", @@ -24,13 +16,17 @@ "\n", "We'll demonstrate usage of RetrieveChat with Qdrant for code generation and question answering w/ human feedback.\n", "\n", + "````{=mdx}\n", + ":::info Requirements\n", + "Some extra dependencies are needed for this notebook, which can be installed via pip:\n", "\n", - "## Requirements\n", - "\n", - "AutoGen requires `Python>=3.8`. To run this notebook example, please install the [retrievechat] option.\n", "```bash\n", "pip install \"pyautogen[retrievechat]>=0.2.3\" \"flaml[automl]\" \"qdrant_client[fastembed]\"\n", - "```" + "```\n", + "\n", + "For more information, please refer to the [installation guide](/docs/installation/).\n", + ":::\n", + "````" ] }, { @@ -207,14 +203,14 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "models to use: ['gpt-3.5-turbo']\n" + "models to use: ['gpt-4-1106-preview', 'gpt-4-turbo-preview', 'gpt-4-0613', 'gpt-35-turbo-0613', 'gpt-35-turbo-1106']\n" ] } ], @@ -253,40 +249,16 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "It first looks for environment variable \"OAI_CONFIG_LIST\" which needs to be a valid json string. If that variable is not found, it then looks for a json file named \"OAI_CONFIG_LIST\". It filters the configs by models (you can filter by other keys as well). Only the gpt-4 and gpt-3.5-turbo models are kept in the list based on the filter condition.\n", - "\n", - "The config list looks like the following:\n", - "```python\n", - "config_list = [\n", - " {\n", - " 'model': 'gpt-4',\n", - " 'api_key': '',\n", - " },\n", - " {\n", - " 'model': 'gpt-4',\n", - " 'api_key': '',\n", - " 'base_url': '',\n", - " 'api_type': 'azure',\n", - " 'api_version': '2024-02-15-preview',\n", - " },\n", - " {\n", - " 'model': 'gpt-3.5-turbo',\n", - " 'api_key': '',\n", - " 'base_url': '',\n", - " 'api_type': 'azure',\n", - " 'api_version': '2024-02-15-preview',\n", - " },\n", - "]\n", - "```\n", - "\n", - "If you open this notebook in colab, you can upload your files by clicking the file icon on the left panel and then choose \"upload file\" icon.\n", - "\n", - "You can set the value of config_list in other ways you prefer, e.g., loading from a YAML file." + "````{=mdx}\n", + ":::tip\n", + "Learn more about configuring LLMs for agents [here](/docs/topics/llm_configuration).\n", + ":::\n", + "````" ] }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 3, "metadata": {}, "outputs": [ { @@ -317,7 +289,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 19, "metadata": {}, "outputs": [], "source": [ @@ -351,12 +323,17 @@ " max_consecutive_auto_reply=10,\n", " retrieve_config={\n", " \"task\": \"code\",\n", - " \"docs_path\": \"~/path/to/FLAML/website/docs/reference\", # change this to your own path, such as https://raw.githubusercontent.com/microsoft/autogen/main/README.md\n", + " \"docs_path\": [\n", + " \"https://raw.githubusercontent.com/microsoft/flaml/main/README.md\",\n", + " \"https://raw.githubusercontent.com/microsoft/FLAML/main/website/docs/Research.md\",\n", + " ], # change this to your own path, such as https://raw.githubusercontent.com/microsoft/autogen/main/README.md\n", " \"chunk_token_size\": 2000,\n", " \"model\": config_list[0][\"model\"],\n", " \"client\": QdrantClient(\":memory:\"),\n", " \"embedding_model\": \"BAAI/bge-small-en-v1.5\",\n", " },\n", + " # code_execution_config={\n", + " # \"use_docker\": False,}\n", ")" ] }, @@ -384,12 +361,10 @@ "name": "stdout", "output_type": "stream", "text": [ - "\u001b[32mAdding doc_id 69 to context.\u001b[0m\n", + "Trying to create collection.\n", "\u001b[32mAdding doc_id 0 to context.\u001b[0m\n", - "\u001b[32mAdding doc_id 47 to context.\u001b[0m\n", - "\u001b[32mAdding doc_id 64 to context.\u001b[0m\n", - "\u001b[32mAdding doc_id 65 to context.\u001b[0m\n", - "\u001b[32mAdding doc_id 21 to context.\u001b[0m\n", + "\u001b[32mAdding doc_id 2 to context.\u001b[0m\n", + "\u001b[32mAdding doc_id 1 to context.\u001b[0m\n", "\u001b[33mragproxyagent\u001b[0m (to assistant):\n", "\n", "You're a retrieve augmented coding assistant. You answer user's questions based on your own knowledge and the\n", @@ -404,320 +379,268 @@ "\n", "User's question is: Is there a function called tune_automl?\n", "\n", - "Context is: {\n", - " \"items\": [\n", - " {\n", - " \"items\": [\n", - " {\n", - " \"items\": [\n", - " {\n", - " \"items\": [\n", - " \"reference/autogen/agentchat/contrib/math_user_proxy_agent\",\n", - " \"reference/autogen/agentchat/contrib/retrieve_assistant_agent\",\n", - " \"reference/autogen/agentchat/contrib/retrieve_user_proxy_agent\"\n", - " ],\n", - " \"label\": \"autogen.agentchat.contrib\",\n", - " \"type\": \"category\"\n", - " },\n", - " \"reference/autogen/agentchat/agent\",\n", - " \"reference/autogen/agentchat/assistant_agent\",\n", - " \"reference/autogen/agentchat/conversable_agent\",\n", - " \"reference/autogen/agentchat/groupchat\",\n", - " \"reference/autogen/agentchat/user_proxy_agent\"\n", - " ],\n", - " \"label\": \"autogen.agentchat\",\n", - " \"type\": \"category\"\n", - " },\n", - " {\n", - " \"items\": [\n", - " \"reference/autogen/oai/completion\",\n", - " \"reference/autogen/oai/openai_utils\"\n", - " ],\n", - " \"label\": \"autogen.oai\",\n", - " \"type\": \"category\"\n", - " },\n", - " \"reference/autogen/code_utils\",\n", - " \"reference/autogen/math_utils\",\n", - " \"reference/autogen/retrieve_utils\"\n", - " ],\n", - " \"label\": \"autogen\",\n", - " \"type\": \"category\"\n", - " },\n", - " {\n", - " \"items\": [\n", - " {\n", - " \"items\": [\n", - " {\n", - " \"items\": [\n", - " \"reference/automl/nlp/huggingface/trainer\",\n", - " \"reference/automl/nlp/huggingface/training_args\",\n", - " \"reference/automl/nlp/huggingface/utils\"\n", - " ],\n", - " \"label\": \"automl.nlp.huggingface\",\n", - " \"type\": \"category\"\n", - " },\n", - " \"reference/automl/nlp/utils\"\n", - " ],\n", - " \"label\": \"automl.nlp\",\n", - " \"type\": \"category\"\n", - " },\n", - " {\n", - " \"items\": [\n", - " \"reference/automl/spark/metrics\",\n", - " \"reference/automl/spark/utils\"\n", - " ],\n", - " \"label\": \"automl.spark\",\n", - " \"type\": \"category\"\n", - " },\n", - " {\n", - " \"items\": [\n", - " \"reference/automl/task/task\",\n", - " \"reference/automl/task/time_series_task\"\n", - " ],\n", - " \"label\": \"automl.task\",\n", - " \"type\": \"category\"\n", - " },\n", - " {\n", - " \"items\": [\n", - " \"reference/automl/time_series/sklearn\",\n", - " \"reference/automl/time_series/tft\",\n", - " \"reference/automl/time_series/ts_data\",\n", - " \"reference/automl/time_series/ts_model\"\n", - " ],\n", - " \"label\": \"automl.time_series\",\n", - " \"type\": \"category\"\n", - " },\n", - " \"reference/automl/automl\",\n", - " \"reference/automl/data\",\n", - " \"reference/automl/ml\",\n", - " \"reference/automl/model\",\n", - " \"reference/automl/state\"\n", - " ],\n", - " \"label\": \"automl\",\n", - " \"type\": \"category\"\n", - " },\n", - " {\n", - " \"items\": [\n", - " \"reference/default/estimator\",\n", - " \"reference/default/greedy\",\n", - " \"reference/default/portfolio\",\n", - " \"reference/default/suggest\"\n", - " ],\n", - " \"label\": \"default\",\n", - " \"type\": \"category\"\n", - " },\n", - " {\n", - " \"items\": [\n", - " \"reference/onlineml/autovw\",\n", - " \"reference/onlineml/trial\",\n", - " \"reference/onlineml/trial_runner\"\n", - " ],\n", - " \"label\": \"onlineml\",\n", - " \"type\": \"category\"\n", - " },\n", - " {\n", - " \"items\": [\n", - " {\n", - " \"items\": [\n", - " \"reference/tune/scheduler/online_scheduler\",\n", - " \"reference/tune/scheduler/trial_scheduler\"\n", - " ],\n", - " \"label\": \"tune.scheduler\",\n", - " \"type\": \"category\"\n", - " },\n", - " {\n", - " \"items\": [\n", - " \"reference/tune/searcher/blendsearch\",\n", - " \"reference/tune/searcher/cfo_cat\",\n", - " \"reference/tune/searcher/flow2\",\n", - " \"reference/tune/searcher/online_searcher\",\n", - " \"reference/tune/searcher/search_thread\",\n", - " \"reference/tune/searcher/suggestion\",\n", - " \"reference/tune/searcher/variant_generator\"\n", - " ],\n", - " \"label\": \"tune.searcher\",\n", - " \"type\": \"category\"\n", - " },\n", - " {\n", - " \"items\": [\n", - " \"reference/tune/spark/utils\"\n", - " ],\n", - " \"label\": \"tune.spark\",\n", - " \"type\": \"category\"\n", - " },\n", - " \"reference/tune/analysis\",\n", - " \"reference/tune/sample\",\n", - " \"reference/tune/space\",\n", - " \"reference/tune/trial\",\n", - " \"reference/tune/trial_runner\",\n", - " \"reference/tune/tune\",\n", - " \"reference/tune/utils\"\n", - " ],\n", - " \"label\": \"tune\",\n", - " \"type\": \"category\"\n", - " },\n", - " \"reference/config\"\n", - " ],\n", - " \"label\": \"Reference\",\n", - " \"type\": \"category\"\n", - "}\n", - "---\n", - "sidebar_label: config\n", - "title: config\n", - "---\n", + "Context is: [![PyPI version](https://badge.fury.io/py/FLAML.svg)](https://badge.fury.io/py/FLAML)\n", + "![Conda version](https://img.shields.io/conda/vn/conda-forge/flaml)\n", + "[![Build](https://github.com/microsoft/FLAML/actions/workflows/python-package.yml/badge.svg)](https://github.com/microsoft/FLAML/actions/workflows/python-package.yml)\n", + "![Python Version](https://img.shields.io/badge/3.8%20%7C%203.9%20%7C%203.10-blue)\n", + "[![Downloads](https://pepy.tech/badge/flaml)](https://pepy.tech/project/flaml)\n", + "[![](https://img.shields.io/discord/1025786666260111483?logo=discord&style=flat)](https://discord.gg/Cppx2vSPVP)\n", + "\n", "\n", - "!\n", - "* Copyright (c) Microsoft Corporation. All rights reserved.\n", - "* Licensed under the MIT License.\n", "\n", - "#### PENALTY\n", + "# A Fast Library for Automated Machine Learning & Tuning\n", "\n", - "penalty term for constraints\n", + "

\n", + " \n", + "
\n", + "

\n", "\n", + ":fire: Heads-up: We have migrated [AutoGen](https://microsoft.github.io/autogen/) into a dedicated [github repository](https://github.com/microsoft/autogen). Alongside this move, we have also launched a dedicated [Discord](https://discord.gg/pAbnFJrkgZ) server and a [website](https://microsoft.github.io/autogen/) for comprehensive documentation.\n", "\n", - "---\n", - "sidebar_label: trial_scheduler\n", - "title: tune.scheduler.trial_scheduler\n", - "---\n", + ":fire: The automated multi-agent chat framework in [AutoGen](https://microsoft.github.io/autogen/) is in preview from v2.0.0.\n", "\n", - "## TrialScheduler Objects\n", + ":fire: FLAML is highlighted in OpenAI's [cookbook](https://github.com/openai/openai-cookbook#related-resources-from-around-the-web).\n", "\n", - "```python\n", - "class TrialScheduler()\n", - "```\n", + ":fire: [autogen](https://microsoft.github.io/autogen/) is released with support for ChatGPT and GPT-4, based on [Cost-Effective Hyperparameter Optimization for Large Language Model Generation Inference](https://arxiv.org/abs/2303.04673).\n", "\n", - "Interface for implementing a Trial Scheduler class.\n", + ":fire: FLAML supports Code-First AutoML & Tuning – Private Preview in [Microsoft Fabric Data Science](https://learn.microsoft.com/en-us/fabric/data-science/).\n", "\n", - "#### CONTINUE\n", "\n", - "Status for continuing trial execution\n", + "## What is FLAML\n", + "FLAML is a lightweight Python library for efficient automation of machine\n", + "learning and AI operations. It automates workflow based on large language models, machine learning models, etc.\n", + "and optimizes their performance.\n", "\n", - "#### PAUSE\n", + "* FLAML enables building next-gen GPT-X applications based on multi-agent conversations with minimal effort. It simplifies the orchestration, automation and optimization of a complex GPT-X workflow. It maximizes the performance of GPT-X models and augments their weakness.\n", + "* For common machine learning tasks like classification and regression, it quickly finds quality models for user-provided data with low computational resources. It is easy to customize or extend. Users can find their desired customizability from a smooth range.\n", + "* It supports fast and economical automatic tuning (e.g., inference hyperparameters for foundation models, configurations in MLOps/LMOps workflows, pipelines, mathematical/statistical models, algorithms, computing experiments, software configurations), capable of handling large search space with heterogeneous evaluation cost and complex constraints/guidance/early stopping.\n", "\n", - "Status for pausing trial execution\n", + "FLAML is powered by a series of [research studies](https://microsoft.github.io/FLAML/docs/Research/) from Microsoft Research and collaborators such as Penn State University, Stevens Institute of Technology, University of Washington, and University of Waterloo.\n", "\n", - "#### STOP\n", + "FLAML has a .NET implementation in [ML.NET](http://dot.net/ml), an open-source, cross-platform machine learning framework for .NET.\n", "\n", - "Status for stopping trial execution\n", + "## Installation\n", "\n", + "FLAML requires **Python version >= 3.8**. It can be installed from pip:\n", "\n", - "---\n", - "sidebar_label: retrieve_user_proxy_agent\n", - "title: autogen.agentchat.contrib.retrieve_user_proxy_agent\n", - "---\n", + "```bash\n", + "pip install flaml\n", + "```\n", + "\n", + "Minimal dependencies are installed without extra options. You can install extra options based on the feature you need. For example, use the following to install the dependencies needed by the [`autogen`](https://microsoft.github.io/autogen/) package.\n", + "```bash\n", + "pip install \"flaml[autogen]\"\n", + "```\n", "\n", - "## RetrieveUserProxyAgent Objects\n", + "Find more options in [Installation](https://microsoft.github.io/FLAML/docs/Installation).\n", + "Each of the [`notebook examples`](https://github.com/microsoft/FLAML/tree/main/notebook) may require a specific option to be installed.\n", "\n", + "## Quickstart\n", + "\n", + "* (New) The [autogen](https://microsoft.github.io/autogen/) package enables the next-gen GPT-X applications with a generic multi-agent conversation framework.\n", + "It offers customizable and conversable agents which integrate LLMs, tools and human.\n", + "By automating chat among multiple capable agents, one can easily make them collectively perform tasks autonomously or with human feedback, including tasks that require using tools via code. For example,\n", "```python\n", - "class RetrieveUserProxyAgent(UserProxyAgent)\n", + "from flaml import autogen\n", + "assistant = autogen.AssistantAgent(\"assistant\")\n", + "user_proxy = autogen.UserProxyAgent(\"user_proxy\")\n", + "user_proxy.initiate_chat(assistant, message=\"Show me the YTD gain of 10 largest technology companies as of today.\")\n", + "# This initiates an automated chat between the two agents to solve the task\n", "```\n", "\n", - "#### \\_\\_init\\_\\_\n", + "Autogen also helps maximize the utility out of the expensive LLMs such as ChatGPT and GPT-4. It offers a drop-in replacement of `openai.Completion` or `openai.ChatCompletion` with powerful functionalites like tuning, caching, templating, filtering. For example, you can optimize generations by LLM with your own tuning data, success metrics and budgets.\n", + "```python\n", + "# perform tuning\n", + "config, analysis = autogen.Completion.tune(\n", + " data=tune_data,\n", + " metric=\"success\",\n", + " mode=\"max\",\n", + " eval_func=eval_func,\n", + " inference_budget=0.05,\n", + " optimization_budget=3,\n", + " num_samples=-1,\n", + ")\n", + "# perform inference for a test instance\n", + "response = autogen.Completion.create(context=test_instance, **config)\n", + "```\n", + "* With three lines of code, you can start using this economical and fast\n", + "AutoML engine as a [scikit-learn style estimator](https://microsoft.github.io/FLAML/docs/Use-Cases/Task-Oriented-AutoML).\n", "\n", "```python\n", - "def __init__(name=\"RetrieveChatAgent\",\n", - " is_termination_msg: Optional[Callable[\n", - " [Dict], bool]] = _is_termination_msg_retrievechat,\n", - " human_input_mode: Optional[str] = \"ALWAYS\",\n", - " retrieve_config: Optional[Dict] = None,\n", - " **kwargs)\n", + "from flaml import AutoML\n", + "automl = AutoML()\n", + "automl.fit(X_train, y_train, task=\"classification\")\n", "```\n", "\n", - "**Arguments**:\n", - "\n", - "- `name` _str_ - name of the agent.\n", - "- `human_input_mode` _str_ - whether to ask for human inputs every time a message is received.\n", - " Possible values are \"ALWAYS\", \"TERMINATE\", \"NEVER\".\n", - " (1) When \"ALWAYS\", the agent prompts for human input every time a message is received.\n", - " Under this mode, the conversation stops when the human input is \"exit\",\n", - " or when is_termination_msg is True and there is no human input.\n", - " (2) When \"TERMINATE\", the agent only prompts for human input only when a termination message is received or\n", - " the number of auto reply reaches the max_consecutive_auto_reply.\n", - " (3) When \"NEVER\", the agent will never prompt for human input. Under this mode, the conversation stops\n", - " when the number of auto reply reaches the max_consecutive_auto_reply or when is_termination_msg is True.\n", - "- `retrieve_config` _dict or None_ - config for the retrieve agent.\n", - " To use default config, set to None. Otherwise, set to a dictionary with the following keys:\n", - " - task (Optional, str): the task of the retrieve chat. Possible values are \"code\", \"qa\" and \"default\". System\n", - " prompt will be different for different tasks. The default value is `default`, which supports both code and qa.\n", - " - client (Optional, chromadb.Client): the chromadb client.\n", - " If key not provided, a default client `chromadb.Client()` will be used.\n", - " - docs_path (Optional, str): the path to the docs directory. It can also be the path to a single file,\n", - " or the url to a single file. If key not provided, a default path `./docs` will be used.\n", - " - collection_name (Optional, str): the name of the collection.\n", - " If key not provided, a default name `flaml-docs` will be used.\n", - " - model (Optional, str): the model to use for the retrieve chat.\n", - " If key not provided, a default model `gpt-4` will be used.\n", - " - chunk_token_size (Optional, int): the chunk token size for the retrieve chat.\n", - " If key not provided, a default size `max_tokens * 0.4` will be used.\n", - " - context_max_tokens (Optional, int): the context max token size for the retrieve chat.\n", - " If key not provided, a default size `max_tokens * 0.8` will be used.\n", - " - chunk_mode (Optional, str): the chunk mode for the retrieve chat. Possible values are\n", - " \"multi_lines\" and \"one_line\". If key not provided, a default mode `multi_lines` will be used.\n", - " - must_break_at_empty_line (Optional, bool): chunk will only break at empty line if True. Default is True.\n", - " If chunk_mode is \"one_line\", this parameter will be ignored.\n", - " - embedding_model (Optional, str): the embedding model to use for the retrieve chat.\n", - " If key not provided, a default model `all-MiniLM-L6-v2` will be used. All available models\n", - " can be found at `https://www.sbert.net/docs/pretrained_models.html`. The default model is a\n", - " fast model. If you want to use a high performance model, `all-mpnet-base-v2` is recommended.\n", - " - customized_prompt (Optional, str): the customized prompt for the retrieve chat. Default is None.\n", - "- `**kwargs` _dict_ - other kwargs in [UserProxyAgent](user_proxy_agent#__init__).\n", - "\n", - "#### generate\\_init\\_message\n", + "* You can restrict the learners and use FLAML as a fast hyperparameter tuning\n", + "tool for XGBoost, LightGBM, Random Forest etc. or a [customized learner](https://microsoft.github.io/FLAML/docs/Use-Cases/Task-Oriented-AutoML#estimator-and-search-space).\n", "\n", "```python\n", - "def generate_init_message(problem: str,\n", - " n_results: int = 20,\n", - " search_string: str = \"\")\n", + "automl.fit(X_train, y_train, task=\"classification\", estimator_list=[\"lgbm\"])\n", "```\n", "\n", - "Generate an initial message with the given problem and prompt.\n", + "* You can also run generic hyperparameter tuning for a [custom function](https://microsoft.github.io/FLAML/docs/Use-Cases/Tune-User-Defined-Function).\n", "\n", - "**Arguments**:\n", + "```python\n", + "from flaml import tune\n", + "tune.run(evaluation_function, config={…}, low_cost_partial_config={…}, time_budget_s=3600)\n", + "```\n", "\n", - "- `problem` _str_ - the problem to be solved.\n", - "- `n_results` _int_ - the number of results to be retrieved.\n", - "- `search_string` _str_ - only docs containing this string will be retrieved.\n", - " \n", + "* [Zero-shot AutoML](https://microsoft.github.io/FLAML/docs/Use-Cases/Zero-Shot-AutoML) allows using the existing training API from lightgbm, xgboost etc. while getting the benefit of AutoML in choosing high-performance hyperparameter configurations per task.\n", "\n", - "**Returns**:\n", + "```python\n", + "from flaml.default import LGBMRegressor\n", "\n", - "- `str` - the generated prompt ready to be sent to the assistant agent.\n", + "# Use LGBMRegressor in the same way as you use lightgbm.LGBMRegressor.\n", + "estimator = LGBMRegressor()\n", + "# The hyperparameters are automatically set according to the training data.\n", + "estimator.fit(X_train, y_train)\n", + "```\n", "\n", + "## Documentation\n", "\n", - "---\n", - "sidebar_label: retrieve_assistant_agent\n", - "title: autogen.agentchat.contrib.retrieve_assistant_agent\n", - "---\n", + "You can find a detailed documentation about FLAML [here](https://microsoft.github.io/FLAML/).\n", "\n", - "## RetrieveAssistantAgent Objects\n", + "In addition, you can find:\n", "\n", - "```python\n", - "class RetrieveAssistantAgent(AssistantAgent)\n", + "- [Research](https://microsoft.github.io/FLAML/docs/Research) and [blogposts](https://microsoft.github.io/FLAML/blog) around FLAML.\n", + "\n", + "- [Discord](https://discord.gg/Cppx2vSPVP).\n", + "\n", + "- [Contributing guide](https://microsoft.github.io/FLAML/docs/Contribute).\n", + "\n", + "- ML.NET documentation and tutorials for [Model Builder](https://learn.microsoft.com/dotnet/machine-learning/tutorials/predict-prices-with-model-builder), [ML.NET CLI](https://learn.microsoft.com/dotnet/machine-learning/tutorials/sentiment-analysis-cli), and [AutoML API](https://learn.microsoft.com/dotnet/machine-learning/how-to-guides/how-to-use-the-automl-api).\n", + "\n", + "## Contributing\n", + "\n", + "This project welcomes contributions and suggestions. Most contributions require you to agree to a\n", + "Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us\n", + "the rights to use your contribution. For details, visit .\n", + "\n", + "If you are new to GitHub [here](https://help.github.com/categories/collaborating-with-issues-and-pull-requests/) is a detailed help source on getting involved with development on GitHub.\n", + "# Research\n", + "\n", + "For technical details, please check our research publications.\n", + "\n", + "* [FLAML: A Fast and Lightweight AutoML Library](https://www.microsoft.com/en-us/research/publication/flaml-a-fast-and-lightweight-automl-library/). Chi Wang, Qingyun Wu, Markus Weimer, Erkang Zhu. MLSys 2021.\n", + "\n", + "```bibtex\n", + "@inproceedings{wang2021flaml,\n", + " title={FLAML: A Fast and Lightweight AutoML Library},\n", + " author={Chi Wang and Qingyun Wu and Markus Weimer and Erkang Zhu},\n", + " year={2021},\n", + " booktitle={MLSys},\n", + "}\n", "```\n", "\n", - "(Experimental) Retrieve Assistant agent, designed to solve a task with LLM.\n", + "* [Frugal Optimization for Cost-related Hyperparameters](https://arxiv.org/abs/2005.01571). Qingyun Wu, Chi Wang, Silu Huang. AAAI 2021.\n", "\n", - "RetrieveAssistantAgent is a subclass of AssistantAgent configured with a default system message.\n", - "The default system message is designed to solve a task with LLM,\n", - "including suggesting python code blocks and debugging.\n", - "`human_input_mode` is default to \"NEVER\"\n", - "and `code_execution_config` is default to False.\n", - "This agent doesn't execute code by default, and expects the user to execute the code.\n", + "```bibtex\n", + "@inproceedings{wu2021cfo,\n", + " title={Frugal Optimization for Cost-related Hyperparameters},\n", + " author={Qingyun Wu and Chi Wang and Silu Huang},\n", + " year={2021},\n", + " booktitle={AAAI},\n", + "}\n", + "```\n", "\n", + "* [Economical Hyperparameter Optimization With Blended Search Strategy](https://www.microsoft.com/en-us/research/publication/economical-hyperparameter-optimization-with-blended-search-strategy/). Chi Wang, Qingyun Wu, Silu Huang, Amin Saied. ICLR 2021.\n", "\n", - "---\n", - "sidebar_label: utils\n", - "title: automl.nlp.huggingface.utils\n", - "---\n", + "```bibtex\n", + "@inproceedings{wang2021blendsearch,\n", + " title={Economical Hyperparameter Optimization With Blended Search Strategy},\n", + " author={Chi Wang and Qingyun Wu and Silu Huang and Amin Saied},\n", + " year={2021},\n", + " booktitle={ICLR},\n", + "}\n", + "```\n", "\n", - "#### todf\n", + "* [An Empirical Study on Hyperparameter Optimization for Fine-Tuning Pre-trained Language Models](https://aclanthology.org/2021.acl-long.178.pdf). Susan Xueqing Liu, Chi Wang. ACL 2021.\n", "\n", - "```python\n", - "def todf(X, Y, column_name)\n", + "```bibtex\n", + "@inproceedings{liuwang2021hpolm,\n", + " title={An Empirical Study on Hyperparameter Optimization for Fine-Tuning Pre-trained Language Models},\n", + " author={Susan Xueqing Liu and Chi Wang},\n", + " year={2021},\n", + " booktitle={ACL},\n", + "}\n", "```\n", "\n", - "todf converts Y from any format (list, pandas.Series, numpy array) to a DataFrame before being returned\n", + "* [ChaCha for Online AutoML](https://www.microsoft.com/en-us/research/publication/chacha-for-online-automl/). Qingyun Wu, Chi Wang, John Langford, Paul Mineiro and Marco Rossi. ICML 2021.\n", "\n", + "```bibtex\n", + "@inproceedings{wu2021chacha,\n", + " title={ChaCha for Online AutoML},\n", + " author={Qingyun Wu and Chi Wang and John Langford and Paul Mineiro and Marco Rossi},\n", + " year={2021},\n", + " booktitle={ICML},\n", + "}\n", + "```\n", + "\n", + "* [Fair AutoML](https://arxiv.org/abs/2111.06495). Qingyun Wu, Chi Wang. ArXiv preprint arXiv:2111.06495 (2021).\n", + "\n", + "```bibtex\n", + "@inproceedings{wuwang2021fairautoml,\n", + " title={Fair AutoML},\n", + " author={Qingyun Wu and Chi Wang},\n", + " year={2021},\n", + " booktitle={ArXiv preprint arXiv:2111.06495},\n", + "}\n", + "```\n", + "\n", + "* [Mining Robust Default Configurations for Resource-constrained AutoML](https://arxiv.org/abs/2202.09927). Moe Kayali, Chi Wang. ArXiv preprint arXiv:2202.09927 (2022).\n", + "\n", + "```bibtex\n", + "@inproceedings{kayaliwang2022default,\n", + " title={Mining Robust Default Configurations for Resource-constrained AutoML},\n", + " author={Moe Kayali and Chi Wang},\n", + " year={2022},\n", + " booktitle={ArXiv preprint arXiv:2202.09927},\n", + "}\n", + "```\n", + "\n", + "* [Targeted Hyperparameter Optimization with Lexicographic Preferences Over Multiple Objectives](https://openreview.net/forum?id=0Ij9_q567Ma). Shaokun Zhang, Feiran Jia, Chi Wang, Qingyun Wu. ICLR 2023 (notable-top-5%).\n", + "\n", + "```bibtex\n", + "@inproceedings{zhang2023targeted,\n", + " title={Targeted Hyperparameter Optimization with Lexicographic Preferences Over Multiple Objectives},\n", + " author={Shaokun Zhang and Feiran Jia and Chi Wang and Qingyun Wu},\n", + " booktitle={International Conference on Learning Representations},\n", + " year={2023},\n", + " url={https://openreview.net/forum?id=0Ij9_q567Ma},\n", + "}\n", + "```\n", + "\n", + "* [Cost-Effective Hyperparameter Optimization for Large Language Model Generation Inference](https://arxiv.org/abs/2303.04673). Chi Wang, Susan Xueqing Liu, Ahmed H. Awadallah. ArXiv preprint arXiv:2303.04673 (2023).\n", + "\n", + "```bibtex\n", + "@inproceedings{wang2023EcoOptiGen,\n", + " title={Cost-Effective Hyperparameter Optimization for Large Language Model Generation Inference},\n", + " author={Chi Wang and Susan Xueqing Liu and Ahmed H. Awadallah},\n", + " year={2023},\n", + " booktitle={ArXiv preprint arXiv:2303.04673},\n", + "}\n", + "```\n", + "\n", + "* [An Empirical Study on Challenging Math Problem Solving with GPT-4](https://arxiv.org/abs/2306.01337). Yiran Wu, Feiran Jia, Shaokun Zhang, Hangyu Li, Erkang Zhu, Yue Wang, Yin Tat Lee, Richard Peng, Qingyun Wu, Chi Wang. ArXiv preprint arXiv:2306.01337 (2023).\n", + "\n", + "```bibtex\n", + "@inproceedings{wu2023empirical,\n", + " title={An Empirical Study on Challenging Math Problem Solving with GPT-4},\n", + " author={Yiran Wu and Feiran Jia and Shaokun Zhang and Hangyu Li and Erkang Zhu and Yue Wang and Yin Tat Lee and Richard Peng and Qingyun Wu and Chi Wang},\n", + " year={2023},\n", + " booktitle={ArXiv preprint arXiv:2306.01337},\n", + "}\n", + "```\n", + "\n", + "\n", + "When you submit a pull request, a CLA bot will automatically determine whether you need to provide\n", + "a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions\n", + "provided by the bot. You will only need to do this once across all repos using our CLA.\n", + "\n", + "This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).\n", + "For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or\n", + "contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.\n", "\n", "\n", "\n", @@ -725,10 +648,42 @@ "--------------------------------------------------------------------------------\n", "\u001b[33massistant\u001b[0m (to ragproxyagent):\n", "\n", - "No, there is no function called `tune_automl` in the given context.\n", + "Based on the context provided, which is about the FLAML library, there is no direct reference to a function specifically called `tune_automl`. However, FLAML does offer functionality for automated machine learning (AutoML) and hyperparameter tuning.\n", + "\n", + "The closest reference to an AutoML tuning operation in the given context is shown in the Quickstart section, which demonstrates how to use FLAML as a scikit-learn style estimator for machine learning tasks like classification and regression. It does talk about automated machine learning and tuning, but doesn't mention a function `tune_automl` by name.\n", + "\n", + "If you are looking for a way to perform tuning with FLAML, the context indicates you can use the `tune` module to run generic hyperparameter tuning for a custom function, as demonstrated in the Quickstart section:\n", + "\n", + "```python\n", + "from flaml import tune\n", + "tune.run(evaluation_function, config={…}, low_cost_partial_config={…}, time_budget_s=3600)\n", + "```\n", + "\n", + "This is not called `tune_automl` but rather just `tune.run`.\n", + "\n", + "If you need confirmation on whether a function called `tune_automl` specifically exists, the FLAML documentation or its API reference should be checked. If documentation is not enough to confirm and you require to look into the actual code or a structured list of functionalities provided by FLAML, that information isn't available in the given context.\n", + "\n", + "In that case, the instruction should be: `UPDATE CONTEXT`.\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[32mUpdating context and resetting conversation.\u001b[0m\n", + "\u001b[32mNo more context, will terminate.\u001b[0m\n", + "\u001b[33mragproxyagent\u001b[0m (to assistant):\n", + "\n", + "TERMINATE\n", "\n", "--------------------------------------------------------------------------------\n" ] + }, + { + "data": { + "text/plain": [ + "ChatResult(chat_id=None, chat_history=[{'content': 'TERMINATE', 'role': 'assistant'}], summary='', cost=({'total_cost': 0.12719999999999998, 'gpt-4': {'cost': 0.12719999999999998, 'prompt_tokens': 3634, 'completion_tokens': 303, 'total_tokens': 3937}}, {'total_cost': 0.12719999999999998, 'gpt-4': {'cost': 0.12719999999999998, 'prompt_tokens': 3634, 'completion_tokens': 303, 'total_tokens': 3937}}), human_input=[])" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" } ], "source": [ @@ -736,7 +691,7 @@ "assistant.reset()\n", "\n", "qa_problem = \"Is there a function called tune_automl?\"\n", - "ragproxyagent.initiate_chat(assistant, problem=qa_problem)" + "ragproxyagent.initiate_chat(assistant, message=ragproxyagent.message_generator, problem=qa_problem)" ] }, { @@ -756,22 +711,16 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 18, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ + "\u001b[32mAdding doc_id 2 to context.\u001b[0m\n", "\u001b[32mAdding doc_id 0 to context.\u001b[0m\n", - "\u001b[32mAdding doc_id 21 to context.\u001b[0m\n", - "\u001b[32mAdding doc_id 47 to context.\u001b[0m\n", - "\u001b[32mAdding doc_id 35 to context.\u001b[0m\n", - "\u001b[32mAdding doc_id 41 to context.\u001b[0m\n", - "\u001b[32mAdding doc_id 69 to context.\u001b[0m\n", - "\u001b[32mAdding doc_id 34 to context.\u001b[0m\n", - "\u001b[32mAdding doc_id 22 to context.\u001b[0m\n", - "\u001b[32mAdding doc_id 51 to context.\u001b[0m\n", + "\u001b[32mAdding doc_id 1 to context.\u001b[0m\n", "\u001b[33mragproxyagent\u001b[0m (to assistant):\n", "\n", "You're a retrieve augmented coding assistant. You answer user's questions based on your own knowledge and the\n", @@ -786,568 +735,268 @@ "\n", "User's question is: Who is the author of FLAML?\n", "\n", - "Context is: ---\n", - "sidebar_label: config\n", - "title: config\n", - "---\n", - "\n", - "!\n", - "* Copyright (c) Microsoft Corporation. All rights reserved.\n", - "* Licensed under the MIT License.\n", - "\n", - "#### PENALTY\n", - "\n", - "penalty term for constraints\n", - "\n", - "\n", - "---\n", - "sidebar_label: utils\n", - "title: automl.nlp.huggingface.utils\n", - "---\n", - "\n", - "#### todf\n", - "\n", - "```python\n", - "def todf(X, Y, column_name)\n", - "```\n", - "\n", - "todf converts Y from any format (list, pandas.Series, numpy array) to a DataFrame before being returned\n", - "\n", - "\n", - "---\n", - "sidebar_label: trial_scheduler\n", - "title: tune.scheduler.trial_scheduler\n", - "---\n", - "\n", - "## TrialScheduler Objects\n", - "\n", - "```python\n", - "class TrialScheduler()\n", - "```\n", + "Context is: # Research\n", "\n", - "Interface for implementing a Trial Scheduler class.\n", + "For technical details, please check our research publications.\n", "\n", - "#### CONTINUE\n", + "* [FLAML: A Fast and Lightweight AutoML Library](https://www.microsoft.com/en-us/research/publication/flaml-a-fast-and-lightweight-automl-library/). Chi Wang, Qingyun Wu, Markus Weimer, Erkang Zhu. MLSys 2021.\n", "\n", - "Status for continuing trial execution\n", - "\n", - "#### PAUSE\n", - "\n", - "Status for pausing trial execution\n", - "\n", - "#### STOP\n", - "\n", - "Status for stopping trial execution\n", - "\n", - "\n", - "---\n", - "sidebar_label: space\n", - "title: tune.space\n", - "---\n", - "\n", - "#### is\\_constant\n", - "\n", - "```python\n", - "def is_constant(space: Union[Dict, List]) -> bool\n", - "```\n", - "\n", - "Whether the search space is all constant.\n", - "\n", - "**Returns**:\n", - "\n", - " A bool of whether the search space is all constant.\n", - "\n", - "#### define\\_by\\_run\\_func\n", - "\n", - "```python\n", - "def define_by_run_func(trial,\n", - " space: Dict,\n", - " path: str = \"\") -> Optional[Dict[str, Any]]\n", - "```\n", - "\n", - "Define-by-run function to create the search space.\n", - "\n", - "**Returns**:\n", - "\n", - " A dict with constant values.\n", - "\n", - "#### unflatten\\_hierarchical\n", - "\n", - "```python\n", - "def unflatten_hierarchical(config: Dict, space: Dict) -> Tuple[Dict, Dict]\n", - "```\n", - "\n", - "Unflatten hierarchical config.\n", - "\n", - "#### add\\_cost\\_to\\_space\n", - "\n", - "```python\n", - "def add_cost_to_space(space: Dict, low_cost_point: Dict, choice_cost: Dict)\n", + "```bibtex\n", + "@inproceedings{wang2021flaml,\n", + " title={FLAML: A Fast and Lightweight AutoML Library},\n", + " author={Chi Wang and Qingyun Wu and Markus Weimer and Erkang Zhu},\n", + " year={2021},\n", + " booktitle={MLSys},\n", + "}\n", "```\n", "\n", - "Update the space in place by adding low_cost_point and choice_cost.\n", - "\n", - "**Returns**:\n", - "\n", - " A dict with constant values.\n", - "\n", - "#### normalize\n", + "* [Frugal Optimization for Cost-related Hyperparameters](https://arxiv.org/abs/2005.01571). Qingyun Wu, Chi Wang, Silu Huang. AAAI 2021.\n", "\n", - "```python\n", - "def normalize(config: Dict,\n", - " space: Dict,\n", - " reference_config: Dict,\n", - " normalized_reference_config: Dict,\n", - " recursive: bool = False)\n", + "```bibtex\n", + "@inproceedings{wu2021cfo,\n", + " title={Frugal Optimization for Cost-related Hyperparameters},\n", + " author={Qingyun Wu and Chi Wang and Silu Huang},\n", + " year={2021},\n", + " booktitle={AAAI},\n", + "}\n", "```\n", "\n", - "Normalize config in space according to reference_config.\n", - "\n", - "Normalize each dimension in config to [0,1].\n", + "* [Economical Hyperparameter Optimization With Blended Search Strategy](https://www.microsoft.com/en-us/research/publication/economical-hyperparameter-optimization-with-blended-search-strategy/). Chi Wang, Qingyun Wu, Silu Huang, Amin Saied. ICLR 2021.\n", "\n", - "#### indexof\n", - "\n", - "```python\n", - "def indexof(domain: Dict, config: Dict) -> int\n", + "```bibtex\n", + "@inproceedings{wang2021blendsearch,\n", + " title={Economical Hyperparameter Optimization With Blended Search Strategy},\n", + " author={Chi Wang and Qingyun Wu and Silu Huang and Amin Saied},\n", + " year={2021},\n", + " booktitle={ICLR},\n", + "}\n", "```\n", "\n", - "Find the index of config in domain.categories.\n", + "* [An Empirical Study on Hyperparameter Optimization for Fine-Tuning Pre-trained Language Models](https://aclanthology.org/2021.acl-long.178.pdf). Susan Xueqing Liu, Chi Wang. ACL 2021.\n", "\n", - "#### complete\\_config\n", - "\n", - "```python\n", - "def complete_config(partial_config: Dict,\n", - " space: Dict,\n", - " flow2,\n", - " disturb: bool = False,\n", - " lower: Optional[Dict] = None,\n", - " upper: Optional[Dict] = None) -> Tuple[Dict, Dict]\n", + "```bibtex\n", + "@inproceedings{liuwang2021hpolm,\n", + " title={An Empirical Study on Hyperparameter Optimization for Fine-Tuning Pre-trained Language Models},\n", + " author={Susan Xueqing Liu and Chi Wang},\n", + " year={2021},\n", + " booktitle={ACL},\n", + "}\n", "```\n", "\n", - "Complete partial config in space.\n", - "\n", - "**Returns**:\n", - "\n", - " config, space.\n", - "\n", + "* [ChaCha for Online AutoML](https://www.microsoft.com/en-us/research/publication/chacha-for-online-automl/). Qingyun Wu, Chi Wang, John Langford, Paul Mineiro and Marco Rossi. ICML 2021.\n", "\n", - "---\n", - "sidebar_label: search_thread\n", - "title: tune.searcher.search_thread\n", - "---\n", - "\n", - "## SearchThread Objects\n", - "\n", - "```python\n", - "class SearchThread()\n", + "```bibtex\n", + "@inproceedings{wu2021chacha,\n", + " title={ChaCha for Online AutoML},\n", + " author={Qingyun Wu and Chi Wang and John Langford and Paul Mineiro and Marco Rossi},\n", + " year={2021},\n", + " booktitle={ICML},\n", + "}\n", "```\n", "\n", - "Class of global or local search thread.\n", - "\n", - "#### \\_\\_init\\_\\_\n", + "* [Fair AutoML](https://arxiv.org/abs/2111.06495). Qingyun Wu, Chi Wang. ArXiv preprint arXiv:2111.06495 (2021).\n", "\n", - "```python\n", - "def __init__(mode: str = \"min\",\n", - " search_alg: Optional[Searcher] = None,\n", - " cost_attr: Optional[str] = TIME_TOTAL_S,\n", - " eps: Optional[float] = 1.0)\n", + "```bibtex\n", + "@inproceedings{wuwang2021fairautoml,\n", + " title={Fair AutoML},\n", + " author={Qingyun Wu and Chi Wang},\n", + " year={2021},\n", + " booktitle={ArXiv preprint arXiv:2111.06495},\n", + "}\n", "```\n", "\n", - "When search_alg is omitted, use local search FLOW2.\n", - "\n", - "#### suggest\n", + "* [Mining Robust Default Configurations for Resource-constrained AutoML](https://arxiv.org/abs/2202.09927). Moe Kayali, Chi Wang. ArXiv preprint arXiv:2202.09927 (2022).\n", "\n", - "```python\n", - "def suggest(trial_id: str) -> Optional[Dict]\n", + "```bibtex\n", + "@inproceedings{kayaliwang2022default,\n", + " title={Mining Robust Default Configurations for Resource-constrained AutoML},\n", + " author={Moe Kayali and Chi Wang},\n", + " year={2022},\n", + " booktitle={ArXiv preprint arXiv:2202.09927},\n", + "}\n", "```\n", "\n", - "Use the suggest() of the underlying search algorithm.\n", + "* [Targeted Hyperparameter Optimization with Lexicographic Preferences Over Multiple Objectives](https://openreview.net/forum?id=0Ij9_q567Ma). Shaokun Zhang, Feiran Jia, Chi Wang, Qingyun Wu. ICLR 2023 (notable-top-5%).\n", "\n", - "#### on\\_trial\\_complete\n", - "\n", - "```python\n", - "def on_trial_complete(trial_id: str,\n", - " result: Optional[Dict] = None,\n", - " error: bool = False)\n", + "```bibtex\n", + "@inproceedings{zhang2023targeted,\n", + " title={Targeted Hyperparameter Optimization with Lexicographic Preferences Over Multiple Objectives},\n", + " author={Shaokun Zhang and Feiran Jia and Chi Wang and Qingyun Wu},\n", + " booktitle={International Conference on Learning Representations},\n", + " year={2023},\n", + " url={https://openreview.net/forum?id=0Ij9_q567Ma},\n", + "}\n", "```\n", "\n", - "Update the statistics of the thread.\n", + "* [Cost-Effective Hyperparameter Optimization for Large Language Model Generation Inference](https://arxiv.org/abs/2303.04673). Chi Wang, Susan Xueqing Liu, Ahmed H. Awadallah. ArXiv preprint arXiv:2303.04673 (2023).\n", "\n", - "#### reach\n", - "\n", - "```python\n", - "def reach(thread) -> bool\n", + "```bibtex\n", + "@inproceedings{wang2023EcoOptiGen,\n", + " title={Cost-Effective Hyperparameter Optimization for Large Language Model Generation Inference},\n", + " author={Chi Wang and Susan Xueqing Liu and Ahmed H. Awadallah},\n", + " year={2023},\n", + " booktitle={ArXiv preprint arXiv:2303.04673},\n", + "}\n", "```\n", "\n", - "Whether the incumbent can reach the incumbent of thread.\n", + "* [An Empirical Study on Challenging Math Problem Solving with GPT-4](https://arxiv.org/abs/2306.01337). Yiran Wu, Feiran Jia, Shaokun Zhang, Hangyu Li, Erkang Zhu, Yue Wang, Yin Tat Lee, Richard Peng, Qingyun Wu, Chi Wang. ArXiv preprint arXiv:2306.01337 (2023).\n", "\n", - "#### can\\_suggest\n", - "\n", - "```python\n", - "@property\n", - "def can_suggest() -> bool\n", - "```\n", - "\n", - "Whether the thread can suggest new configs.\n", - "\n", - "\n", - "{\n", - " \"items\": [\n", - " {\n", - " \"items\": [\n", - " {\n", - " \"items\": [\n", - " {\n", - " \"items\": [\n", - " \"reference/autogen/agentchat/contrib/math_user_proxy_agent\",\n", - " \"reference/autogen/agentchat/contrib/retrieve_assistant_agent\",\n", - " \"reference/autogen/agentchat/contrib/retrieve_user_proxy_agent\"\n", - " ],\n", - " \"label\": \"autogen.agentchat.contrib\",\n", - " \"type\": \"category\"\n", - " },\n", - " \"reference/autogen/agentchat/agent\",\n", - " \"reference/autogen/agentchat/assistant_agent\",\n", - " \"reference/autogen/agentchat/conversable_agent\",\n", - " \"reference/autogen/agentchat/groupchat\",\n", - " \"reference/autogen/agentchat/user_proxy_agent\"\n", - " ],\n", - " \"label\": \"autogen.agentchat\",\n", - " \"type\": \"category\"\n", - " },\n", - " {\n", - " \"items\": [\n", - " \"reference/autogen/oai/completion\",\n", - " \"reference/autogen/oai/openai_utils\"\n", - " ],\n", - " \"label\": \"autogen.oai\",\n", - " \"type\": \"category\"\n", - " },\n", - " \"reference/autogen/code_utils\",\n", - " \"reference/autogen/math_utils\",\n", - " \"reference/autogen/retrieve_utils\"\n", - " ],\n", - " \"label\": \"autogen\",\n", - " \"type\": \"category\"\n", - " },\n", - " {\n", - " \"items\": [\n", - " {\n", - " \"items\": [\n", - " {\n", - " \"items\": [\n", - " \"reference/automl/nlp/huggingface/trainer\",\n", - " \"reference/automl/nlp/huggingface/training_args\",\n", - " \"reference/automl/nlp/huggingface/utils\"\n", - " ],\n", - " \"label\": \"automl.nlp.huggingface\",\n", - " \"type\": \"category\"\n", - " },\n", - " \"reference/automl/nlp/utils\"\n", - " ],\n", - " \"label\": \"automl.nlp\",\n", - " \"type\": \"category\"\n", - " },\n", - " {\n", - " \"items\": [\n", - " \"reference/automl/spark/metrics\",\n", - " \"reference/automl/spark/utils\"\n", - " ],\n", - " \"label\": \"automl.spark\",\n", - " \"type\": \"category\"\n", - " },\n", - " {\n", - " \"items\": [\n", - " \"reference/automl/task/task\",\n", - " \"reference/automl/task/time_series_task\"\n", - " ],\n", - " \"label\": \"automl.task\",\n", - " \"type\": \"category\"\n", - " },\n", - " {\n", - " \"items\": [\n", - " \"reference/automl/time_series/sklearn\",\n", - " \"reference/automl/time_series/tft\",\n", - " \"reference/automl/time_series/ts_data\",\n", - " \"reference/automl/time_series/ts_model\"\n", - " ],\n", - " \"label\": \"automl.time_series\",\n", - " \"type\": \"category\"\n", - " },\n", - " \"reference/automl/automl\",\n", - " \"reference/automl/data\",\n", - " \"reference/automl/ml\",\n", - " \"reference/automl/model\",\n", - " \"reference/automl/state\"\n", - " ],\n", - " \"label\": \"automl\",\n", - " \"type\": \"category\"\n", - " },\n", - " {\n", - " \"items\": [\n", - " \"reference/default/estimator\",\n", - " \"reference/default/greedy\",\n", - " \"reference/default/portfolio\",\n", - " \"reference/default/suggest\"\n", - " ],\n", - " \"label\": \"default\",\n", - " \"type\": \"category\"\n", - " },\n", - " {\n", - " \"items\": [\n", - " \"reference/onlineml/autovw\",\n", - " \"reference/onlineml/trial\",\n", - " \"reference/onlineml/trial_runner\"\n", - " ],\n", - " \"label\": \"onlineml\",\n", - " \"type\": \"category\"\n", - " },\n", - " {\n", - " \"items\": [\n", - " {\n", - " \"items\": [\n", - " \"reference/tune/scheduler/online_scheduler\",\n", - " \"reference/tune/scheduler/trial_scheduler\"\n", - " ],\n", - " \"label\": \"tune.scheduler\",\n", - " \"type\": \"category\"\n", - " },\n", - " {\n", - " \"items\": [\n", - " \"reference/tune/searcher/blendsearch\",\n", - " \"reference/tune/searcher/cfo_cat\",\n", - " \"reference/tune/searcher/flow2\",\n", - " \"reference/tune/searcher/online_searcher\",\n", - " \"reference/tune/searcher/search_thread\",\n", - " \"reference/tune/searcher/suggestion\",\n", - " \"reference/tune/searcher/variant_generator\"\n", - " ],\n", - " \"label\": \"tune.searcher\",\n", - " \"type\": \"category\"\n", - " },\n", - " {\n", - " \"items\": [\n", - " \"reference/tune/spark/utils\"\n", - " ],\n", - " \"label\": \"tune.spark\",\n", - " \"type\": \"category\"\n", - " },\n", - " \"reference/tune/analysis\",\n", - " \"reference/tune/sample\",\n", - " \"reference/tune/space\",\n", - " \"reference/tune/trial\",\n", - " \"reference/tune/trial_runner\",\n", - " \"reference/tune/tune\",\n", - " \"reference/tune/utils\"\n", - " ],\n", - " \"label\": \"tune\",\n", - " \"type\": \"category\"\n", - " },\n", - " \"reference/config\"\n", - " ],\n", - " \"label\": \"Reference\",\n", - " \"type\": \"category\"\n", + "```bibtex\n", + "@inproceedings{wu2023empirical,\n", + " title={An Empirical Study on Challenging Math Problem Solving with GPT-4},\n", + " author={Yiran Wu and Feiran Jia and Shaokun Zhang and Hangyu Li and Erkang Zhu and Yue Wang and Yin Tat Lee and Richard Peng and Qingyun Wu and Chi Wang},\n", + " year={2023},\n", + " booktitle={ArXiv preprint arXiv:2306.01337},\n", "}\n", - "---\n", - "sidebar_label: utils\n", - "title: tune.utils\n", - "---\n", - "\n", - "#### choice\n", - "\n", - "```python\n", - "def choice(categories: Sequence, order=None)\n", "```\n", "\n", - "Sample a categorical value.\n", - "Sampling from ``tune.choice([1, 2])`` is equivalent to sampling from\n", - "``np.random.choice([1, 2])``\n", + "[![PyPI version](https://badge.fury.io/py/FLAML.svg)](https://badge.fury.io/py/FLAML)\n", + "![Conda version](https://img.shields.io/conda/vn/conda-forge/flaml)\n", + "[![Build](https://github.com/microsoft/FLAML/actions/workflows/python-package.yml/badge.svg)](https://github.com/microsoft/FLAML/actions/workflows/python-package.yml)\n", + "![Python Version](https://img.shields.io/badge/3.8%20%7C%203.9%20%7C%203.10-blue)\n", + "[![Downloads](https://pepy.tech/badge/flaml)](https://pepy.tech/project/flaml)\n", + "[![](https://img.shields.io/discord/1025786666260111483?logo=discord&style=flat)](https://discord.gg/Cppx2vSPVP)\n", + "\n", "\n", - "**Arguments**:\n", "\n", - "- `categories` _Sequence_ - Sequence of categories to sample from.\n", - "- `order` _bool_ - Whether the categories have an order. If None, will be decided autoamtically:\n", - " Numerical categories have an order, while string categories do not.\n", + "# A Fast Library for Automated Machine Learning & Tuning\n", "\n", + "

\n", + " \n", + "
\n", + "

\n", "\n", - "---\n", - "sidebar_label: trainer\n", - "title: automl.nlp.huggingface.trainer\n", - "---\n", + ":fire: Heads-up: We have migrated [AutoGen](https://microsoft.github.io/autogen/) into a dedicated [github repository](https://github.com/microsoft/autogen). Alongside this move, we have also launched a dedicated [Discord](https://discord.gg/pAbnFJrkgZ) server and a [website](https://microsoft.github.io/autogen/) for comprehensive documentation.\n", "\n", - "## TrainerForAuto Objects\n", + ":fire: The automated multi-agent chat framework in [AutoGen](https://microsoft.github.io/autogen/) is in preview from v2.0.0.\n", "\n", - "```python\n", - "class TrainerForAuto(Seq2SeqTrainer)\n", - "```\n", + ":fire: FLAML is highlighted in OpenAI's [cookbook](https://github.com/openai/openai-cookbook#related-resources-from-around-the-web).\n", "\n", - "#### evaluate\n", + ":fire: [autogen](https://microsoft.github.io/autogen/) is released with support for ChatGPT and GPT-4, based on [Cost-Effective Hyperparameter Optimization for Large Language Model Generation Inference](https://arxiv.org/abs/2303.04673).\n", "\n", - "```python\n", - "def evaluate(eval_dataset=None, ignore_keys=None, metric_key_prefix=\"eval\")\n", - "```\n", + ":fire: FLAML supports Code-First AutoML & Tuning – Private Preview in [Microsoft Fabric Data Science](https://learn.microsoft.com/en-us/fabric/data-science/).\n", "\n", - "Overriding transformers.Trainer.evaluate by saving metrics and checkpoint path.\n", "\n", + "## What is FLAML\n", + "FLAML is a lightweight Python library for efficient automation of machine\n", + "learning and AI operations. It automates workflow based on large language models, machine learning models, etc.\n", + "and optimizes their performance.\n", "\n", - "---\n", - "sidebar_label: trial\n", - "title: onlineml.trial\n", - "---\n", + "* FLAML enables building next-gen GPT-X applications based on multi-agent conversations with minimal effort. It simplifies the orchestration, automation and optimization of a complex GPT-X workflow. It maximizes the performance of GPT-X models and augments their weakness.\n", + "* For common machine learning tasks like classification and regression, it quickly finds quality models for user-provided data with low computational resources. It is easy to customize or extend. Users can find their desired customizability from a smooth range.\n", + "* It supports fast and economical automatic tuning (e.g., inference hyperparameters for foundation models, configurations in MLOps/LMOps workflows, pipelines, mathematical/statistical models, algorithms, computing experiments, software configurations), capable of handling large search space with heterogeneous evaluation cost and complex constraints/guidance/early stopping.\n", "\n", - "#### get\\_ns\\_feature\\_dim\\_from\\_vw\\_example\n", + "FLAML is powered by a series of [research studies](https://microsoft.github.io/FLAML/docs/Research/) from Microsoft Research and collaborators such as Penn State University, Stevens Institute of Technology, University of Washington, and University of Waterloo.\n", "\n", - "```python\n", - "def get_ns_feature_dim_from_vw_example(vw_example) -> dict\n", - "```\n", + "FLAML has a .NET implementation in [ML.NET](http://dot.net/ml), an open-source, cross-platform machine learning framework for .NET.\n", "\n", - "Get a dictionary of feature dimensionality for each namespace singleton.\n", + "## Installation\n", "\n", - "## OnlineResult Objects\n", + "FLAML requires **Python version >= 3.8**. It can be installed from pip:\n", "\n", - "```python\n", - "class OnlineResult()\n", + "```bash\n", + "pip install flaml\n", "```\n", "\n", - "Class for managing the result statistics of a trial.\n", - "\n", - "#### CB\\_COEF\n", - "\n", - "0.001 for mse\n", - "\n", - "#### \\_\\_init\\_\\_\n", - "\n", - "```python\n", - "def __init__(result_type_name: str,\n", - " cb_coef: Optional[float] = None,\n", - " init_loss: Optional[float] = 0.0,\n", - " init_cb: Optional[float] = 100.0,\n", - " mode: Optional[str] = \"min\",\n", - " sliding_window_size: Optional[int] = 100)\n", + "Minimal dependencies are installed without extra options. You can install extra options based on the feature you need. For example, use the following to install the dependencies needed by the [`autogen`](https://microsoft.github.io/autogen/) package.\n", + "```bash\n", + "pip install \"flaml[autogen]\"\n", "```\n", "\n", - "Constructor.\n", + "Find more options in [Installation](https://microsoft.github.io/FLAML/docs/Installation).\n", + "Each of the [`notebook examples`](https://github.com/microsoft/FLAML/tree/main/notebook) may require a specific option to be installed.\n", "\n", - "**Arguments**:\n", - "\n", - "- `result_type_name` - A String to specify the name of the result type.\n", - "- `cb_coef` - a string to specify the coefficient on the confidence bound.\n", - "- `init_loss` - a float to specify the initial loss.\n", - "- `init_cb` - a float to specify the intial confidence bound.\n", - "- `mode` - A string in ['min', 'max'] to specify the objective as\n", - " minimization or maximization.\n", - "- `sliding_window_size` - An int to specify the size of the sliding window\n", - " (for experimental purpose).\n", - "\n", - "#### update\\_result\n", + "## Quickstart\n", "\n", + "* (New) The [autogen](https://microsoft.github.io/autogen/) package enables the next-gen GPT-X applications with a generic multi-agent conversation framework.\n", + "It offers customizable and conversable agents which integrate LLMs, tools and human.\n", + "By automating chat among multiple capable agents, one can easily make them collectively perform tasks autonomously or with human feedback, including tasks that require using tools via code. For example,\n", "```python\n", - "def update_result(new_loss,\n", - " new_resource_used,\n", - " data_dimension,\n", - " bound_of_range=1.0,\n", - " new_observation_count=1.0)\n", + "from flaml import autogen\n", + "assistant = autogen.AssistantAgent(\"assistant\")\n", + "user_proxy = autogen.UserProxyAgent(\"user_proxy\")\n", + "user_proxy.initiate_chat(assistant, message=\"Show me the YTD gain of 10 largest technology companies as of today.\")\n", + "# This initiates an automated chat between the two agents to solve the task\n", "```\n", "\n", - "Update result statistics.\n", - "\n", - "## BaseOnlineTrial Objects\n", - "\n", + "Autogen also helps maximize the utility out of the expensive LLMs such as ChatGPT and GPT-4. It offers a drop-in replacement of `openai.Completion` or `openai.ChatCompletion` with powerful functionalites like tuning, caching, templating, filtering. For example, you can optimize generations by LLM with your own tuning data, success metrics and budgets.\n", "```python\n", - "class BaseOnlineTrial(Trial)\n", + "# perform tuning\n", + "config, analysis = autogen.Completion.tune(\n", + " data=tune_data,\n", + " metric=\"success\",\n", + " mode=\"max\",\n", + " eval_func=eval_func,\n", + " inference_budget=0.05,\n", + " optimization_budget=3,\n", + " num_samples=-1,\n", + ")\n", + "# perform inference for a test instance\n", + "response = autogen.Completion.create(context=test_instance, **config)\n", "```\n", - "\n", - "Class for the online trial.\n", - "\n", - "#### \\_\\_init\\_\\_\n", + "* With three lines of code, you can start using this economical and fast\n", + "AutoML engine as a [scikit-learn style estimator](https://microsoft.github.io/FLAML/docs/Use-Cases/Task-Oriented-AutoML).\n", "\n", "```python\n", - "def __init__(config: dict,\n", - " min_resource_lease: float,\n", - " is_champion: Optional[bool] = False,\n", - " is_checked_under_current_champion: Optional[bool] = True,\n", - " custom_trial_name: Optional[str] = \"mae\",\n", - " trial_id: Optional[str] = None)\n", + "from flaml import AutoML\n", + "automl = AutoML()\n", + "automl.fit(X_train, y_train, task=\"classification\")\n", "```\n", "\n", - "Constructor.\n", - "\n", - "**Arguments**:\n", - "\n", - "- `config` - The configuration dictionary.\n", - "- `min_resource_lease` - A float specifying the minimum resource lease.\n", - "- `is_champion` - A bool variable indicating whether the trial is champion.\n", - "- `is_checked_under_current_champion` - A bool indicating whether the trial\n", - " has been used under the current champion.\n", - "- `custom_trial_name` - A string of a custom trial name.\n", - "- `trial_id` - A string for the trial id.\n", - "\n", - "#### set\\_resource\\_lease\n", + "* You can restrict the learners and use FLAML as a fast hyperparameter tuning\n", + "tool for XGBoost, LightGBM, Random Forest etc. or a [customized learner](https://microsoft.github.io/FLAML/docs/Use-Cases/Task-Oriented-AutoML#estimator-and-search-space).\n", "\n", "```python\n", - "def set_resource_lease(resource: float)\n", + "automl.fit(X_train, y_train, task=\"classification\", estimator_list=[\"lgbm\"])\n", "```\n", "\n", - "Sets the resource lease accordingly.\n", - "\n", - "#### set\\_status\n", + "* You can also run generic hyperparameter tuning for a [custom function](https://microsoft.github.io/FLAML/docs/Use-Cases/Tune-User-Defined-Function).\n", "\n", "```python\n", - "def set_status(status)\n", + "from flaml import tune\n", + "tune.run(evaluation_function, config={…}, low_cost_partial_config={…}, time_budget_s=3600)\n", "```\n", "\n", - "Sets the status of the trial and record the start time.\n", - "\n", - "## VowpalWabbitTrial Objects\n", + "* [Zero-shot AutoML](https://microsoft.github.io/FLAML/docs/Use-Cases/Zero-Shot-AutoML) allows using the existing training API from lightgbm, xgboost etc. while getting the benefit of AutoML in choosing high-performance hyperparameter configurations per task.\n", "\n", "```python\n", - "class VowpalWabbitTrial(BaseOnlineTrial)\n", - "```\n", + "from flaml.default import LGBMRegressor\n", "\n", - "The class for Vowpal Wabbit online trials.\n", + "# Use LGBMRegressor in the same way as you use lightgbm.LGBMRegressor.\n", + "estimator = LGBMRegressor()\n", + "# The hyperparameters are automatically set according to the training data.\n", + "estimator.fit(X_train, y_train)\n", + "```\n", "\n", - "#### \\_\\_init\\_\\_\n", + "## Documentation\n", "\n", - "```python\n", - "def __init__(config: dict,\n", - " min_resource_lease: float,\n", - " metric: str = \"mae\",\n", - " is_champion: Optional[bool] = False,\n", - " is_checked_under_current_champion: Optional[bool] = True,\n", - " custom_trial_name: Optional[str] = \"vw_mae_clipped\",\n", - " trial_id: Optional[str] = None,\n", - " cb_coef: Optional[float] = None)\n", - "```\n", + "You can find a detailed documentation about FLAML [here](https://microsoft.github.io/FLAML/).\n", "\n", - "Constructor.\n", + "In addition, you can find:\n", "\n", - "**Arguments**:\n", + "- [Research](https://microsoft.github.io/FLAML/docs/Research) and [blogposts](https://microsoft.github.io/FLAML/blog) around FLAML.\n", "\n", - "- `config` _dict_ - the config of the trial (note that the config is a set\n", - " because the hyperparameters are).\n", - "- `min_resource_lease` _float_ - the minimum resource lease.\n", - "- `metric` _str_ - the loss metric.\n", - "- `is_champion` _bool_ - indicates whether the trial is the current champion or not.\n", - "- `is_checked_under_current_champion` _bool_ - indicates whether this trials has\n", - " been paused under the current champion.\n", - "- `trial_id` _str_ - id of the trial (if None, it will be generated in the constructor).\n", + "- [Discord](https://discord.gg/Cppx2vSPVP).\n", "\n", - "#### train\\_eval\\_model\\_online\n", + "- [Contributing guide](https://microsoft.github.io/FLAML/docs/Contribute).\n", "\n", - "```python\n", - "def train_eval_model_online(data_sample, y_pred)\n", - "```\n", + "- ML.NET documentation and tutorials for [Model Builder](https://learn.microsoft.com/dotnet/machine-learning/tutorials/predict-prices-with-model-builder), [ML.NET CLI](https://learn.microsoft.com/dotnet/machine-learning/tutorials/sentiment-analysis-cli), and [AutoML API](https://learn.microsoft.com/dotnet/machine-learning/how-to-guides/how-to-use-the-automl-api).\n", "\n", - "Train and evaluate model online.\n", + "## Contributing\n", "\n", - "#### predict\n", + "This project welcomes contributions and suggestions. Most contributions require you to agree to a\n", + "Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us\n", + "the rights to use your contribution. For details, visit .\n", "\n", - "```python\n", - "def predict(x)\n", - "```\n", + "If you are new to GitHub [here](https://help.github.com/categories/collaborating-with-issues-and-pull-requests/) is a detailed help source on getting involved with development on GitHub.\n", "\n", - "Predict using the model.\n", + "When you submit a pull request, a CLA bot will automatically determine whether you need to provide\n", + "a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions\n", + "provided by the bot. You will only need to do this once across all repos using our CLA.\n", "\n", + "This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).\n", + "For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or\n", + "contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.\n", "\n", "\n", "\n", @@ -1355,10 +1004,20 @@ "--------------------------------------------------------------------------------\n", "\u001b[33massistant\u001b[0m (to ragproxyagent):\n", "\n", - "The author of FLAML is Microsoft Corporation.\n", + "The author of FLAML is Chi Wang, along with other collaborators including Qingyun Wu, Markus Weimer, Erkang Zhu, Silu Huang, Amin Saied, Susan Xueqing Liu, John Langford, Paul Mineiro, Marco Rossi, Moe Kayali, Shaokun Zhang, Feiran Jia, Yiran Wu, Hangyu Li, Yue Wang, Yin Tat Lee, Richard Peng, and Ahmed H. Awadallah, as indicated in the provided references for FLAML's research publications.\n", "\n", "--------------------------------------------------------------------------------\n" ] + }, + { + "data": { + "text/plain": [ + "ChatResult(chat_id=None, chat_history=[{'content': 'You\\'re a retrieve augmented coding assistant. You answer user\\'s questions based on your own knowledge and the\\ncontext provided by the user.\\nIf you can\\'t answer the question with or without the current context, you should reply exactly `UPDATE CONTEXT`.\\nFor code generation, you must obey the following rules:\\nRule 1. You MUST NOT install any packages because all the packages needed are already installed.\\nRule 2. You must follow the formats below to write your code:\\n```language\\n# your code\\n```\\n\\nUser\\'s question is: Who is the author of FLAML?\\n\\nContext is: # Research\\n\\nFor technical details, please check our research publications.\\n\\n* [FLAML: A Fast and Lightweight AutoML Library](https://www.microsoft.com/en-us/research/publication/flaml-a-fast-and-lightweight-automl-library/). Chi Wang, Qingyun Wu, Markus Weimer, Erkang Zhu. MLSys 2021.\\n\\n```bibtex\\n@inproceedings{wang2021flaml,\\n title={FLAML: A Fast and Lightweight AutoML Library},\\n author={Chi Wang and Qingyun Wu and Markus Weimer and Erkang Zhu},\\n year={2021},\\n booktitle={MLSys},\\n}\\n```\\n\\n* [Frugal Optimization for Cost-related Hyperparameters](https://arxiv.org/abs/2005.01571). Qingyun Wu, Chi Wang, Silu Huang. AAAI 2021.\\n\\n```bibtex\\n@inproceedings{wu2021cfo,\\n title={Frugal Optimization for Cost-related Hyperparameters},\\n author={Qingyun Wu and Chi Wang and Silu Huang},\\n year={2021},\\n booktitle={AAAI},\\n}\\n```\\n\\n* [Economical Hyperparameter Optimization With Blended Search Strategy](https://www.microsoft.com/en-us/research/publication/economical-hyperparameter-optimization-with-blended-search-strategy/). Chi Wang, Qingyun Wu, Silu Huang, Amin Saied. ICLR 2021.\\n\\n```bibtex\\n@inproceedings{wang2021blendsearch,\\n title={Economical Hyperparameter Optimization With Blended Search Strategy},\\n author={Chi Wang and Qingyun Wu and Silu Huang and Amin Saied},\\n year={2021},\\n booktitle={ICLR},\\n}\\n```\\n\\n* [An Empirical Study on Hyperparameter Optimization for Fine-Tuning Pre-trained Language Models](https://aclanthology.org/2021.acl-long.178.pdf). Susan Xueqing Liu, Chi Wang. ACL 2021.\\n\\n```bibtex\\n@inproceedings{liuwang2021hpolm,\\n title={An Empirical Study on Hyperparameter Optimization for Fine-Tuning Pre-trained Language Models},\\n author={Susan Xueqing Liu and Chi Wang},\\n year={2021},\\n booktitle={ACL},\\n}\\n```\\n\\n* [ChaCha for Online AutoML](https://www.microsoft.com/en-us/research/publication/chacha-for-online-automl/). Qingyun Wu, Chi Wang, John Langford, Paul Mineiro and Marco Rossi. ICML 2021.\\n\\n```bibtex\\n@inproceedings{wu2021chacha,\\n title={ChaCha for Online AutoML},\\n author={Qingyun Wu and Chi Wang and John Langford and Paul Mineiro and Marco Rossi},\\n year={2021},\\n booktitle={ICML},\\n}\\n```\\n\\n* [Fair AutoML](https://arxiv.org/abs/2111.06495). Qingyun Wu, Chi Wang. ArXiv preprint arXiv:2111.06495 (2021).\\n\\n```bibtex\\n@inproceedings{wuwang2021fairautoml,\\n title={Fair AutoML},\\n author={Qingyun Wu and Chi Wang},\\n year={2021},\\n booktitle={ArXiv preprint arXiv:2111.06495},\\n}\\n```\\n\\n* [Mining Robust Default Configurations for Resource-constrained AutoML](https://arxiv.org/abs/2202.09927). Moe Kayali, Chi Wang. ArXiv preprint arXiv:2202.09927 (2022).\\n\\n```bibtex\\n@inproceedings{kayaliwang2022default,\\n title={Mining Robust Default Configurations for Resource-constrained AutoML},\\n author={Moe Kayali and Chi Wang},\\n year={2022},\\n booktitle={ArXiv preprint arXiv:2202.09927},\\n}\\n```\\n\\n* [Targeted Hyperparameter Optimization with Lexicographic Preferences Over Multiple Objectives](https://openreview.net/forum?id=0Ij9_q567Ma). Shaokun Zhang, Feiran Jia, Chi Wang, Qingyun Wu. ICLR 2023 (notable-top-5%).\\n\\n```bibtex\\n@inproceedings{zhang2023targeted,\\n title={Targeted Hyperparameter Optimization with Lexicographic Preferences Over Multiple Objectives},\\n author={Shaokun Zhang and Feiran Jia and Chi Wang and Qingyun Wu},\\n booktitle={International Conference on Learning Representations},\\n year={2023},\\n url={https://openreview.net/forum?id=0Ij9_q567Ma},\\n}\\n```\\n\\n* [Cost-Effective Hyperparameter Optimization for Large Language Model Generation Inference](https://arxiv.org/abs/2303.04673). Chi Wang, Susan Xueqing Liu, Ahmed H. Awadallah. ArXiv preprint arXiv:2303.04673 (2023).\\n\\n```bibtex\\n@inproceedings{wang2023EcoOptiGen,\\n title={Cost-Effective Hyperparameter Optimization for Large Language Model Generation Inference},\\n author={Chi Wang and Susan Xueqing Liu and Ahmed H. Awadallah},\\n year={2023},\\n booktitle={ArXiv preprint arXiv:2303.04673},\\n}\\n```\\n\\n* [An Empirical Study on Challenging Math Problem Solving with GPT-4](https://arxiv.org/abs/2306.01337). Yiran Wu, Feiran Jia, Shaokun Zhang, Hangyu Li, Erkang Zhu, Yue Wang, Yin Tat Lee, Richard Peng, Qingyun Wu, Chi Wang. ArXiv preprint arXiv:2306.01337 (2023).\\n\\n```bibtex\\n@inproceedings{wu2023empirical,\\n title={An Empirical Study on Challenging Math Problem Solving with GPT-4},\\n author={Yiran Wu and Feiran Jia and Shaokun Zhang and Hangyu Li and Erkang Zhu and Yue Wang and Yin Tat Lee and Richard Peng and Qingyun Wu and Chi Wang},\\n year={2023},\\n booktitle={ArXiv preprint arXiv:2306.01337},\\n}\\n```\\n\\n[![PyPI version](https://badge.fury.io/py/FLAML.svg)](https://badge.fury.io/py/FLAML)\\n![Conda version](https://img.shields.io/conda/vn/conda-forge/flaml)\\n[![Build](https://github.com/microsoft/FLAML/actions/workflows/python-package.yml/badge.svg)](https://github.com/microsoft/FLAML/actions/workflows/python-package.yml)\\n![Python Version](https://img.shields.io/badge/3.8%20%7C%203.9%20%7C%203.10-blue)\\n[![Downloads](https://pepy.tech/badge/flaml)](https://pepy.tech/project/flaml)\\n[![](https://img.shields.io/discord/1025786666260111483?logo=discord&style=flat)](https://discord.gg/Cppx2vSPVP)\\n\\n\\n\\n# A Fast Library for Automated Machine Learning & Tuning\\n\\n

\\n \\n
\\n

\\n\\n:fire: Heads-up: We have migrated [AutoGen](https://microsoft.github.io/autogen/) into a dedicated [github repository](https://github.com/microsoft/autogen). Alongside this move, we have also launched a dedicated [Discord](https://discord.gg/pAbnFJrkgZ) server and a [website](https://microsoft.github.io/autogen/) for comprehensive documentation.\\n\\n:fire: The automated multi-agent chat framework in [AutoGen](https://microsoft.github.io/autogen/) is in preview from v2.0.0.\\n\\n:fire: FLAML is highlighted in OpenAI\\'s [cookbook](https://github.com/openai/openai-cookbook#related-resources-from-around-the-web).\\n\\n:fire: [autogen](https://microsoft.github.io/autogen/) is released with support for ChatGPT and GPT-4, based on [Cost-Effective Hyperparameter Optimization for Large Language Model Generation Inference](https://arxiv.org/abs/2303.04673).\\n\\n:fire: FLAML supports Code-First AutoML & Tuning – Private Preview in [Microsoft Fabric Data Science](https://learn.microsoft.com/en-us/fabric/data-science/).\\n\\n\\n## What is FLAML\\nFLAML is a lightweight Python library for efficient automation of machine\\nlearning and AI operations. It automates workflow based on large language models, machine learning models, etc.\\nand optimizes their performance.\\n\\n* FLAML enables building next-gen GPT-X applications based on multi-agent conversations with minimal effort. It simplifies the orchestration, automation and optimization of a complex GPT-X workflow. It maximizes the performance of GPT-X models and augments their weakness.\\n* For common machine learning tasks like classification and regression, it quickly finds quality models for user-provided data with low computational resources. It is easy to customize or extend. Users can find their desired customizability from a smooth range.\\n* It supports fast and economical automatic tuning (e.g., inference hyperparameters for foundation models, configurations in MLOps/LMOps workflows, pipelines, mathematical/statistical models, algorithms, computing experiments, software configurations), capable of handling large search space with heterogeneous evaluation cost and complex constraints/guidance/early stopping.\\n\\nFLAML is powered by a series of [research studies](https://microsoft.github.io/FLAML/docs/Research/) from Microsoft Research and collaborators such as Penn State University, Stevens Institute of Technology, University of Washington, and University of Waterloo.\\n\\nFLAML has a .NET implementation in [ML.NET](http://dot.net/ml), an open-source, cross-platform machine learning framework for .NET.\\n\\n## Installation\\n\\nFLAML requires **Python version >= 3.8**. It can be installed from pip:\\n\\n```bash\\npip install flaml\\n```\\n\\nMinimal dependencies are installed without extra options. You can install extra options based on the feature you need. For example, use the following to install the dependencies needed by the [`autogen`](https://microsoft.github.io/autogen/) package.\\n```bash\\npip install \"flaml[autogen]\"\\n```\\n\\nFind more options in [Installation](https://microsoft.github.io/FLAML/docs/Installation).\\nEach of the [`notebook examples`](https://github.com/microsoft/FLAML/tree/main/notebook) may require a specific option to be installed.\\n\\n## Quickstart\\n\\n* (New) The [autogen](https://microsoft.github.io/autogen/) package enables the next-gen GPT-X applications with a generic multi-agent conversation framework.\\nIt offers customizable and conversable agents which integrate LLMs, tools and human.\\nBy automating chat among multiple capable agents, one can easily make them collectively perform tasks autonomously or with human feedback, including tasks that require using tools via code. For example,\\n```python\\nfrom flaml import autogen\\nassistant = autogen.AssistantAgent(\"assistant\")\\nuser_proxy = autogen.UserProxyAgent(\"user_proxy\")\\nuser_proxy.initiate_chat(assistant, message=\"Show me the YTD gain of 10 largest technology companies as of today.\")\\n# This initiates an automated chat between the two agents to solve the task\\n```\\n\\nAutogen also helps maximize the utility out of the expensive LLMs such as ChatGPT and GPT-4. It offers a drop-in replacement of `openai.Completion` or `openai.ChatCompletion` with powerful functionalites like tuning, caching, templating, filtering. For example, you can optimize generations by LLM with your own tuning data, success metrics and budgets.\\n```python\\n# perform tuning\\nconfig, analysis = autogen.Completion.tune(\\n data=tune_data,\\n metric=\"success\",\\n mode=\"max\",\\n eval_func=eval_func,\\n inference_budget=0.05,\\n optimization_budget=3,\\n num_samples=-1,\\n)\\n# perform inference for a test instance\\nresponse = autogen.Completion.create(context=test_instance, **config)\\n```\\n* With three lines of code, you can start using this economical and fast\\nAutoML engine as a [scikit-learn style estimator](https://microsoft.github.io/FLAML/docs/Use-Cases/Task-Oriented-AutoML).\\n\\n```python\\nfrom flaml import AutoML\\nautoml = AutoML()\\nautoml.fit(X_train, y_train, task=\"classification\")\\n```\\n\\n* You can restrict the learners and use FLAML as a fast hyperparameter tuning\\ntool for XGBoost, LightGBM, Random Forest etc. or a [customized learner](https://microsoft.github.io/FLAML/docs/Use-Cases/Task-Oriented-AutoML#estimator-and-search-space).\\n\\n```python\\nautoml.fit(X_train, y_train, task=\"classification\", estimator_list=[\"lgbm\"])\\n```\\n\\n* You can also run generic hyperparameter tuning for a [custom function](https://microsoft.github.io/FLAML/docs/Use-Cases/Tune-User-Defined-Function).\\n\\n```python\\nfrom flaml import tune\\ntune.run(evaluation_function, config={…}, low_cost_partial_config={…}, time_budget_s=3600)\\n```\\n\\n* [Zero-shot AutoML](https://microsoft.github.io/FLAML/docs/Use-Cases/Zero-Shot-AutoML) allows using the existing training API from lightgbm, xgboost etc. while getting the benefit of AutoML in choosing high-performance hyperparameter configurations per task.\\n\\n```python\\nfrom flaml.default import LGBMRegressor\\n\\n# Use LGBMRegressor in the same way as you use lightgbm.LGBMRegressor.\\nestimator = LGBMRegressor()\\n# The hyperparameters are automatically set according to the training data.\\nestimator.fit(X_train, y_train)\\n```\\n\\n## Documentation\\n\\nYou can find a detailed documentation about FLAML [here](https://microsoft.github.io/FLAML/).\\n\\nIn addition, you can find:\\n\\n- [Research](https://microsoft.github.io/FLAML/docs/Research) and [blogposts](https://microsoft.github.io/FLAML/blog) around FLAML.\\n\\n- [Discord](https://discord.gg/Cppx2vSPVP).\\n\\n- [Contributing guide](https://microsoft.github.io/FLAML/docs/Contribute).\\n\\n- ML.NET documentation and tutorials for [Model Builder](https://learn.microsoft.com/dotnet/machine-learning/tutorials/predict-prices-with-model-builder), [ML.NET CLI](https://learn.microsoft.com/dotnet/machine-learning/tutorials/sentiment-analysis-cli), and [AutoML API](https://learn.microsoft.com/dotnet/machine-learning/how-to-guides/how-to-use-the-automl-api).\\n\\n## Contributing\\n\\nThis project welcomes contributions and suggestions. Most contributions require you to agree to a\\nContributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us\\nthe rights to use your contribution. For details, visit .\\n\\nIf you are new to GitHub [here](https://help.github.com/categories/collaborating-with-issues-and-pull-requests/) is a detailed help source on getting involved with development on GitHub.\\n\\nWhen you submit a pull request, a CLA bot will automatically determine whether you need to provide\\na CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions\\nprovided by the bot. You will only need to do this once across all repos using our CLA.\\n\\nThis project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).\\nFor more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or\\ncontact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.\\n\\n\\n', 'role': 'assistant'}, {'content': \"The author of FLAML is Chi Wang, along with other collaborators including Qingyun Wu, Markus Weimer, Erkang Zhu, Silu Huang, Amin Saied, Susan Xueqing Liu, John Langford, Paul Mineiro, Marco Rossi, Moe Kayali, Shaokun Zhang, Feiran Jia, Yiran Wu, Hangyu Li, Yue Wang, Yin Tat Lee, Richard Peng, and Ahmed H. Awadallah, as indicated in the provided references for FLAML's research publications.\", 'role': 'user'}], summary=\"The author of FLAML is Chi Wang, along with other collaborators including Qingyun Wu, Markus Weimer, Erkang Zhu, Silu Huang, Amin Saied, Susan Xueqing Liu, John Langford, Paul Mineiro, Marco Rossi, Moe Kayali, Shaokun Zhang, Feiran Jia, Yiran Wu, Hangyu Li, Yue Wang, Yin Tat Lee, Richard Peng, and Ahmed H. Awadallah, as indicated in the provided references for FLAML's research publications.\", cost=({'total_cost': 0.11538, 'gpt-4': {'cost': 0.11538, 'prompt_tokens': 3632, 'completion_tokens': 107, 'total_tokens': 3739}}, {'total_cost': 0}), human_input=[])" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" } ], "source": [ @@ -1366,11 +1025,15 @@ "assistant.reset()\n", "\n", "qa_problem = \"Who is the author of FLAML?\"\n", - "ragproxyagent.initiate_chat(assistant, problem=qa_problem)" + "ragproxyagent.initiate_chat(assistant, message=ragproxyagent.message_generator, problem=qa_problem)" ] } ], "metadata": { + "front_matter": { + "tags": ["rag"], + "description": "This notebook demonstrates the usage of QdrantRetrieveUserProxyAgent for RAG." + }, "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", @@ -1386,7 +1049,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.2" + "version": "3.10.13" } }, "nbformat": 4, diff --git a/notebook/agentchat_society_of_mind.ipynb b/notebook/agentchat_society_of_mind.ipynb index b395c1433396..9a456ccdab92 100644 --- a/notebook/agentchat_society_of_mind.ipynb +++ b/notebook/agentchat_society_of_mind.ipynb @@ -5,12 +5,6 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "\n", - "\n", "# SocietyOfMindAgent\n", "\n", "This notebook demonstrates the SocietyOfMindAgent, which runs a group chat as an internal monologue, but appears to the external world as a single agent. This confers three distinct advantages:\n", @@ -57,7 +51,7 @@ "source": [ "````{=mdx}\n", ":::tip\n", - "Learn more about configuring LLMs for agents [here](/docs/llm_configuration).\n", + "Learn more about configuring LLMs for agents [here](/docs/topics/llm_configuration).\n", ":::\n", "````\n", "\n", @@ -362,6 +356,10 @@ } ], "metadata": { + "front_matter": { + "tags": ["orchestration"], + "description": "Explore the demonstration of the SocietyOfMindAgent in the AutoGen library, which runs a group chat as an internal monologue, but appears to the external world as a single agent, offering a structured way to manage complex interactions among multiple agents and handle issues such as extracting responses from complex dialogues and dealing with context window constraints." + }, "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", diff --git a/notebook/agentchat_stream.ipynb b/notebook/agentchat_stream.ipynb index 7f671bc01660..8cb899d2b508 100644 --- a/notebook/agentchat_stream.ipynb +++ b/notebook/agentchat_stream.ipynb @@ -102,7 +102,7 @@ "]\n", "```\n", "\n", - "You can set the value of config_list in any way you prefer. Please refer to this [notebook](https://github.com/microsoft/autogen/blob/main/website/docs/llm_configuration.ipynb) for full code examples of the different methods." + "You can set the value of config_list in any way you prefer. Please refer to this [notebook](https://github.com/microsoft/autogen/blob/main/website/docs/topics/llm_configuration.ipynb) for full code examples of the different methods." ] }, { diff --git a/notebook/agentchat_teachability.ipynb b/notebook/agentchat_teachability.ipynb index 0f9550bd7b03..ac239f793dc7 100644 --- a/notebook/agentchat_teachability.ipynb +++ b/notebook/agentchat_teachability.ipynb @@ -1,13 +1,5 @@ { "cells": [ - { - "attachments": {}, - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\"Open" - ] - }, { "attachments": {}, "cell_type": "markdown", @@ -21,24 +13,21 @@ "\n", "In making decisions about memo storage and retrieval, `Teachability` calls an instance of `TextAnalyzerAgent` to analyze pieces of text in several different ways. This adds extra LLM calls involving a relatively small number of tokens. These calls can add a few seconds to the time a user waits for a response.\n", "\n", - "This notebook demonstrates how `Teachability` can be added to an agent so that it can learn facts, preferences, and skills from users. To chat with a teachable agent yourself, run [chat_with_teachable_agent.py](../test/agentchat/contrib/chat_with_teachable_agent.py).\n", + "This notebook demonstrates how `Teachability` can be added to an agent so that it can learn facts, preferences, and skills from users. To chat with a teachable agent yourself, run [chat_with_teachable_agent.py](https://github.com/microsoft/autogen/blob/main/test/agentchat/contrib/capabilities/chat_with_teachable_agent.py).\n", "\n", "## Requirements\n", "\n", - "AutoGen requires `Python>=3.8`. To run this notebook example, please install the [teachable] option.\n", + "````{=mdx}\n", + ":::info Requirements\n", + "Some extra dependencies are needed for this notebook, which can be installed via pip:\n", + "\n", "```bash\n", - "pip install \"pyautogen[teachable]\"\n", - "```" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "%%capture --no-stderr\n", - "# %pip install \"pyautogen[teachable]\"" + "pip install pyautogen[teachable]\n", + "```\n", + "\n", + "For more information, please refer to the [installation guide](/docs/installation/).\n", + ":::\n", + "````" ] }, { @@ -85,39 +74,11 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "It first looks for environment variable \"OAI_CONFIG_LIST\" which needs to be a valid json string. If that variable is not found, it then looks for a json file named \"OAI_CONFIG_LIST\". It filters the configs by models (you can filter by other keys as well). After application of the filter shown above, only the gpt-4 models are considered.\n", - "\n", - "The config list may look like the following:\n", - "```python\n", - "config_list = [\n", - " {\n", - " 'model': 'gpt-4-1106-preview',\n", - " 'api_key': '',\n", - " },\n", - " {\n", - " 'model': 'gpt-4',\n", - " 'api_key': '',\n", - " },\n", - " {\n", - " 'model': 'gpt-4',\n", - " 'api_key': '',\n", - " 'base_url': '',\n", - " 'api_type': 'azure',\n", - " 'api_version': '2024-02-15-preview',\n", - " },\n", - " {\n", - " 'model': 'gpt-4-32k',\n", - " 'api_key': '',\n", - " 'base_url': '',\n", - " 'api_type': 'azure',\n", - " 'api_version': '2024-02-15-preview',\n", - " },\n", - "]\n", - "```\n", - "\n", - "If you open this notebook in colab, you can upload your files by clicking the file icon on the left panel and then choose \"upload file\" icon.\n", - "\n", - "You can set the value of config_list in other ways if you prefer, e.g., loading from a YAML file." + "````{=mdx}\n", + ":::tip\n", + "Learn more about configuring LLMs for agents [here](/docs/topics/llm_configuration).\n", + ":::\n", + "````" ] }, { @@ -138,8 +99,8 @@ "name": "stdout", "output_type": "stream", "text": [ - "\u001b[92m\n", - "CLEARING MEMORY\u001b[0m\n" + "\u001B[92m\n", + "CLEARING MEMORY\u001B[0m\n" ] } ], @@ -161,14 +122,6 @@ "# Now add the Teachability capability to the agent.\n", "teachability.add_to_agent(teachable_agent)\n", "\n", - "try:\n", - " from termcolor import colored\n", - "except ImportError:\n", - "\n", - " def colored(x, *args, **kwargs):\n", - " return x\n", - "\n", - "\n", "# Instantiate a UserProxyAgent to represent the user. But in this notebook, all user input will be simulated.\n", "user = UserProxyAgent(\n", " name=\"user\",\n", @@ -199,14 +152,14 @@ "name": "stdout", "output_type": "stream", "text": [ - "\u001b[33muser\u001b[0m (to teachable_agent):\n", + "\u001B[33muser\u001B[0m (to teachable_agent):\n", "\n", "What is the Vicuna model?\n", "\n", "--------------------------------------------------------------------------------\n", - "\u001b[31m\n", - ">>>>>>>> USING AUTO REPLY...\u001b[0m\n", - "\u001b[33mteachable_agent\u001b[0m (to user):\n", + "\u001B[31m\n", + ">>>>>>>> USING AUTO REPLY...\u001B[0m\n", + "\u001B[33mteachable_agent\u001B[0m (to user):\n", "\n", "The term \"Vicuna model\" does not point to a well-known concept or framework in the realms of science, technology, or social sciences as of my last knowledge update in early 2023. It's possible that the term could be a reference to a proprietary model or a concept that has emerged after my last update or it might be a misspelling or a misunderstanding.\n", "\n", @@ -232,14 +185,14 @@ "name": "stdout", "output_type": "stream", "text": [ - "\u001b[33muser\u001b[0m (to teachable_agent):\n", + "\u001B[33muser\u001B[0m (to teachable_agent):\n", "\n", "Vicuna is a 13B-parameter language model released by Meta.\n", "\n", "--------------------------------------------------------------------------------\n", - "\u001b[31m\n", - ">>>>>>>> USING AUTO REPLY...\u001b[0m\n", - "\u001b[33mteachable_agent\u001b[0m (to user):\n", + "\u001B[31m\n", + ">>>>>>>> USING AUTO REPLY...\u001B[0m\n", + "\u001B[33mteachable_agent\u001B[0m (to user):\n", "\n", "My apologies for the confusion. As of my last update, the Vicuna model had not been part of my database. If Vicuna is indeed a 13-billion-parameter language model developed by Meta (formerly Facebook Inc.), then it would be one of the large-scale transformer-based models akin to those like GPT-3 by OpenAI.\n", "\n", @@ -269,14 +222,14 @@ "name": "stdout", "output_type": "stream", "text": [ - "\u001b[33muser\u001b[0m (to teachable_agent):\n", + "\u001B[33muser\u001B[0m (to teachable_agent):\n", "\n", "What is the Orca model?\n", "\n", "--------------------------------------------------------------------------------\n", - "\u001b[31m\n", - ">>>>>>>> USING AUTO REPLY...\u001b[0m\n", - "\u001b[33mteachable_agent\u001b[0m (to user):\n", + "\u001B[31m\n", + ">>>>>>>> USING AUTO REPLY...\u001B[0m\n", + "\u001B[33mteachable_agent\u001B[0m (to user):\n", "\n", "As of my last update, the Orca model appears to reference a new development that I do not have extensive information on, similar to the earlier reference to the Vicuna model.\n", "\n", @@ -302,14 +255,14 @@ "name": "stdout", "output_type": "stream", "text": [ - "\u001b[33muser\u001b[0m (to teachable_agent):\n", + "\u001B[33muser\u001B[0m (to teachable_agent):\n", "\n", "Orca is a 13B-parameter language model developed by Microsoft. It outperforms Vicuna on most tasks.\n", "\n", "--------------------------------------------------------------------------------\n", - "\u001b[31m\n", - ">>>>>>>> USING AUTO REPLY...\u001b[0m\n", - "\u001b[33mteachable_agent\u001b[0m (to user):\n", + "\u001B[31m\n", + ">>>>>>>> USING AUTO REPLY...\u001B[0m\n", + "\u001B[33mteachable_agent\u001B[0m (to user):\n", "\n", "Thank you for providing the context about the Orca model. Based on the new information you've given, Orca is a language model with 13 billion parameters, similar in size to Meta's Vicuna model, but developed by Microsoft. If it outperforms Vicuna on most tasks, it suggests that it could have been trained on a more diverse dataset, use a more advanced architecture, have more effective training techniques, or some combination of these factors.\n", "\n", @@ -344,14 +297,14 @@ "name": "stdout", "output_type": "stream", "text": [ - "\u001b[33muser\u001b[0m (to teachable_agent):\n", + "\u001B[33muser\u001B[0m (to teachable_agent):\n", "\n", "How does the Vicuna model compare to the Orca model?\n", "\n", "--------------------------------------------------------------------------------\n", - "\u001b[31m\n", - ">>>>>>>> USING AUTO REPLY...\u001b[0m\n", - "\u001b[33mteachable_agent\u001b[0m (to user):\n", + "\u001B[31m\n", + ">>>>>>>> USING AUTO REPLY...\u001B[0m\n", + "\u001B[33mteachable_agent\u001B[0m (to user):\n", "\n", "The Vicuna model and the Orca model are both large-scale language models with a significant number of parameters—13 billion, to be exact.\n", "\n", @@ -387,7 +340,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "\u001b[33muser\u001b[0m (to teachable_agent):\n", + "\u001B[33muser\u001B[0m (to teachable_agent):\n", "\n", "Please summarize this abstract.\n", "\n", @@ -397,9 +350,9 @@ "\n", "\n", "--------------------------------------------------------------------------------\n", - "\u001b[31m\n", - ">>>>>>>> USING AUTO REPLY...\u001b[0m\n", - "\u001b[33mteachable_agent\u001b[0m (to user):\n", + "\u001B[31m\n", + ">>>>>>>> USING AUTO REPLY...\u001B[0m\n", + "\u001B[33mteachable_agent\u001B[0m (to user):\n", "\n", "AutoGen is an open-source framework designed to facilitate the creation of applications using large language models (LLMs) through the use of multiple conversational agents. These agents can be tailored to users' needs and are capable of interaction in multiple modes, including with other LLMs, human input, and additional tools. With AutoGen, developers have the flexibility to program agent interactions using both natural language and code, enabling the creation of complex patterns suitable for a wide range of applications. The framework has been proven effective across various fields, such as math, coding, question answering, and entertainment, based on empirical studies conducted to test its capabilities.\n", "\n", @@ -433,7 +386,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "\u001b[33muser\u001b[0m (to teachable_agent):\n", + "\u001B[33muser\u001B[0m (to teachable_agent):\n", "\n", "Please summarize this abstract. \n", "When I'm summarizing an abstract, I try to make the summary contain just three short bullet points: the title, the innovation, and the key empirical results.\n", @@ -444,9 +397,9 @@ "\n", "\n", "--------------------------------------------------------------------------------\n", - "\u001b[31m\n", - ">>>>>>>> USING AUTO REPLY...\u001b[0m\n", - "\u001b[33mteachable_agent\u001b[0m (to user):\n", + "\u001B[31m\n", + ">>>>>>>> USING AUTO REPLY...\u001B[0m\n", + "\u001B[33mteachable_agent\u001B[0m (to user):\n", "\n", "- Title: AutoGen: Enabling Next-Gen LLM Applications via Multi-Agent Conversation\n", "- Innovation: AutoGen, an open-source framework that supports building large language model (LLM) applications by enabling conversation among multiple customizable and conversable agents.\n", @@ -483,7 +436,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "\u001b[33muser\u001b[0m (to teachable_agent):\n", + "\u001B[33muser\u001B[0m (to teachable_agent):\n", "\n", "Please summarize this abstract.\n", "\n", @@ -492,9 +445,9 @@ "Artificial intelligence (AI) researchers have been developing and refining large language models (LLMs) that exhibit remarkable capabilities across a variety of domains and tasks, challenging our understanding of learning and cognition. The latest model developed by OpenAI, GPT-4, was trained using an unprecedented scale of compute and data. In this paper, we report on our investigation of an early version of GPT-4, when it was still in active development by OpenAI. We contend that (this early version of) GPT-4 is part of a new cohort of LLMs (along with ChatGPT and Google's PaLM for example) that exhibit more general intelligence than previous AI models. We discuss the rising capabilities and implications of these models. We demonstrate that, beyond its mastery of language, GPT-4 can solve novel and difficult tasks that span mathematics, coding, vision, medicine, law, psychology and more, without needing any special prompting. Moreover, in all of these tasks, GPT-4's performance is strikingly close to human-level performance, and often vastly surpasses prior models such as ChatGPT. Given the breadth and depth of GPT-4's capabilities, we believe that it could reasonably be viewed as an early (yet still incomplete) version of an artificial general intelligence (AGI) system. In our exploration of GPT-4, we put special emphasis on discovering its limitations, and we discuss the challenges ahead for advancing towards deeper and more comprehensive versions of AGI, including the possible need for pursuing a new paradigm that moves beyond next-word prediction. We conclude with reflections on societal influences of the recent technological leap and future research directions.\n", "\n", "--------------------------------------------------------------------------------\n", - "\u001b[31m\n", - ">>>>>>>> USING AUTO REPLY...\u001b[0m\n", - "\u001b[33mteachable_agent\u001b[0m (to user):\n", + "\u001B[31m\n", + ">>>>>>>> USING AUTO REPLY...\u001B[0m\n", + "\u001B[33mteachable_agent\u001B[0m (to user):\n", "\n", "- Title: Sparks of Artificial General Intelligence: Early experiments with GPT-4\n", "\n", @@ -534,7 +487,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "\u001b[33muser\u001b[0m (to teachable_agent):\n", + "\u001B[33muser\u001B[0m (to teachable_agent):\n", "\n", "Consider the identity: \n", "9 * 4 + 6 * 6 = 72\n", @@ -543,9 +496,9 @@ "\n", "\n", "--------------------------------------------------------------------------------\n", - "\u001b[31m\n", - ">>>>>>>> USING AUTO REPLY...\u001b[0m\n", - "\u001b[33mteachable_agent\u001b[0m (to user):\n", + "\u001B[31m\n", + ">>>>>>>> USING AUTO REPLY...\u001B[0m\n", + "\u001B[33mteachable_agent\u001B[0m (to user):\n", "\n", "To solve this problem, we need to find a way to add exactly 27 (since 99 - 72 = 27) to the left hand side of the equation by modifying only one of the integers in the equation. \n", "\n", @@ -610,7 +563,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "\u001b[33muser\u001b[0m (to teachable_agent):\n", + "\u001B[33muser\u001B[0m (to teachable_agent):\n", "\n", "Consider the identity: \n", "9 * 4 + 6 * 6 = 72\n", @@ -631,9 +584,9 @@ "\n", "\n", "--------------------------------------------------------------------------------\n", - "\u001b[31m\n", - ">>>>>>>> USING AUTO REPLY...\u001b[0m\n", - "\u001b[33mteachable_agent\u001b[0m (to user):\n", + "\u001B[31m\n", + ">>>>>>>> USING AUTO REPLY...\u001B[0m\n", + "\u001B[33mteachable_agent\u001B[0m (to user):\n", "\n", "Given the new set of instructions and the correction that according to a past memory, the solution is \"9 * 1 + 6 * 9\", let's follow the steps carefully to arrive at the correct modified equation.\n", "\n", @@ -715,7 +668,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "\u001b[33muser\u001b[0m (to teachable_agent):\n", + "\u001B[33muser\u001B[0m (to teachable_agent):\n", "\n", "Consider the identity: \n", "9 * 4 + 6 * 6 = 72\n", @@ -724,9 +677,9 @@ "\n", "\n", "--------------------------------------------------------------------------------\n", - "\u001b[31m\n", - ">>>>>>>> USING AUTO REPLY...\u001b[0m\n", - "\u001b[33mteachable_agent\u001b[0m (to user):\n", + "\u001B[31m\n", + ">>>>>>>> USING AUTO REPLY...\u001B[0m\n", + "\u001B[33mteachable_agent\u001B[0m (to user):\n", "\n", "Let's apply the steps you've provided to solve the problem at hand:\n", "\n", @@ -787,7 +740,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "\u001b[33muser\u001b[0m (to teachable_agent):\n", + "\u001B[33muser\u001B[0m (to teachable_agent):\n", "\n", "Consider the identity: \n", "8 * 3 + 7 * 9 = 87\n", @@ -796,9 +749,9 @@ "\n", "\n", "--------------------------------------------------------------------------------\n", - "\u001b[31m\n", - ">>>>>>>> USING AUTO REPLY...\u001b[0m\n", - "\u001b[33mteachable_agent\u001b[0m (to user):\n", + "\u001B[31m\n", + ">>>>>>>> USING AUTO REPLY...\u001B[0m\n", + "\u001B[33mteachable_agent\u001B[0m (to user):\n", "\n", "Let's apply the plan step-by-step to find the correct modification:\n", "\n", @@ -841,6 +794,13 @@ } ], "metadata": { + "front_matter": { + "description": "Learn how to persist memories across chat sessions using the Teachability capability", + "tags": [ + "teachability", + "capability" + ] + }, "kernelspec": { "display_name": "flaml", "language": "python", diff --git a/notebook/agentchat_teaching.ipynb b/notebook/agentchat_teaching.ipynb index 45eab8b5cb30..a61f3c7e08ed 100644 --- a/notebook/agentchat_teaching.ipynb +++ b/notebook/agentchat_teaching.ipynb @@ -1,13 +1,5 @@ { "cells": [ - { - "attachments": {}, - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\"Open" - ] - }, { "attachments": {}, "cell_type": "markdown", @@ -22,57 +14,16 @@ "\n", "## Requirements\n", "\n", - "AutoGen requires `Python>=3.8`. To run this notebook example, please install:\n", + "````{=mdx}\n", + ":::info Requirements\n", + "Install `pyautogen`:\n", "```bash\n", - "pip install \"pyautogen>=0.2.3\"\n", - "```" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# %pip install --quiet \"pyautogen>=0.2.3\"" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Set your API Endpoint\n", - "\n", - "The [`config_list_from_json`](https://microsoft.github.io/autogen/docs/reference/oai/openai_utils#config_list_from_json) function loads a list of configurations from an environment variable or a json file.\n", - "\n", - "It first looks for environment variable \"OAI_CONFIG_LIST\" which needs to be a valid json string. If that variable is not found, it then looks for a json file named \"OAI_CONFIG_LIST\". It filters the configs by models (you can filter by other keys as well).\n", - "\n", - "The json looks like the following:\n", - "```json\n", - "[\n", - " {\n", - " \"model\": \"gpt-4\",\n", - " \"api_key\": \"\"\n", - " },\n", - " {\n", - " \"model\": \"gpt-4\",\n", - " \"api_key\": \"\",\n", - " \"base_url\": \"\",\n", - " \"api_type\": \"azure\",\n", - " \"api_version\": \"2024-02-15-preview\"\n", - " },\n", - " {\n", - " \"model\": \"gpt-4-32k\",\n", - " \"api_key\": \"\",\n", - " \"base_url\": \"\",\n", - " \"api_type\": \"azure\",\n", - " \"api_version\": \"2024-02-15-preview\"\n", - " }\n", - "]\n", + "pip install pyautogen\n", "```\n", "\n", - "If you open this notebook in colab, you can upload your files by clicking the file icon on the left panel and then choose \"upload file\" icon.\n" + "For more information, please refer to the [installation guide](/docs/installation/).\n", + ":::\n", + "````\n" ] }, { @@ -99,6 +50,12 @@ "cell_type": "markdown", "metadata": {}, "source": [ + "````{=mdx}\n", + ":::tip\n", + "Learn more about configuring LLMs for agents [here](/docs/topics/llm_configuration).\n", + ":::\n", + "````\n", + "\n", "## Example Task: Literature Survey\n", "\n", "We consider a scenario where one needs to find research papers of a certain topic, categorize the application domains, and plot a bar chart of the number of papers in each domain." @@ -942,6 +899,12 @@ } ], "metadata": { + "front_matter": { + "description": "Teach the agent news skills using natural language", + "tags": [ + "teaching" + ] + }, "kernelspec": { "display_name": "flaml-eval", "language": "python", diff --git a/notebook/agentchat_two_users.ipynb b/notebook/agentchat_two_users.ipynb index a7ea0f72faca..217492786885 100644 --- a/notebook/agentchat_two_users.ipynb +++ b/notebook/agentchat_two_users.ipynb @@ -82,7 +82,7 @@ "]\n", "```\n", "\n", - "You can set the value of config_list in any way you prefer. Please refer to this [notebook](https://github.com/microsoft/autogen/blob/main/website/docs/llm_configuration.ipynb) for full code examples of the different methods." + "You can set the value of config_list in any way you prefer. Please refer to this [notebook](https://github.com/microsoft/autogen/blob/main/website/docs/topics/llm_configuration.ipynb) for full code examples of the different methods." ] }, { diff --git a/notebook/agentchat_video_transcript_translate_with_whisper.ipynb b/notebook/agentchat_video_transcript_translate_with_whisper.ipynb index f100933ff32e..be955d5d74b3 100644 --- a/notebook/agentchat_video_transcript_translate_with_whisper.ipynb +++ b/notebook/agentchat_video_transcript_translate_with_whisper.ipynb @@ -1,20 +1,12 @@ { "cells": [ - { - "cell_type": "markdown", - "id": "e4fccaaa-fda5-4f99-a4c5-c463c5c890f5", - "metadata": {}, - "source": [ - "\"Open" - ] - }, { "cell_type": "markdown", "id": "a5b4540e-4987-4774-9305-764c3133e953", "metadata": {}, "source": [ - "\n", - "# Auto Generated Agent Chat: Translating Video audio using Whisper and GPT-3.5-turbo\n", + "# Translating Video audio using Whisper and GPT-3.5-turbo\n", + "\n", "In this notebook, we demonstrate how to use whisper and GPT-3.5-turbo with `AssistantAgent` and `UserProxyAgent` to recognize and translate\n", "the speech sound from a video file and add the timestamp like a subtitle file based on [agentchat_function_call.ipynb](https://github.com/microsoft/autogen/blob/main/notebook/agentchat_function_call.ipynb)\n" ] @@ -25,27 +17,18 @@ "metadata": {}, "source": [ "## Requirements\n", - "AutoGen requires `Python>=3.8`. To run this notebook example, please install `openai`, `pyautogen`, `whisper`, and `moviepy`:\n", + "\n", + "````{=mdx}\n", + ":::info Requirements\n", + "Some extra dependencies are needed for this notebook, which can be installed via pip:\n", + "\n", "```bash\n", - "pip install openai\n", - "pip install openai-whisper\n", - "pip install moviepy\n", - "pip install pyautogen\n", - "```" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "bc4600b8-c6df-49dd-945d-ce69f30a65cc", - "metadata": {}, - "outputs": [], - "source": [ - "%%capture --no-stderr\n", - "# %pip install moviepy~=1.0.3\n", - "# %pip install openai-whisper~=20230918\n", - "# %pip install openai~=1.3.5\n", - "# %pip install \"pyautogen>=0.2.3\"" + "pip install pyautogen openai openai-whisper\n", + "```\n", + "\n", + "For more information, please refer to the [installation guide](/docs/installation/).\n", + ":::\n", + "````" ] }, { @@ -59,19 +42,13 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 2, "id": "26d1ae87-f007-4286-a56a-dcf68abf9393", "metadata": {}, "outputs": [], "source": [ "import os\n", "\n", - "import whisper\n", - "from moviepy.editor import VideoFileClip\n", - "from openai import OpenAI\n", - "\n", - "import autogen\n", - "\n", "config_list = [\n", " {\n", " \"model\": \"gpt-4\",\n", @@ -85,11 +62,164 @@ "id": "324fec65-ab23-45db-a7a8-0aaf753fe19c", "metadata": {}, "source": [ + "````{=mdx}\n", + ":::tip\n", + "Learn more about configuring LLMs for agents [here](/docs/topics/llm_configuration).\n", + ":::\n", + "````\n", + "\n", "## Example and Output\n", "Below is an example of speech recognition from a [Peppa Pig cartoon video clip](https://drive.google.com/file/d/1QY0naa2acHw2FuH7sY3c-g2sBLtC2Sv4/view?usp=drive_link) originally in English and translated into Chinese.\n", "'FFmpeg' does not support online files. To run the code on the example video, you need to download the example video locally. You can change `your_file_path` to your local video file path." ] }, + { + "cell_type": "code", + "execution_count": null, + "id": "c3e691b8", + "metadata": {}, + "outputs": [], + "source": [ + "from typing import Annotated, List\n", + "\n", + "import whisper\n", + "from openai import OpenAI\n", + "import autogen\n", + "\n", + "\n", + "source_language = \"English\"\n", + "target_language = \"Chinese\"\n", + "key = os.getenv(\"OPENAI_API_KEY\")\n", + "target_video = \"your_file_path\"\n", + "\n", + "assistant = autogen.AssistantAgent(\n", + " name=\"assistant\",\n", + " system_message=\"For coding tasks, only use the functions you have been provided with. Reply TERMINATE when the task is done.\",\n", + " llm_config={\"config_list\": config_list, \"timeout\": 120},\n", + ")\n", + "\n", + "user_proxy = autogen.UserProxyAgent(\n", + " name=\"user_proxy\",\n", + " is_termination_msg=lambda x: x.get(\"content\", \"\") and x.get(\"content\", \"\").rstrip().endswith(\"TERMINATE\"),\n", + " human_input_mode=\"NEVER\",\n", + " max_consecutive_auto_reply=10,\n", + " code_execution_config={},\n", + ")\n", + "\n", + "\n", + "def translate_text(input_text, source_language, target_language):\n", + " client = OpenAI(api_key=key)\n", + "\n", + " response = client.chat.completions.create(\n", + " model=\"gpt-3.5-turbo\",\n", + " messages=[\n", + " {\"role\": \"system\", \"content\": \"You are a helpful assistant.\"},\n", + " {\n", + " \"role\": \"user\",\n", + " \"content\": f\"Directly translate the following {source_language} text to a pure {target_language} \"\n", + " f\"video subtitle text without additional explanation.: '{input_text}'\",\n", + " },\n", + " ],\n", + " max_tokens=1500,\n", + " )\n", + "\n", + " # Correctly accessing the response content\n", + " translated_text = response.choices[0].message.content if response.choices else None\n", + " return translated_text\n", + "\n", + "\n", + "@user_proxy.register_for_execution()\n", + "@assistant.register_for_llm(description=\"using translate_text function to translate the script\")\n", + "def translate_transcript(\n", + " source_language: Annotated[str, \"Source language\"], target_language: Annotated[str, \"Target language\"]\n", + ") -> str:\n", + " with open(\"transcription.txt\", \"r\") as f:\n", + " lines = f.readlines()\n", + "\n", + " translated_transcript = []\n", + "\n", + " for line in lines:\n", + " # Split each line into timestamp and text parts\n", + " parts = line.strip().split(\": \")\n", + " if len(parts) == 2:\n", + " timestamp, text = parts[0], parts[1]\n", + " # Translate only the text part\n", + " translated_text = translate_text(text, source_language, target_language)\n", + " # Reconstruct the line with the translated text and the preserved timestamp\n", + " translated_line = f\"{timestamp}: {translated_text}\"\n", + " translated_transcript.append(translated_line)\n", + " else:\n", + " # If the line doesn't contain a timestamp, add it as is\n", + " translated_transcript.append(line.strip())\n", + "\n", + " return \"\\n\".join(translated_transcript)\n", + "\n", + "\n", + "@user_proxy.register_for_execution()\n", + "@assistant.register_for_llm(description=\"recognize the speech from video and transfer into a txt file\")\n", + "def recognize_transcript_from_video(filepath: Annotated[str, \"path of the video file\"]) -> List[dict]:\n", + " try:\n", + " # Load model\n", + " model = whisper.load_model(\"small\")\n", + "\n", + " # Transcribe audio with detailed timestamps\n", + " result = model.transcribe(filepath, verbose=True)\n", + "\n", + " # Initialize variables for transcript\n", + " transcript = []\n", + " sentence = \"\"\n", + " start_time = 0\n", + "\n", + " # Iterate through the segments in the result\n", + " for segment in result[\"segments\"]:\n", + " # If new sentence starts, save the previous one and reset variables\n", + " if segment[\"start\"] != start_time and sentence:\n", + " transcript.append(\n", + " {\n", + " \"sentence\": sentence.strip() + \".\",\n", + " \"timestamp_start\": start_time,\n", + " \"timestamp_end\": segment[\"start\"],\n", + " }\n", + " )\n", + " sentence = \"\"\n", + " start_time = segment[\"start\"]\n", + "\n", + " # Add the word to the current sentence\n", + " sentence += segment[\"text\"] + \" \"\n", + "\n", + " # Add the final sentence\n", + " if sentence:\n", + " transcript.append(\n", + " {\n", + " \"sentence\": sentence.strip() + \".\",\n", + " \"timestamp_start\": start_time,\n", + " \"timestamp_end\": result[\"segments\"][-1][\"end\"],\n", + " }\n", + " )\n", + "\n", + " # Save the transcript to a file\n", + " with open(\"transcription.txt\", \"w\") as file:\n", + " for item in transcript:\n", + " sentence = item[\"sentence\"]\n", + " start_time, end_time = item[\"timestamp_start\"], item[\"timestamp_end\"]\n", + " file.write(f\"{start_time}s to {end_time}s: {sentence}\\n\")\n", + "\n", + " return transcript\n", + "\n", + " except FileNotFoundError:\n", + " return \"The specified audio file could not be found.\"\n", + " except Exception as e:\n", + " return f\"An unexpected error occurred: {str(e)}\"" + ] + }, + { + "cell_type": "markdown", + "id": "072de235", + "metadata": {}, + "source": [ + "Now, start the chat:" + ] + }, { "cell_type": "code", "execution_count": 5, @@ -206,180 +336,30 @@ } ], "source": [ - "def recognize_transcript_from_video(audio_filepath):\n", - " try:\n", - " # Load model\n", - " model = whisper.load_model(\"small\")\n", - "\n", - " # Transcribe audio with detailed timestamps\n", - " result = model.transcribe(audio_filepath, verbose=True)\n", - "\n", - " # Initialize variables for transcript\n", - " transcript = []\n", - " sentence = \"\"\n", - " start_time = 0\n", - "\n", - " # Iterate through the segments in the result\n", - " for segment in result[\"segments\"]:\n", - " # If new sentence starts, save the previous one and reset variables\n", - " if segment[\"start\"] != start_time and sentence:\n", - " transcript.append(\n", - " {\n", - " \"sentence\": sentence.strip() + \".\",\n", - " \"timestamp_start\": start_time,\n", - " \"timestamp_end\": segment[\"start\"],\n", - " }\n", - " )\n", - " sentence = \"\"\n", - " start_time = segment[\"start\"]\n", - "\n", - " # Add the word to the current sentence\n", - " sentence += segment[\"text\"] + \" \"\n", - "\n", - " # Add the final sentence\n", - " if sentence:\n", - " transcript.append(\n", - " {\n", - " \"sentence\": sentence.strip() + \".\",\n", - " \"timestamp_start\": start_time,\n", - " \"timestamp_end\": result[\"segments\"][-1][\"end\"],\n", - " }\n", - " )\n", - "\n", - " # Save the transcript to a file\n", - " with open(\"transcription.txt\", \"w\") as file:\n", - " for item in transcript:\n", - " sentence = item[\"sentence\"]\n", - " start_time, end_time = item[\"timestamp_start\"], item[\"timestamp_end\"]\n", - " file.write(f\"{start_time}s to {end_time}s: {sentence}\\n\")\n", - "\n", - " return transcript\n", - "\n", - " except FileNotFoundError:\n", - " return \"The specified audio file could not be found.\"\n", - " except Exception as e:\n", - " return f\"An unexpected error occurred: {str(e)}\"\n", - "\n", - "\n", - "def translate_text(input_text, source_language, target_language):\n", - " client = OpenAI(api_key=key)\n", - "\n", - " response = client.chat.completions.create(\n", - " model=\"gpt-3.5-turbo\",\n", - " messages=[\n", - " {\"role\": \"system\", \"content\": \"You are a helpful assistant.\"},\n", - " {\n", - " \"role\": \"user\",\n", - " \"content\": f\"Directly translate the following {source_language} text to a pure {target_language} \"\n", - " f\"video subtitle text without additional explanation.: '{input_text}'\",\n", - " },\n", - " ],\n", - " max_tokens=1500,\n", - " )\n", - "\n", - " # Correctly accessing the response content\n", - " translated_text = response.choices[0].message.content if response.choices else None\n", - " return translated_text\n", - "\n", - "\n", - "def translate_transcript(source_language, target_language):\n", - " with open(\"transcription.txt\", \"r\") as f:\n", - " lines = f.readlines()\n", - "\n", - " translated_transcript = []\n", - "\n", - " for line in lines:\n", - " # Split each line into timestamp and text parts\n", - " parts = line.strip().split(\": \")\n", - " if len(parts) == 2:\n", - " timestamp, text = parts[0], parts[1]\n", - " # Translate only the text part\n", - " translated_text = translate_text(text, source_language, target_language)\n", - " # Reconstruct the line with the translated text and the preserved timestamp\n", - " translated_line = f\"{timestamp}: {translated_text}\"\n", - " translated_transcript.append(translated_line)\n", - " else:\n", - " # If the line doesn't contain a timestamp, add it as is\n", - " translated_transcript.append(line.strip())\n", - "\n", - " return \"\\n\".join(translated_transcript)\n", - "\n", - "\n", - "llm_config = {\n", - " \"functions\": [\n", - " {\n", - " \"name\": \"recognize_transcript_from_video\",\n", - " \"description\": \"recognize the speech from video and transfer into a txt file\",\n", - " \"parameters\": {\n", - " \"type\": \"object\",\n", - " \"properties\": {\n", - " \"audio_filepath\": {\n", - " \"type\": \"string\",\n", - " \"description\": \"path of the video file\",\n", - " }\n", - " },\n", - " \"required\": [\"audio_filepath\"],\n", - " },\n", - " },\n", - " {\n", - " \"name\": \"translate_transcript\",\n", - " \"description\": \"using translate_text function to translate the script\",\n", - " \"parameters\": {\n", - " \"type\": \"object\",\n", - " \"properties\": {\n", - " \"source_language\": {\n", - " \"type\": \"string\",\n", - " \"description\": \"source language\",\n", - " },\n", - " \"target_language\": {\n", - " \"type\": \"string\",\n", - " \"description\": \"target language\",\n", - " },\n", - " },\n", - " \"required\": [\"source_language\", \"target_language\"],\n", - " },\n", - " },\n", - " ],\n", - " \"config_list\": config_list,\n", - " \"timeout\": 120,\n", - "}\n", - "source_language = \"English\"\n", - "target_language = \"Chinese\"\n", - "key = os.getenv(\"OPENAI_API_KEY\")\n", - "target_video = \"your_file_path\"\n", - "\n", - "chatbot = autogen.AssistantAgent(\n", - " name=\"chatbot\",\n", - " system_message=\"For coding tasks, only use the functions you have been provided with. Reply TERMINATE when the task is done.\",\n", - " llm_config=llm_config,\n", - ")\n", - "\n", - "user_proxy = autogen.UserProxyAgent(\n", - " name=\"user_proxy\",\n", - " is_termination_msg=lambda x: x.get(\"content\", \"\") and x.get(\"content\", \"\").rstrip().endswith(\"TERMINATE\"),\n", - " human_input_mode=\"NEVER\",\n", - " max_consecutive_auto_reply=10,\n", - " code_execution_config={\n", - " \"work_dir\": \"coding_2\",\n", - " \"use_docker\": False,\n", - " }, # Please set use_docker=True if docker is available to run the generated code. Using docker is safer than running the generated code directly.\n", - ")\n", - "\n", - "user_proxy.register_function(\n", - " function_map={\n", - " \"recognize_transcript_from_video\": recognize_transcript_from_video,\n", - " \"translate_transcript\": translate_transcript,\n", - " }\n", - ")\n", "user_proxy.initiate_chat(\n", - " chatbot,\n", + " assistant,\n", " message=f\"For the video located in {target_video}, recognize the speech and transfer it into a script file, \"\n", " f\"then translate from {source_language} text to a {target_language} video subtitle text. \",\n", ")" ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "aeea924a", + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { + "front_matter": { + "description": "Use tools to extract and translate the transcript of a video file.", + "tags": [ + "whisper", + "function call" + ] + }, "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", @@ -395,7 +375,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.10" + "version": "3.11.8" } }, "nbformat": 4, diff --git a/notebook/agentchats.ipynb b/notebook/agentchats_sequential_chats.ipynb similarity index 82% rename from notebook/agentchats.ipynb rename to notebook/agentchats_sequential_chats.ipynb index 22a3eafa9b07..0dd9fa941b44 100644 --- a/notebook/agentchats.ipynb +++ b/notebook/agentchats_sequential_chats.ipynb @@ -1,16 +1,5 @@ { "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "" - ] - }, { "attachments": {}, "cell_type": "markdown", @@ -20,12 +9,7 @@ } }, "source": [ - "\n", - "# Solving Multiple Tasks in a Sequence of Chats\n", + "# Solving Multiple Tasks in a Sequence of Chats with Different Conversable Agent Pairs\n", "\n", "This notebook showcases how to use the new chat interface `autogen.initiate_chats` to solve a set of tasks with a sequence of chats. \n", "\n", @@ -59,7 +43,7 @@ "source": [ "\\:\\:\\:tip\n", "\n", - "Learn more about the various ways to configure LLM endpoints [here](/docs/llm_configuration).\n", + "Learn more about the various ways to configure LLM endpoints [here](/docs/topics/llm_configuration).\n", "\n", "\\:\\:\\:" ] @@ -91,16 +75,14 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Solve tasks with a series of chats\n", + "### Example 1: Solve tasks with a series of chats\n", "\n", "The `autogen.initiate_chats` interface can take a list of dictionaries as inputs. Each dictionary preserves the following fields: \n", + "\n", "- `sender`: a conversable agent as the sender;\n", "- `recipient`: a conversable agent as the recipient;\n", - "- `message`: is a string of text (typically a message containing the task);\n", - "- `summary_method`: A string specifying the method to get a summary from the chat. Currently supported choices include `last_msg`, which takes the last message from the chat history as the summary, and `reflection_with_llm`, which uses an LLM call to reflect on the chat history and summarize a takeaway;\n", - "- `summary_prompt`: A string specifying how to instruct an LLM-backed agent (either the recipient or the sender in the chat) to reflect on the chat history and derive a summary. If not otherwise specified, a default prompt will be used when `summary_method` is `reflection_with_llm`.\n", - "\"Summarize the takeaway from the conversation. Do not add any introductory phrases. If the intended request is NOT properly addressed, please point it out.\"\n", - "- `carryover`: A string or a list of string to specify additional context to be used in the chat. With `initiate_chats`, summary from previous chats will be added as carryover. They will be appended after the carryover provided by the user." + "- `message`: is a string of text (typically a message containing the task) or a callable;\n", + "- `summary_method`: A string or a callable to get a summary from the chat. Currently supported choices include `last_msg`, which takes the last message from the chat history as the summary, and `reflection_with_llm`, which uses an LLM call to reflect on the chat history and summarize a takeaway;" ] }, { @@ -834,9 +816,321 @@ " ), f\"The chat history should contain at most 4 messages because max_turns is set to 2 in the {i}-th chat.\"\n", " print(\"\\n\\n\")" ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Example 2: Solve a Sequence of Tasks involving User Defined Message\n", + "\n", + "In this example, say I have two tasks. One resarch task and a one writing task. The writing task needs data from research task. In this example, we direct read data from a file as part of the message." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "research_task = \"\"\"What are daily stock prices of NVDA and TESLA in the past month. Save the results in a .md file named 'stock_prices.md'.\"\"\"\n", + "\n", + "\n", + "def my_writing_task(sender, recipient, context):\n", + " carryover = context.get(\"carryover\", \"\")\n", + " if isinstance(carryover, list):\n", + " carryover = carryover[-1]\n", + "\n", + " try:\n", + " filename = context.get(\"work_dir\", \"\") + \"/stock_prices.md\"\n", + " with open(filename, \"r\") as file:\n", + " data = file.read()\n", + " except Exception as e:\n", + " data = f\"An error occurred while reading the file: {e}\"\n", + "\n", + " return (\n", + " \"\"\"Develop an engaging blog post using any information provided. \"\"\"\n", + " + \"\\nContext:\\n\"\n", + " + carryover\n", + " + \"\\nData:\"\n", + " + data\n", + " )" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[34m\n", + "********************************************************************************\u001b[0m\n", + "\u001b[34mStarting a new chat....\n", + "\n", + "Message:\n", + "What are daily stock prices of NVDA and TESLA in the past month. Save the results in a .md file named 'stock_prices.md'.\n", + "\n", + "Carryover: \n", + "\u001b[0m\n", + "\u001b[34m\n", + "********************************************************************************\u001b[0m\n", + "\u001b[33mUser_Proxy_Auto\u001b[0m (to Financial_researcher):\n", + "\n", + "What are daily stock prices of NVDA and TESLA in the past month. Save the results in a .md file named 'stock_prices.md'.\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33mFinancial_researcher\u001b[0m (to User_Proxy_Auto):\n", + "\n", + "To accomplish this task, I will write a Python script that utilizes an API to fetch the daily stock prices of NVIDIA (NVDA) and Tesla (TSLA) over the past month. I will then format the data into Markdown and save it to a file named 'stock_prices.md'.\n", + "\n", + "Step 1: Fetch the stock price data.\n", + "Step 2: Format the data into Markdown.\n", + "Step 3: Save the data to 'stock_prices.md'.\n", + "\n", + "We'll use the `yfinance` library to fetch the stock data. It's a popular choice for financial data extraction. If you don't have `yfinance` installed, you would need to install it via pip (`!pip install yfinance` in Jupyter notebooks or `pip install yfinance` in the command line). \n", + "\n", + "Let's start with step 1 by writing a script to collect the stock price data of NVDA and TSLA.\n", + "\n", + "```python\n", + "# filename: fetch_stock_data.py\n", + "\n", + "import yfinance as yf\n", + "from datetime import datetime, timedelta\n", + "\n", + "# Function to fetch the stock data\n", + "def fetch_stock_data(ticker):\n", + " end_date = datetime.now()\n", + " start_date = end_date - timedelta(days=30)\n", + " \n", + " # Fetching the historical data\n", + " stock_data = yf.download(ticker, start=start_date, end=end_date)\n", + " \n", + " # Formatting the date to a more readable form\n", + " stock_data.index = stock_data.index.strftime('%Y-%m-%d')\n", + " \n", + " return stock_data\n", + "\n", + "# Fetching data for NVDA and TSLA\n", + "nvda_data = fetch_stock_data('NVDA')\n", + "tesla_data = fetch_stock_data('TSLA')\n", + "\n", + "# Formatting the data into Markdown\n", + "with open('stock_prices.md', 'w') as md_file:\n", + " md_file.write('# Stock Prices for NVDA and TSLA in the Past Month\\n\\n')\n", + " md_file.write('## NVDA\\n\\n')\n", + " md_file.write(nvda_data['Close'].to_markdown() + '\\n\\n')\n", + " md_file.write('## TSLA\\n\\n')\n", + " md_file.write(tesla_data['Close'].to_markdown() + '\\n\\n')\n", + "\n", + "print(\"Stock prices fetched and saved to 'stock_prices.md'.\")\n", + "```\n", + "\n", + "Execute this script after ensuring that `yfinance` is installed. It will fetch the data and save it to 'stock_prices.md'.\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[31m\n", + ">>>>>>>> EXECUTING CODE BLOCK 0 (inferred language is python)...\u001b[0m\n", + "\u001b[33mUser_Proxy_Auto\u001b[0m (to Financial_researcher):\n", + "\n", + "exitcode: 0 (execution succeeded)\n", + "Code output: \n", + "Stock prices fetched and saved to 'stock_prices.md'.\n", + "\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33mFinancial_researcher\u001b[0m (to User_Proxy_Auto):\n", + "\n", + "The script execution was successful, and it has fetched the stock prices for NVDA and TSLA for the past month and saved the data in a file named 'stock_prices.md'.\n", + "\n", + "You should now have a Markdown file with the stock prices. If you need further assistance or additional tasks, feel free to ask.\n", + "\n", + "TERMINATE\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[34m\n", + "********************************************************************************\u001b[0m\n", + "\u001b[34mStarting a new chat....\n", + "\n", + "Message:\n", + "Callable: my_writing_task\n", + "\n", + "Carryover: \n", + "The script execution was successful, and it has fetched the stock prices for NVDA and TSLA for the past month and saved the data in a file named 'stock_prices.md'.\n", + "\n", + "You should now have a Markdown file with the stock prices. If you need further assistance or additional tasks, feel free to ask.\n", + "\n", + "\u001b[0m\n", + "\u001b[34m\n", + "********************************************************************************\u001b[0m\n", + "\u001b[33mUser_Proxy_Auto\u001b[0m (to Writer):\n", + "\n", + "Develop an engaging blog post using any information provided. \n", + "Context:\n", + "The script execution was successful, and it has fetched the stock prices for NVDA and TSLA for the past month and saved the data in a file named 'stock_prices.md'.\n", + "\n", + "You should now have a Markdown file with the stock prices. If you need further assistance or additional tasks, feel free to ask.\n", + "\n", + "\n", + "Data:# Stock Prices for NVDA and TSLA in the Past Month\n", + "\n", + "## NVDA\n", + "\n", + "| Date | Close |\n", + "|:-----------|--------:|\n", + "| 2024-02-02 | 661.6 |\n", + "| 2024-02-05 | 693.32 |\n", + "| 2024-02-06 | 682.23 |\n", + "| 2024-02-07 | 700.99 |\n", + "| 2024-02-08 | 696.41 |\n", + "| 2024-02-09 | 721.33 |\n", + "| 2024-02-12 | 722.48 |\n", + "| 2024-02-13 | 721.28 |\n", + "| 2024-02-14 | 739 |\n", + "| 2024-02-15 | 726.58 |\n", + "| 2024-02-16 | 726.13 |\n", + "| 2024-02-20 | 694.52 |\n", + "| 2024-02-21 | 674.72 |\n", + "| 2024-02-22 | 785.38 |\n", + "| 2024-02-23 | 788.17 |\n", + "| 2024-02-26 | 790.92 |\n", + "| 2024-02-27 | 787.01 |\n", + "| 2024-02-28 | 776.63 |\n", + "| 2024-02-29 | 791.12 |\n", + "| 2024-03-01 | 822.79 |\n", + "\n", + "## TSLA\n", + "\n", + "| Date | Close |\n", + "|:-----------|--------:|\n", + "| 2024-02-02 | 187.91 |\n", + "| 2024-02-05 | 181.06 |\n", + "| 2024-02-06 | 185.1 |\n", + "| 2024-02-07 | 187.58 |\n", + "| 2024-02-08 | 189.56 |\n", + "| 2024-02-09 | 193.57 |\n", + "| 2024-02-12 | 188.13 |\n", + "| 2024-02-13 | 184.02 |\n", + "| 2024-02-14 | 188.71 |\n", + "| 2024-02-15 | 200.45 |\n", + "| 2024-02-16 | 199.95 |\n", + "| 2024-02-20 | 193.76 |\n", + "| 2024-02-21 | 194.77 |\n", + "| 2024-02-22 | 197.41 |\n", + "| 2024-02-23 | 191.97 |\n", + "| 2024-02-26 | 199.4 |\n", + "| 2024-02-27 | 199.73 |\n", + "| 2024-02-28 | 202.04 |\n", + "| 2024-02-29 | 201.88 |\n", + "| 2024-03-01 | 202.64 |\n", + "\n", + "\n", + "\n", + "--------------------------------------------------------------------------------\n", + "\u001b[33mWriter\u001b[0m (to User_Proxy_Auto):\n", + "\n", + "# A Rollercoaster Month: The Tale of NVDA and TSLA Stock Prices\n", + "\n", + "Welcome to our latest analysis where we bring the ups and downs of the stock market to life. If you've been keeping an eye on the tech industry, you've probably noticed the electrifying performance of two market giants: NVIDIA (NVDA) and Tesla (TSLA). Over the past month, these stocks have taken investors on quite the ride, and we're here to break down the twists and turns.\n", + "\n", + "## NVIDIA: A Journey Through the Digital Realm\n", + "\n", + "NVIDIA, the powerhouse behind some of the most advanced graphics processing technologies, began February modestly at $661.60. However, it didn't take long for this tech titan to start climbing. By February 5, we saw NVDA accelerating to a cool $693.32, hinting at the potential for a thrilling month ahead. The momentum wasn't constant, though, with minor dips, like the one on February 6th to $682.23, reminding shareholders that the journey wouldn't be without its bumps.\n", + "\n", + "Midway through the month, there came a slight calm before the storm, as the stock hovered around $720, suggesting that something big was on the horizon. And true to form, on February 22nd, NVIDIA took everyone by surprise as it surged to an impressive $785.38.\n", + "\n", + "The climax of this exhilarating ride came as February gave way to March, with NVIDIA stock skyrocketing to an apex of $822.79. Investors buckled in tight surely enjoyed the view from this peak.\n", + "\n", + "## Tesla: Charging Ahead with Volatility\n", + "\n", + "Tesla, well-loved and -debated for its visionary approach to automotive technology, also delivered its fair share of market excitement. Starting on a lower key at $187.91, TSLA had a more modest opening than NVDA but held promise for an interesting chapter.\n", + "\n", + "The stock dropped to a monthly low of $181.06 on February 5, causing a bit of heart-in-mouth for supporters. Yet, in classic Tesla fashion, the company steered back onto the track, recovering to $185.10 the next day. Over the next few days, Tesla continued to inch higher, reaching $189.56 by February 8th.\n", + "\n", + "Despite a temporary retreat mid-month, where the stock dipped to $188.13, the electric automaker charged back with vigor, breaking the $200 barrier and hitting a high of $200.45 on February 15th - giving investors a much-needed adrenaline boost.\n", + "\n", + "As February ended and March began, Tesla maintained a price over $200, somewhat steadying the wheel for a close at $202.64, a reassuring end to a month of market fluctuations.\n", + "\n", + "## What's Behind the Movements?\n", + "\n", + "While the numbers tell one story, they don't explain the 'why' behind these market rides. For NVIDIA, a series of positive earnings reports, strategic partnerships, and strong demand for gaming and server GPUs contributed to its stock gains. For Tesla, market sentiment often hinged on production milestones, regulatory news, and the ever-present Twitter activity of its CEO, Elon Musk.\n", + "\n", + "It's important to remember that the stock market is influenced by a complex web of factors, including investor sentiment, industry trends, geopolitical events, and economic indicators. As such, companies like NVIDIA and Tesla don't just operate in a vacuum—every shift in the market can be an echo of larger global narratives.\n", + "\n", + "## An Investor's Perspective\n", + "\n", + "The past month's performance of NVDA and TSLA provides valuable lessons for investors. It showcases the importance of staying informed and understanding that volatility is part and parcel of the investing experience, especially in sectors like technology where innovation is rapid and competition fierce.\n", + "\n", + "While these price swings may cause some to balk, seasoned stock market enthusiasts know that these fluctuations can present opportunities. Whether leveraging these movements for short-term gains or buckling in for the long haul, understanding the story behind the numbers is crucial.\n", + "\n", + "In conclusion, the tale of NVDA and TSLA over the past month has been nothing short of a nail-biter. As we keep our eyes glued to the screens for the next series of movements, always remember: investing is not just about the figures; it's about seeing the whole picture and appreciating every twist and turn of the story that unfolds.\n", + "\n", + "Stay tuned, fasten your seatbelts, and until next time, may your portfolio's story be equally thrilling and rewarding.\n", + "\n", + "TERMINATE\n", + "\n", + "--------------------------------------------------------------------------------\n" + ] + } + ], + "source": [ + "researcher = autogen.AssistantAgent(\n", + " name=\"Financial_researcher\",\n", + " llm_config=llm_config,\n", + ")\n", + "writer = autogen.AssistantAgent(\n", + " name=\"Writer\",\n", + " llm_config=llm_config,\n", + " system_message=\"\"\"\n", + " You are a professional writer, known for\n", + " your insightful and engaging articles.\n", + " You transform complex concepts into compelling narratives.\n", + " Reply \"TERMINATE\" in the end when everything is done.\n", + " \"\"\",\n", + ")\n", + "\n", + "user_proxy_auto = autogen.UserProxyAgent(\n", + " name=\"User_Proxy_Auto\",\n", + " human_input_mode=\"NEVER\",\n", + " is_termination_msg=lambda x: x.get(\"content\", \"\") and x.get(\"content\", \"\").rstrip().endswith(\"TERMINATE\"),\n", + " code_execution_config={\n", + " \"last_n_messages\": 1,\n", + " \"work_dir\": \"tasks\",\n", + " \"use_docker\": False,\n", + " }, # Please set use_docker=True if docker is available to run the generated code. Using docker is safer than running the generated code directly.\n", + ")\n", + "\n", + "chat_results = autogen.initiate_chats(\n", + " [\n", + " {\n", + " \"sender\": user_proxy_auto,\n", + " \"recipient\": researcher,\n", + " \"message\": research_task,\n", + " \"clear_history\": True,\n", + " \"silent\": False,\n", + " \"summary_method\": \"last_msg\",\n", + " },\n", + " {\n", + " \"sender\": user_proxy_auto,\n", + " \"recipient\": writer,\n", + " \"message\": my_writing_task,\n", + " \"max_turns\": 2, # max number of turns for the conversation (added for demo purposes, generally not necessarily needed)\n", + " \"summary_method\": \"reflection_with_llm\",\n", + " \"work_dir\": \"tasks\",\n", + " },\n", + " ]\n", + ")" + ] } ], "metadata": { + "front_matter": { + "description": "Use AutoGen to solve a set of tasks with a sequence of chats.", + "tags": [ + "sequential chats" + ] + }, "kernelspec": { "display_name": "Python 3", "language": "python", diff --git a/notebook/config_loader_utility_functions.ipynb b/notebook/config_loader_utility_functions.ipynb index 84de7cd48d5f..f14288c12099 100644 --- a/notebook/config_loader_utility_functions.ipynb +++ b/notebook/config_loader_utility_functions.ipynb @@ -6,7 +6,7 @@ "source": [ "# Config loader utility functions\n", "\n", - "For an introduction to configuring LLMs, refer to the [main configuration docs](https://microsoft.github.io/autogen/docs/llm_configuration). This guide will run through examples of the more advanced utility functions for managing API configurations.\n", + "For an introduction to configuring LLMs, refer to the [main configuration docs](https://microsoft.github.io/autogen/docs/topics/llm_configuration). This guide will run through examples of the more advanced utility functions for managing API configurations.\n", "\n", "Managing API configurations can be tricky, especially when dealing with multiple models and API versions. The provided utility functions assist users in managing these configurations effectively. Ensure your API keys and other sensitive data are stored securely. You might store keys in `.txt` or `.env` files or environment variables for local development. Never expose your API keys publicly. If you insist on storing your key files locally on your repo (you shouldn't), ensure the key file path is added to the `.gitignore` file.\n", "\n", diff --git a/notebook/contributing.md b/notebook/contributing.md index 4fb78b0964b8..fcafe3c71152 100644 --- a/notebook/contributing.md +++ b/notebook/contributing.md @@ -2,16 +2,23 @@ ## How to get a notebook displayed on the website -Ensure the first cell is markdown and before absolutely anything else include the following yaml within a comment. - -```markdown - +In the notebook metadata set the `tags` and `description` `front_matter` properties. For example: + +```json +{ + "...": "...", + "metadata": { + "...": "...", + "front_matter": { + "tags": ["code generation", "debugging"], + "description": "Use conversable language learning model agents to solve tasks and provide automatic feedback through a comprehensive example of writing, executing, and debugging Python code to compare stock price changes." + } + } +} ``` +**Note**: Notebook metadata can be edited by opening the notebook in a text editor (Or "Open With..." -> "Text Editor" in VSCode) + The `tags` field is a list of tags that will be used to categorize the notebook. The `description` field is a brief description of the notebook. ## Best practices for authoring notebooks @@ -70,7 +77,58 @@ Then after the code cell where this is used, include the following markdown snip `````` ````{=mdx} :::tip -Learn more about configuring LLMs for agents [here](/docs/llm_configuration). +Learn more about configuring LLMs for agents [here](/docs/topics/llm_configuration). ::: ```` `````` + +## Testing + +Notebooks can be tested by running: + +```sh +python website/process_notebooks.py test +``` + +This will automatically scan for all notebooks in the notebook/ and website/ dirs. + +To test a specific notebook pass its path: + +```sh +python website/process_notebooks.py test notebook/agentchat_logging.ipynb +``` + +Options: +- `--timeout` - timeout for a single notebook +- `--exit-on-first-fail` - stop executing further notebooks after the first one fails + +### Skip tests + +If a notebook needs to be skipped then add to the notebook metadata: +```json +{ + "...": "...", + "metadata": { + "skip_test": "REASON" + } +} +``` + +## Metadata fields + +All possible metadata fields are as follows: +```json +{ + "...": "...", + "metadata": { + "...": "...", + "front_matter": { + "tags": "List[str] - List of tags to categorize the notebook", + "description": "str - Brief description of the notebook", + }, + "skip_test": "str - Reason for skipping the test. If present, the notebook will be skipped during testing", + "skip_render": "str - Reason for skipping rendering the notebook. If present, the notebook will be left out of the website.", + "extra_files_to_copy": "List[str] - List of files to copy to the website. The paths are relative to the notebook directory", + } +} +``` diff --git a/notebook/nested-chats-chess.png b/notebook/nested-chats-chess.png new file mode 100644 index 000000000000..d7891bd47ee8 Binary files /dev/null and b/notebook/nested-chats-chess.png differ diff --git a/notebook/nested_chat_1.png b/notebook/nested_chat_1.png new file mode 100644 index 000000000000..548fe75132e6 Binary files /dev/null and b/notebook/nested_chat_1.png differ diff --git a/notebook/nested_chat_2.png b/notebook/nested_chat_2.png new file mode 100644 index 000000000000..917c8ba6f101 Binary files /dev/null and b/notebook/nested_chat_2.png differ diff --git a/notebook/optiGuide_new_design.png b/notebook/optiGuide_new_design.png new file mode 100644 index 000000000000..f05257cbf9fc Binary files /dev/null and b/notebook/optiGuide_new_design.png differ diff --git a/pyproject.toml b/pyproject.toml index f1763fba37ea..f62668659e2a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -16,7 +16,12 @@ exclude = "(.eggs|.git|.hg|.mypy_cache|.venv|_build|buck-out|build|dist)" [tool.ruff] + line-length = 120 + +[tool.ruff.lint] + + # Enable Pyflakes `E` and `F` codes by default. select = [ "E", "W", # see: https://pypi.org/project/pycodestyle @@ -25,12 +30,14 @@ select = [ # "N", # see: https://pypi.org/project/pep8-naming # "S", # see: https://pypi.org/project/flake8-bandit ] + ignore = [ "E501", "F401", "F403", "C901", ] + # Exclude a variety of commonly ignored directories. exclude = [ ".eggs", @@ -49,12 +56,26 @@ exclude = [ ignore-init-module-imports = true unfixable = ["F401"] -[tool.ruff.mccabe] +[tool.ruff.lint.mccabe] # Unlike Flake8, default to a complexity level of 10. max-complexity = 10 [tool.mypy] +files = [ + "autogen/logger", + "autogen/exception_utils.py", + "autogen/coding", + "autogen/oai/openai_utils.py", +] + +exclude = [ + "autogen/math_utils\\.py", + "autogen/oai/completion\\.py", + "autogen/agentchat/contrib/compressible_agent\\.py", + "autogen/agentchat/contrib/math_user_proxy_agent.py", +] + strict = true python_version = "3.8" ignore_missing_imports = true diff --git a/samples/apps/autogen-studio/Dockerfile b/samples/apps/autogen-studio/Dockerfile new file mode 100644 index 000000000000..bb475db7176b --- /dev/null +++ b/samples/apps/autogen-studio/Dockerfile @@ -0,0 +1,17 @@ +FROM python:3.10 + +WORKDIR /code + +RUN pip install -U gunicorn autogenstudio + +RUN useradd -m -u 1000 user +USER user +ENV HOME=/home/user \ + PATH=/home/user/.local/bin:$PATH \ + AUTOGENSTUDIO_APPDIR=/home/user/app + +WORKDIR $HOME/app + +COPY --chown=user . $HOME/app + +CMD gunicorn -w $((2 * $(getconf _NPROCESSORS_ONLN) + 1)) --timeout 12600 -k uvicorn.workers.UvicornWorker autogenstudio.web.app:app --bind "0.0.0.0:8081" diff --git a/samples/apps/autogen-studio/README.md b/samples/apps/autogen-studio/README.md index 72dc2b9a427d..28d95cd3e997 100644 --- a/samples/apps/autogen-studio/README.md +++ b/samples/apps/autogen-studio/README.md @@ -14,6 +14,9 @@ Code for AutoGen Studio is on GitHub at [microsoft/autogen](https://github.com/m > [!WARNING] > AutoGen Studio is currently under active development and we are iterating quickly. Kindly consider that we may introduce breaking changes in the releases during the upcoming weeks, and also the `README` might be outdated. We'll update the `README` as soon as we stabilize the API. +> [!NOTE] Updates +> March 12: Default directory for AutoGen Studio is now /home//.autogenstudio. You can also specify this directory using the `--appdir` argument when running the application. For example, `autogenstudio ui --appdir /path/to/folder`. This will store the database and other files in the specified directory e.g. `/path/to/folder/database.sqlite`. `.env` files in that directory will be used to set environment variables for the app. + ### Capabilities / Roadmap Some of the capabilities supported by the app frontend include the following: diff --git a/samples/apps/autogen-studio/autogenstudio/chatmanager.py b/samples/apps/autogen-studio/autogenstudio/chatmanager.py index ee6d51d9d68b..222e7951e560 100644 --- a/samples/apps/autogen-studio/autogenstudio/chatmanager.py +++ b/samples/apps/autogen-studio/autogenstudio/chatmanager.py @@ -1,63 +1,225 @@ +import asyncio +from datetime import datetime import json +from queue import Queue import time -from typing import List -from .datamodel import AgentWorkFlowConfig, Message -from .utils import extract_successful_code_blocks, get_default_agent_config, get_modified_files -from .workflowmanager import AutoGenWorkFlowManager +from typing import Any, List, Dict, Optional, Tuple import os +from fastapi import WebSocket, WebSocketDisconnect +import websockets +from .datamodel import AgentWorkFlowConfig, Message, SocketMessage +from .utils import extract_successful_code_blocks, get_modified_files, summarize_chat_history +from .workflowmanager import AutoGenWorkFlowManager class AutoGenChatManager: - def __init__(self) -> None: - pass + """ + This class handles the automated generation and management of chat interactions + using an automated workflow configuration and message queue. + """ + + def __init__(self, message_queue: Queue) -> None: + """ + Initializes the AutoGenChatManager with a message queue. + + :param message_queue: A queue to use for sending messages asynchronously. + """ + self.message_queue = message_queue + + def send(self, message: str) -> None: + """ + Sends a message by putting it into the message queue. + + :param message: The message string to be sent. + """ + if self.message_queue is not None: + self.message_queue.put_nowait(message) + + def chat( + self, + message: Message, + history: List[Dict[str, Any]], + flow_config: Optional[AgentWorkFlowConfig] = None, + connection_id: Optional[str] = None, + user_dir: Optional[str] = None, + **kwargs, + ) -> Message: + """ + Processes an incoming message according to the agent's workflow configuration + and generates a response. - def chat(self, message: Message, history: List, flow_config: AgentWorkFlowConfig = None, **kwargs) -> None: - work_dir = kwargs.get("work_dir", None) - scratch_dir = os.path.join(work_dir, "scratch") + :param message: An instance of `Message` representing an incoming message. + :param history: A list of dictionaries, each representing a past interaction. + :param flow_config: An instance of `AgentWorkFlowConfig`. If None, defaults to a standard configuration. + :param connection_id: An optional connection identifier. + :param kwargs: Additional keyword arguments. + :return: An instance of `Message` representing a response. + """ + + # create a working director for workflow based on user_dir/session_id/time_hash + work_dir = os.path.join(user_dir, message.session_id, datetime.now().strftime("%Y%m%d_%H-%M-%S")) + os.makedirs(work_dir, exist_ok=True) # if no flow config is provided, use the default if flow_config is None: - flow_config = get_default_agent_config(scratch_dir) + raise ValueError("flow_config must be specified") + + flow = AutoGenWorkFlowManager( + config=flow_config, + history=history, + work_dir=work_dir, + send_message_function=self.send, + connection_id=connection_id, + ) - flow = AutoGenWorkFlowManager(config=flow_config, history=history, work_dir=scratch_dir) message_text = message.content.strip() - output = "" start_time = time.time() - - metadata = {} flow.run(message=f"{message_text}", clear_history=False) + end_time = time.time() - metadata["messages"] = flow.agent_history + metadata = { + "messages": flow.agent_history, + "summary_method": flow_config.summary_method, + "time": end_time - start_time, + "files": get_modified_files(start_time, end_time, source_dir=work_dir), + } - output = "" + print("Modified files: ", len(metadata["files"])) + + output = self._generate_output(message_text, flow, flow_config) + + output_message = Message( + user_id=message.user_id, + root_msg_id=message.root_msg_id, + role="assistant", + content=output, + metadata=json.dumps(metadata), + session_id=message.session_id, + ) + + return output_message + def _generate_output( + self, message_text: str, flow: AutoGenWorkFlowManager, flow_config: AgentWorkFlowConfig + ) -> str: + """ + Generates the output response based on the workflow configuration and agent history. + + :param message_text: The text of the incoming message. + :param flow: An instance of `AutoGenWorkFlowManager`. + :param flow_config: An instance of `AgentWorkFlowConfig`. + :return: The output response as a string. + """ + + output = "" if flow_config.summary_method == "last": successful_code_blocks = extract_successful_code_blocks(flow.agent_history) last_message = flow.agent_history[-1]["message"]["content"] if flow.agent_history else "" successful_code_blocks = "\n\n".join(successful_code_blocks) output = (last_message + "\n" + successful_code_blocks) if successful_code_blocks else last_message elif flow_config.summary_method == "llm": - output = "" + model = flow.config.receiver.config.llm_config.config_list[0] + status_message = SocketMessage( + type="agent_status", + data={"status": "summarizing", "message": "Generating summary of agent dialogue"}, + connection_id=flow.connection_id, + ) + self.send(status_message.dict()) + output = summarize_chat_history(task=message_text, messages=flow.agent_history, model=model) + elif flow_config.summary_method == "none": output = "" + return output - metadata["code"] = "" - metadata["summary_method"] = flow_config.summary_method - end_time = time.time() - metadata["time"] = end_time - start_time - modified_files = get_modified_files(start_time, end_time, scratch_dir, dest_dir=work_dir) - metadata["files"] = modified_files - print("Modified files: ", len(modified_files)) +class WebSocketConnectionManager: + """ + Manages WebSocket connections including sending, broadcasting, and managing the lifecycle of connections. + """ - output_message = Message( - user_id=message.user_id, - root_msg_id=message.root_msg_id, - role="assistant", - content=output, - metadata=json.dumps(metadata), - session_id=message.session_id, - ) + def __init__( + self, active_connections: List[Tuple[WebSocket, str]] = None, active_connections_lock: asyncio.Lock = None + ) -> None: + """ + Initializes WebSocketConnectionManager with an optional list of active WebSocket connections. - return output_message + :param active_connections: A list of tuples, each containing a WebSocket object and its corresponding client_id. + """ + if active_connections is None: + active_connections = [] + self.active_connections_lock = active_connections_lock + self.active_connections: List[Tuple[WebSocket, str]] = active_connections + + async def connect(self, websocket: WebSocket, client_id: str) -> None: + """ + Accepts a new WebSocket connection and appends it to the active connections list. + + :param websocket: The WebSocket instance representing a client connection. + :param client_id: A string representing the unique identifier of the client. + """ + await websocket.accept() + async with self.active_connections_lock: + self.active_connections.append((websocket, client_id)) + print(f"New Connection: {client_id}, Total: {len(self.active_connections)}") + + async def disconnect(self, websocket: WebSocket) -> None: + """ + Disconnects and removes a WebSocket connection from the active connections list. + + :param websocket: The WebSocket instance to remove. + """ + async with self.active_connections_lock: + try: + self.active_connections = [conn for conn in self.active_connections if conn[0] != websocket] + print(f"Connection Closed. Total: {len(self.active_connections)}") + except ValueError: + print("Error: WebSocket connection not found") + + async def disconnect_all(self) -> None: + """ + Disconnects all active WebSocket connections. + """ + for connection, _ in self.active_connections[:]: + await self.disconnect(connection) + + async def send_message(self, message: Dict, websocket: WebSocket) -> None: + """ + Sends a JSON message to a single WebSocket connection. + + :param message: A JSON serializable dictionary containing the message to send. + :param websocket: The WebSocket instance through which to send the message. + """ + try: + async with self.active_connections_lock: + await websocket.send_json(message) + except WebSocketDisconnect: + print("Error: Tried to send a message to a closed WebSocket") + await self.disconnect(websocket) + except websockets.exceptions.ConnectionClosedOK: + print("Error: WebSocket connection closed normally") + await self.disconnect(websocket) + except Exception as e: + print(f"Error in sending message: {str(e)}") + await self.disconnect(websocket) + + async def broadcast(self, message: Dict) -> None: + """ + Broadcasts a JSON message to all active WebSocket connections. + + :param message: A JSON serializable dictionary containing the message to broadcast. + """ + # Create a message dictionary with the desired format + message_dict = {"message": message} + + for connection, _ in self.active_connections[:]: + try: + if connection.client_state == websockets.protocol.State.OPEN: + # Call send_message method with the message dictionary and current WebSocket connection + await self.send_message(message_dict, connection) + else: + print("Error: WebSocket connection is closed") + await self.disconnect(connection) + except (WebSocketDisconnect, websockets.exceptions.ConnectionClosedOK) as e: + print(f"Error: WebSocket disconnected or closed({str(e)})") + await self.disconnect(connection) diff --git a/samples/apps/autogen-studio/autogenstudio/datamodel.py b/samples/apps/autogen-studio/autogenstudio/datamodel.py index 1068aa281f25..8bebdb63ef40 100644 --- a/samples/apps/autogen-studio/autogenstudio/datamodel.py +++ b/samples/apps/autogen-studio/autogenstudio/datamodel.py @@ -93,6 +93,7 @@ class LLMConfig: cache_seed: Optional[Union[int, None]] = None timeout: Optional[int] = None max_tokens: Optional[int] = None + extra_body: Optional[dict] = None def dict(self): result = asdict(self) @@ -112,6 +113,7 @@ class AgentConfig: is_termination_msg: Optional[Union[bool, str, Callable]] = None code_execution_config: Optional[Union[bool, str, Dict[str, Any]]] = None default_auto_reply: Optional[str] = "" + description: Optional[str] = None def dict(self): result = asdict(self) @@ -130,7 +132,6 @@ class AgentFlowSpec: timestamp: Optional[str] = None user_id: Optional[str] = None skills: Optional[Union[None, List[Skill]]] = None - description: Optional[str] = None def __post_init__(self): if self.timestamp is None: @@ -174,7 +175,6 @@ class GroupChatFlowSpec: id: Optional[str] = None timestamp: Optional[str] = None user_id: Optional[str] = None - description: Optional[str] = None skills: Optional[Union[None, List[Skill]]] = None def __post_init__(self): @@ -302,3 +302,16 @@ class DBWebRequestModel(object): agent: Optional[AgentFlowSpec] = None workflow: Optional[AgentWorkFlowConfig] = None model: Optional[Model] = None + message: Optional[Message] = None + connection_id: Optional[str] = None + + +@dataclass +class SocketMessage(object): + connection_id: str + data: Dict[str, Any] + type: str + + def dict(self): + result = asdict(self) + return result diff --git a/samples/apps/autogen-studio/autogenstudio/utils/dbdefaults.json b/samples/apps/autogen-studio/autogenstudio/utils/dbdefaults.json index 9359a05afd07..7f36325266ea 100644 --- a/samples/apps/autogen-studio/autogenstudio/utils/dbdefaults.json +++ b/samples/apps/autogen-studio/autogenstudio/utils/dbdefaults.json @@ -22,7 +22,7 @@ "agents": [ { "type": "userproxy", - "description": "A user proxy agent that executes code.", + "config": { "name": "userproxy", "human_input_mode": "NEVER", @@ -33,12 +33,12 @@ "code_execution_config": { "work_dir": null, "use_docker": false - } + }, + "description": "A user proxy agent that executes code." } }, { "type": "assistant", - "description": "A primary assistant agent that writes plans and code to solve tasks.", "skills": [ { "title": "find_papers_arxiv", @@ -54,6 +54,7 @@ ], "config": { "name": "primary_assistant", + "description": "A primary assistant agent that writes plans and code to solve tasks.", "llm_config": { "config_list": [ { @@ -138,7 +139,7 @@ }, "human_input_mode": "NEVER", "max_consecutive_auto_reply": 8, - "system_message": "You are a helpful assistant that can suggest a travel plan for a user. You are the primary cordinator who will receive suggestions or advice from other agents (local_assistant, language_assistant). You must ensure that the finally plan integrates the suggestions from other agents or team members. YOUR FINAL RESPONSE MUST BE THE COMPLETE PLAN that ends with the word TERMINATE. " + "system_message": "You are a helpful assistant that can suggest a travel plan for a user. You are the primary cordinator who will receive suggestions or advice from other agents (local_assistant, language_assistant). You must ensure that the finally plan integrates the suggestions from other agents or team members. YOUR FINAL RESPONSE MUST BE THE COMPLETE PLAN. When the plan is complete and all perspectives are integrated, you can respond with TERMINATE." } }, { @@ -188,9 +189,9 @@ "description": "This workflow is used for general purpose tasks.", "sender": { "type": "userproxy", - "description": "A user proxy agent that executes code.", "config": { "name": "userproxy", + "description": "A user proxy agent that executes code.", "human_input_mode": "NEVER", "max_consecutive_auto_reply": 10, "system_message": "You are a helpful assistant.", @@ -204,7 +205,7 @@ }, "receiver": { "type": "assistant", - "description": "Default assistant to generate plans and write code to solve tasks.", + "skills": [ { "title": "find_papers_arxiv", @@ -218,6 +219,7 @@ } ], "config": { + "description": "Default assistant to generate plans and write code to solve tasks.", "name": "primary_assistant", "llm_config": { "config_list": [ diff --git a/samples/apps/autogen-studio/autogenstudio/utils/dbutils.py b/samples/apps/autogen-studio/autogenstudio/utils/dbutils.py index 92893c01c3dc..a7c4b7d4c05c 100644 --- a/samples/apps/autogen-studio/autogenstudio/utils/dbutils.py +++ b/samples/apps/autogen-studio/autogenstudio/utils/dbutils.py @@ -51,6 +51,7 @@ id TEXT NOT NULL, user_id TEXT NOT NULL, timestamp DATETIME NOT NULL, + name TEXT, flow_config TEXT, UNIQUE (user_id, id) ) @@ -76,7 +77,6 @@ config TEXT, type TEXT, skills TEXT, - description TEXT, UNIQUE (id, user_id) ) """ @@ -136,10 +136,40 @@ def __init__(self, path: str = "database.sqlite", **kwargs: Any) -> None: try: self.conn = sqlite3.connect(self.path, check_same_thread=False, **kwargs) self.cursor = self.conn.cursor() + self.migrate() except Exception as e: logger.error("Error connecting to database: %s", e) raise e + def migrate(self): + """ + Run migrations to update the database schema. + """ + self.add_column_if_not_exists("sessions", "name", "TEXT") + self.add_column_if_not_exists("models", "description", "TEXT") + + def add_column_if_not_exists(self, table: str, column: str, column_type: str): + """ + Adds a new column to the specified table if it does not exist. + + Args: + table (str): The table name where the column should be added. + column (str): The column name that should be added. + column_type (str): The data type of the new column. + """ + try: + self.cursor.execute(f"PRAGMA table_info({table})") + column_names = [row[1] for row in self.cursor.fetchall()] + if column not in column_names: + self.cursor.execute(f"ALTER TABLE {table} ADD COLUMN {column} {column_type}") + self.conn.commit() + logger.info(f"Migration: New '{column}' column has been added to the '{table}' table.") + else: + logger.info(f"'{column}' column already exists in the '{table}' table.") + + except Exception as e: + print(f"Error while checking and updating '{table}' table: {e}") + def reset_db(self): """ Reset the database by deleting the database file and creating a new one. @@ -149,13 +179,6 @@ def reset_db(self): os.remove(self.path) self.init_db(path=self.path) - def run_migrations(self): - """ - Run migrations to update the database schema. - """ - - pass - def init_db(self, path: str = "database.sqlite", **kwargs: Any) -> None: """ Initializes the database by creating necessary tables. @@ -228,7 +251,7 @@ def init_db(self, path: str = "database.sqlite", **kwargs: Any) -> None: agent = AgentFlowSpec(**agent) agent.skills = [skill.dict() for skill in agent.skills] if agent.skills else None self.cursor.execute( - "INSERT INTO agents (id, user_id, timestamp, config, type, skills, description) VALUES (?, ?, ?, ?, ?, ?, ?)", + "INSERT INTO agents (id, user_id, timestamp, config, type, skills) VALUES (?, ?, ?, ?, ?, ?)", ( agent.id, "default", @@ -236,7 +259,6 @@ def init_db(self, path: str = "database.sqlite", **kwargs: Any) -> None: json.dumps(agent.config.dict()), agent.type, json.dumps(agent.skills), - agent.description, ), ) @@ -387,7 +409,7 @@ def delete_model(model: Model, dbmanager: DBManager) -> List[dict]: return models -def create_message(message: Message, dbmanager: DBManager) -> None: +def create_message(message: Message, dbmanager: DBManager) -> List[dict]: """ Save a message in the database using the provided database manager. @@ -406,6 +428,8 @@ def create_message(message: Message, dbmanager: DBManager) -> None: message.session_id, ) dbmanager.query(query=query, args=args) + messages = get_messages(user_id=message.user_id, session_id=message.session_id, dbmanager=dbmanager) + return messages def get_messages(user_id: str, session_id: str, dbmanager: DBManager) -> List[dict]: @@ -460,6 +484,24 @@ def create_session(user_id: str, session: Session, dbmanager: DBManager) -> List return sessions +def rename_session(name: str, session: Session, dbmanager: DBManager) -> List[dict]: + """ + Edit a session for a specific user in the database. + + :param name: The new name of the session + :param session: The Session object containing session data + :param dbmanager: The DBManager instance to interact with the database + :return: A list of dictionaries, each representing a session + """ + + query = "UPDATE sessions SET name = ? WHERE id = ?" + args = (name, session.id) + dbmanager.query(query=query, args=args) + sessions = get_sessions(user_id=session.user_id, dbmanager=dbmanager) + + return sessions + + def delete_session(session: Session, dbmanager: DBManager) -> List[dict]: """ Delete a specific session and all messages for that session in the database. @@ -674,12 +716,11 @@ def upsert_agent(agent_flow_spec: AgentFlowSpec, dbmanager: DBManager) -> List[D "timestamp": agent_flow_spec.timestamp, "config": json.dumps(agent_flow_spec.config.dict()), "type": agent_flow_spec.type, - "description": agent_flow_spec.description, "skills": json.dumps([x.dict() for x in agent_flow_spec.skills] if agent_flow_spec.skills else []), } update_item("agents", agent_flow_spec.id, updated_data, dbmanager) else: - query = "INSERT INTO agents (id, user_id, timestamp, config, type, description, skills) VALUES (?, ?, ?, ?, ?, ?, ?)" + query = "INSERT INTO agents (id, user_id, timestamp, config, type, skills) VALUES (?, ?, ?, ?, ?,?)" config_json = json.dumps(agent_flow_spec.config.dict()) args = ( agent_flow_spec.id, @@ -687,7 +728,6 @@ def upsert_agent(agent_flow_spec: AgentFlowSpec, dbmanager: DBManager) -> List[D agent_flow_spec.timestamp, config_json, agent_flow_spec.type, - agent_flow_spec.description, json.dumps([x.dict() for x in agent_flow_spec.skills] if agent_flow_spec.skills else []), ) dbmanager.query(query=query, args=args) diff --git a/samples/apps/autogen-studio/autogenstudio/utils/utils.py b/samples/apps/autogen-studio/autogenstudio/utils/utils.py index b604fb30d4aa..8795037cf287 100644 --- a/samples/apps/autogen-studio/autogenstudio/utils/utils.py +++ b/samples/apps/autogen-studio/autogenstudio/utils/utils.py @@ -8,6 +8,8 @@ import autogen from autogen.oai.client import OpenAIWrapper from ..datamodel import AgentConfig, AgentFlowSpec, AgentWorkFlowConfig, LLMConfig, Model, Skill +from dotenv import load_dotenv +from ..version import APP_NAME def md5_hash(text: str) -> str: @@ -145,21 +147,17 @@ def serialize_file(file_path: str) -> Tuple[str, str]: return base64_encoded_content, file_type -def get_modified_files( - start_timestamp: float, end_timestamp: float, source_dir: str, dest_dir: str -) -> List[Dict[str, str]]: +def get_modified_files(start_timestamp: float, end_timestamp: float, source_dir: str) -> List[Dict[str, str]]: """ - Copy files from source_dir that were modified within a specified timestamp range - to dest_dir, renaming files if they already exist there. The function excludes - files with certain file extensions and names. + Identify files from source_dir that were modified within a specified timestamp range. + The function excludes files with certain file extensions and names. - :param start_timestamp: The start timestamp to filter modified files. - :param end_timestamp: The end timestamp to filter modified files. + :param start_timestamp: The floating-point number representing the start timestamp to filter modified files. + :param end_timestamp: The floating-point number representing the end timestamp to filter modified files. :param source_dir: The directory to search for modified files. - :param dest_dir: The destination directory to copy modified files to. - :return: A list of dictionaries with details of file paths in dest_dir that were modified and copied over. - Dictionary format: {path: "", name: "", extension: ""} + :return: A list of dictionaries with details of relative file paths that were modified. + Dictionary format: {path: "", name: "", extension: "", type: ""} Files with extensions "__pycache__", "*.pyc", "__init__.py", and "*.cache" are ignored. """ @@ -167,63 +165,63 @@ def get_modified_files( ignore_extensions = {".pyc", ".cache"} ignore_files = {"__pycache__", "__init__.py"} + # Walk through the directory tree for root, dirs, files in os.walk(source_dir): - # Excluding the directory "__pycache__" if present + # Update directories and files to exclude those to be ignored dirs[:] = [d for d in dirs if d not in ignore_files] + files[:] = [f for f in files if f not in ignore_files and os.path.splitext(f)[1] not in ignore_extensions] for file in files: file_path = os.path.join(root, file) - file_ext = os.path.splitext(file)[1] - file_name = os.path.basename(file) - - if file_ext in ignore_extensions or file_name in ignore_files: - continue - file_mtime = os.path.getmtime(file_path) - if start_timestamp < file_mtime < end_timestamp: - dest_file_path = os.path.join(dest_dir, file) - copy_idx = 1 - while os.path.exists(dest_file_path): - base, extension = os.path.splitext(file) - # Handling potential name conflicts by appending a number - dest_file_path = os.path.join(dest_dir, f"{base}_{copy_idx}{extension}") - copy_idx += 1 - - # Copying the modified file to the destination directory - shutil.copy2(file_path, dest_file_path) - # Extract user id from the dest_dir and file path + # Verify if the file was modified within the given timestamp range + if start_timestamp <= file_mtime <= end_timestamp: + file_relative_path = ( + "files/user" + file_path.split("files/user", 1)[1] if "files/user" in file_path else "" + ) + file_type = get_file_type(file_path) - dest_dir_as_path = Path(dest_dir) - uid = dest_dir_as_path.name - - relative_file_path = os.path.relpath(dest_file_path, start=dest_dir) - file_type = get_file_type(dest_file_path) file_dict = { - "path": f"files/user/{uid}/{relative_file_path}", - "name": file_name, - "extension": file_ext.replace(".", ""), + "path": file_relative_path, + "name": os.path.basename(file), + # Remove the dot + "extension": os.path.splitext(file)[1].lstrip("."), "type": file_type, } modified_files.append(file_dict) - # sort by extension + + # Sort the modified files by extension modified_files.sort(key=lambda x: x["extension"]) return modified_files -def init_webserver_folders(root_file_path: str) -> Dict[str, str]: +def init_app_folders(app_file_path: str) -> Dict[str, str]: """ Initialize folders needed for a web server, such as static file directories - and user-specific data directories. + and user-specific data directories. Also load any .env file if it exists. :param root_file_path: The root directory where webserver folders will be created :return: A dictionary with the path of each created folder """ - if not os.path.exists(root_file_path): - os.makedirs(root_file_path, exist_ok=True) - files_static_root = os.path.join(root_file_path, "files/") - static_folder_root = os.path.join(root_file_path, "ui") + app_name = f".{APP_NAME}" + default_app_root = os.path.join(os.path.expanduser("~"), app_name) + if not os.path.exists(default_app_root): + os.makedirs(default_app_root, exist_ok=True) + app_root = os.environ.get("AUTOGENSTUDIO_APPDIR") or default_app_root + + if not os.path.exists(app_root): + os.makedirs(app_root, exist_ok=True) + + # load .env file if it exists + env_file = os.path.join(app_root, ".env") + if os.path.exists(env_file): + print(f"Loading environment variables from {env_file}") + load_dotenv(env_file) + + files_static_root = os.path.join(app_root, "files/") + static_folder_root = os.path.join(app_file_path, "ui") os.makedirs(files_static_root, exist_ok=True) os.makedirs(os.path.join(files_static_root, "user"), exist_ok=True) @@ -231,7 +229,9 @@ def init_webserver_folders(root_file_path: str) -> Dict[str, str]: folders = { "files_static_root": files_static_root, "static_folder_root": static_folder_root, + "app_root": app_root, } + print(f"Initialized application data folder: {app_root}") return folders @@ -268,9 +268,6 @@ def get_skills_from_prompt(skills: List[Skill], work_dir: str) -> str: os.makedirs(work_dir) # overwrite skills.py in work_dir - with open(os.path.join(work_dir, "skills.py"), "w", encoding="utf-8") as f: - f.write(prompt) - # overwrite skills.py in work_dir with open(os.path.join(work_dir, "skills.py"), "w", encoding="utf-8") as f: f.write(prompt) @@ -408,3 +405,36 @@ def test_model(model: Model): client = OpenAIWrapper(config_list=[sanitized_model]) response = client.create(messages=[{"role": "user", "content": "2+2="}], cache_seed=None) return response.choices[0].message.content + + +# summarize_chat_history (messages, model) .. returns a summary of the chat history + + +def summarize_chat_history(task: str, messages: List[Dict[str, str]], model: Model): + """ + Summarize the chat history using the model endpoint and returning the response. + """ + + sanitized_model = sanitize_model(model) + client = OpenAIWrapper(config_list=[sanitized_model]) + summarization_system_prompt = f""" + You are a helpful assistant that is able to review the chat history between a set of agents (userproxy agents, assistants etc) as they try to address a given TASK and provide a summary. Be SUCCINCT but also comprehensive enough to allow others (who cannot see the chat history) understand and recreate the solution. + + The task requested by the user is: + === + {task} + === + The summary should focus on extracting the actual solution to the task from the chat history (assuming the task was addressed) such that any other agent reading the summary will understand what the actual solution is. Use a neutral tone and DO NOT directly mention the agents. Instead only focus on the actions that were carried out (e.g. do not say 'assistant agent generated some code visualization code ..' instead say say 'visualization code was generated ..' ). + """ + summarization_prompt = [ + { + "role": "system", + "content": summarization_system_prompt, + }, + { + "role": "user", + "content": f"Summarize the following chat history. {str(messages)}", + }, + ] + response = client.create(messages=summarization_prompt, cache_seed=None) + return response.choices[0].message.content diff --git a/samples/apps/autogen-studio/autogenstudio/version.py b/samples/apps/autogen-studio/autogenstudio/version.py index 0b52beb9e0a5..18b7f42aac34 100644 --- a/samples/apps/autogen-studio/autogenstudio/version.py +++ b/samples/apps/autogen-studio/autogenstudio/version.py @@ -1,3 +1,3 @@ -VERSION = "0.0.43a" +VERSION = "0.0.54" __version__ = VERSION APP_NAME = "autogenstudio" diff --git a/samples/apps/autogen-studio/autogenstudio/web/app.py b/samples/apps/autogen-studio/autogenstudio/web/app.py index c069623af3df..48c29ac38031 100644 --- a/samples/apps/autogen-studio/autogenstudio/web/app.py +++ b/samples/apps/autogen-studio/autogenstudio/web/app.py @@ -1,26 +1,64 @@ +import asyncio +from contextlib import asynccontextmanager import json import os +import queue +import threading import traceback -from fastapi import FastAPI +from fastapi import FastAPI, WebSocket, WebSocketDisconnect from fastapi.middleware.cors import CORSMiddleware from fastapi.staticfiles import StaticFiles from fastapi import HTTPException from openai import OpenAIError -from ..version import VERSION +from ..version import VERSION, APP_NAME from ..datamodel import ( - ChatWebRequestModel, DBWebRequestModel, DeleteMessageWebRequestModel, Message, Session, ) -from ..utils import md5_hash, init_webserver_folders, DBManager, dbutils, test_model +from ..utils import md5_hash, init_app_folders, DBManager, dbutils, test_model +from ..chatmanager import AutoGenChatManager, WebSocketConnectionManager -from ..chatmanager import AutoGenChatManager +managers = {"chat": None} # manage calls to autogen +# Create thread-safe queue for messages between api thread and autogen threads +message_queue = queue.Queue() +active_connections = [] +active_connections_lock = asyncio.Lock() +websocket_manager = WebSocketConnectionManager( + active_connections=active_connections, active_connections_lock=active_connections_lock +) + + +def message_handler(): + while True: + message = message_queue.get() + print("Active Connections: ", [client_id for _, client_id in websocket_manager.active_connections]) + print("Current message connection id: ", message["connection_id"]) + for connection, socket_client_id in websocket_manager.active_connections: + if message["connection_id"] == socket_client_id: + asyncio.run(websocket_manager.send_message(message, connection)) + message_queue.task_done() + + +message_handler_thread = threading.Thread(target=message_handler, daemon=True) +message_handler_thread.start() + + +@asynccontextmanager +async def lifespan(app: FastAPI): + print("***** App started *****") + managers["chat"] = AutoGenChatManager(message_queue=message_queue) + + yield + # Close all active connections + await websocket_manager.disconnect_all() + print("***** App stopped *****") -app = FastAPI() + +app = FastAPI(lifespan=lifespan) # allow cross origin requests for testing on localhost:800* ports only @@ -38,9 +76,9 @@ ) -root_file_path = os.environ.get("AUTOGENSTUDIO_APPDIR") or os.path.dirname(os.path.abspath(__file__)) +app_file_path = os.path.dirname(os.path.abspath(__file__)) # init folders skills, workdir, static, files etc -folders = init_webserver_folders(root_file_path) +folders = init_app_folders(app_file_path) ui_folder_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), "ui") api = FastAPI(root_path="/api") @@ -51,13 +89,13 @@ api.mount("/files", StaticFiles(directory=folders["files_static_root"], html=True), name="files") -db_path = os.path.join(root_file_path, "database.sqlite") +db_path = os.path.join(folders["app_root"], "database.sqlite") dbmanager = DBManager(path=db_path) # manage database operations -chatmanager = AutoGenChatManager() # manage calls to autogen +# manage websocket connections @api.post("/messages") -async def add_message(req: ChatWebRequestModel): +async def add_message(req: DBWebRequestModel): message = Message(**req.message.dict()) user_history = dbutils.get_messages(user_id=message.user_id, session_id=req.message.session_id, dbmanager=dbmanager) @@ -67,19 +105,21 @@ async def add_message(req: ChatWebRequestModel): os.makedirs(user_dir, exist_ok=True) try: - response_message: Message = chatmanager.chat( + response_message: Message = managers["chat"].chat( message=message, history=user_history, - work_dir=user_dir, - flow_config=req.flow_config, + user_dir=user_dir, + flow_config=req.workflow, + connection_id=req.connection_id, ) - # save assistant response to db - dbutils.create_message(message=response_message, dbmanager=dbmanager) + # save agent's response to db + messages = dbutils.create_message(message=response_message, dbmanager=dbmanager) response = { "status": True, - "message": response_message.content, - "metadata": json.loads(response_message.metadata), + "message": "Message processed successfully", + "data": messages, + # "metadata": json.loads(response_message.metadata), } return response except Exception as ex_error: @@ -157,6 +197,7 @@ async def create_user_session(req: DBWebRequestModel): try: session = Session(user_id=req.session.user_id, flow_config=req.session.flow_config) user_sessions = dbutils.create_session(user_id=req.user_id, session=session, dbmanager=dbmanager) + return { "status": True, "message": "Session created successfully", @@ -170,6 +211,26 @@ async def create_user_session(req: DBWebRequestModel): } +@api.post("/sessions/rename") +async def rename_user_session(name: str, req: DBWebRequestModel): + """Rename a session for a user""" + print("Rename: " + name) + print("renaming session for user: " + req.user_id + " to: " + name) + try: + session = dbutils.rename_session(name=name, session=req.session, dbmanager=dbmanager) + return { + "status": True, + "message": "Session renamed successfully", + "data": session, + } + except Exception as ex_error: + print(traceback.format_exc()) + return { + "status": False, + "message": "Error occurred while renaming session: " + str(ex_error), + } + + @api.post("/sessions/publish") async def publish_user_session_to_gallery(req: DBWebRequestModel): """Create a new session for a user""" @@ -496,3 +557,28 @@ async def get_version(): "message": "Version retrieved successfully", "data": {"version": VERSION}, } + + +async def process_socket_message(data: dict, websocket: WebSocket, client_id: str): + print(f"Client says: {data['type']}") + if data["type"] == "user_message": + user_request_body = DBWebRequestModel(**data["data"]) + response = await add_message(user_request_body) + response_socket_message = { + "type": "agent_response", + "data": response, + "connection_id": client_id, + } + await websocket_manager.send_message(response_socket_message, websocket) + + +@api.websocket("/ws/{client_id}") +async def websocket_endpoint(websocket: WebSocket, client_id: str): + await websocket_manager.connect(websocket, client_id) + try: + while True: + data = await websocket.receive_json() + await process_socket_message(data, websocket, client_id) + except WebSocketDisconnect: + print(f"Client #{client_id} is disconnected") + await websocket_manager.disconnect(websocket) diff --git a/samples/apps/autogen-studio/autogenstudio/workflowmanager.py b/samples/apps/autogen-studio/autogenstudio/workflowmanager.py index 37a539f1375a..628c7f9f711c 100644 --- a/samples/apps/autogen-studio/autogenstudio/workflowmanager.py +++ b/samples/apps/autogen-studio/autogenstudio/workflowmanager.py @@ -1,7 +1,10 @@ import os -from typing import List, Optional +from typing import List, Optional, Union, Dict + +from requests import Session + import autogen -from .datamodel import AgentConfig, AgentFlowSpec, AgentWorkFlowConfig, Message +from .datamodel import AgentConfig, AgentFlowSpec, AgentWorkFlowConfig, Message, SocketMessage from .utils import get_skills_from_prompt, clear_folder, sanitize_model from datetime import datetime @@ -17,6 +20,8 @@ def __init__( history: Optional[List[Message]] = None, work_dir: str = None, clear_work_dir: bool = True, + send_message_function: Optional[callable] = None, + connection_id: Optional[str] = None, ) -> None: """ Initializes the AutoGenFlow with agents specified in the config and optional @@ -27,43 +32,59 @@ def __init__( history: An optional list of previous messages to populate the agents' history. """ + self.send_message_function = send_message_function + self.connection_id = connection_id self.work_dir = work_dir or "work_dir" if clear_work_dir: clear_folder(self.work_dir) - + self.config = config # given the config, return an AutoGen agent object self.sender = self.load(config.sender) # given the config, return an AutoGen agent object self.receiver = self.load(config.receiver) - - if config.receiver.type == "groupchat": - # append self.sender to the list of agents - self.receiver._groupchat.agents.append(self.sender) - print(self.receiver) self.agent_history = [] if history: self.populate_history(history) - def process_reply(self, recipient, messages, sender, config): - if "callback" in config and config["callback"] is not None: - callback = config["callback"] - callback(sender, recipient, messages[-1]) - last_message = messages[-1] - - sender = sender.name - recipient = recipient.name - if "name" in last_message: - sender = last_message["name"] - - iteration = { - "recipient": recipient, - "sender": sender, - "message": last_message, + def process_message( + self, + sender: autogen.Agent, + receiver: autogen.Agent, + message: Dict, + request_reply: bool = False, + silent: bool = False, + sender_type: str = "agent", + ) -> None: + """ + Processes the message and adds it to the agent history. + + Args: + + sender: The sender of the message. + receiver: The receiver of the message. + message: The message content. + request_reply: If set to True, the message will be added to agent history. + silent: determining verbosity. + sender_type: The type of the sender of the message. + """ + + message = message if isinstance(message, dict) else {"content": message, "role": "user"} + message_payload = { + "recipient": receiver.name, + "sender": sender.name, + "message": message, "timestamp": datetime.now().isoformat(), + "sender_type": sender_type, + "connection_id": self.connection_id, + "message_type": "agent_message", } - self.agent_history.append(iteration) - return False, None + # if the agent will respond to the message, or the message is sent by a groupchat agent. This avoids adding groupchat broadcast messages to the history (which are sent with request_reply=False), or when agent populated from history + if request_reply is not False or sender_type == "groupchat": + self.agent_history.append(message_payload) # add to history + if self.send_message_function: # send over the message queue + socket_msg = SocketMessage(type="agent_message", data=message_payload, connection_id=self.connection_id) + self.send_message_function(socket_msg.dict()) def _sanitize_history_message(self, message: str) -> str: """ @@ -95,12 +116,14 @@ def populate_history(self, history: List[Message]) -> None: msg.content, self.receiver, request_reply=False, + silent=True, ) elif msg.role == "assistant": self.receiver.send( msg.content, self.sender, request_reply=False, + silent=True, ) def sanitize_agent_spec(self, agent_spec: AgentFlowSpec) -> AgentFlowSpec: @@ -144,14 +167,17 @@ def get_default_system_message(agent_type: str) -> str: # tbd check if docker is installed code_execution_config["use_docker"] = False agent_spec.config.code_execution_config = code_execution_config - if agent_spec.skills: - # get skill prompt, also write skills to a file named skills.py - skills_prompt = "" - skills_prompt = get_skills_from_prompt(agent_spec.skills, self.work_dir) - if agent_spec.config.system_message: - agent_spec.config.system_message = agent_spec.config.system_message + "\n\n" + skills_prompt - else: - agent_spec.config.system_message = get_default_system_message(agent_spec.type) + "\n\n" + skills_prompt + + if agent_spec.skills: + # get skill prompt, also write skills to a file named skills.py + skills_prompt = "" + skills_prompt = get_skills_from_prompt(agent_spec.skills, self.work_dir) + if agent_spec.config.system_message: + agent_spec.config.system_message = agent_spec.config.system_message + "\n\n" + skills_prompt + else: + agent_spec.config.system_message = ( + get_default_system_message(agent_spec.type) + "\n\n" + skills_prompt + ) return agent_spec @@ -173,8 +199,9 @@ def load(self, agent_spec: AgentFlowSpec) -> autogen.Agent: group_chat_config = agent_spec.groupchat_config.dict() group_chat_config["agents"] = agents groupchat = autogen.GroupChat(**group_chat_config) - agent = autogen.GroupChatManager(groupchat=groupchat, **agent_spec.config.dict()) - agent.register_reply([autogen.Agent, None], reply_func=self.process_reply, config={"callback": None}) + agent = ExtendedGroupChatManager( + groupchat=groupchat, **agent_spec.config.dict(), message_processor=self.process_message + ) return agent else: @@ -193,12 +220,12 @@ def load_agent_config(self, agent_config: AgentConfig, agent_type: str) -> autog An instance of the loaded agent. """ if agent_type == "assistant": - agent = autogen.AssistantAgent(**agent_config.dict()) + agent = ExtendedConversableAgent(**agent_config.dict(), message_processor=self.process_message) elif agent_type == "userproxy": - agent = autogen.UserProxyAgent(**agent_config.dict()) + agent = ExtendedConversableAgent(**agent_config.dict(), message_processor=self.process_message) else: raise ValueError(f"Unknown agent type: {agent_type}") - agent.register_reply([autogen.Agent, None], reply_func=self.process_reply, config={"callback": None}) + return agent def run(self, message: str, clear_history: bool = False) -> None: @@ -215,4 +242,37 @@ def run(self, message: str, clear_history: bool = False) -> None: message=message, clear_history=clear_history, ) - # pass + + +class ExtendedConversableAgent(autogen.ConversableAgent): + def __init__(self, message_processor=None, *args, **kwargs): + super().__init__(*args, **kwargs) + self.message_processor = message_processor + + def receive( + self, + message: Union[Dict, str], + sender: autogen.Agent, + request_reply: Optional[bool] = None, + silent: Optional[bool] = False, + ): + if self.message_processor: + self.message_processor(sender, self, message, request_reply, silent, sender_type="agent") + super().receive(message, sender, request_reply, silent) + + +class ExtendedGroupChatManager(autogen.GroupChatManager): + def __init__(self, message_processor=None, *args, **kwargs): + super().__init__(*args, **kwargs) + self.message_processor = message_processor + + def receive( + self, + message: Union[Dict, str], + sender: autogen.Agent, + request_reply: Optional[bool] = None, + silent: Optional[bool] = False, + ): + if self.message_processor: + self.message_processor(sender, self, message, request_reply, silent, sender_type="groupchat") + super().receive(message, sender, request_reply, silent) diff --git a/samples/apps/autogen-studio/frontend/package.json b/samples/apps/autogen-studio/frontend/package.json index 80975bab0aba..da33db85014c 100644 --- a/samples/apps/autogen-studio/frontend/package.json +++ b/samples/apps/autogen-studio/frontend/package.json @@ -11,7 +11,7 @@ "develop": "gatsby clean && gatsby develop", "dev": "npm run develop", "start": "gatsby clean && gatsby develop", - "build": "gatsby clean && rm -rf ../autogenstudio/web/ui && PREFIX_PATH_VALUE='' gatsby build --prefix-paths && cp -r public/ ../autogenstudio/web/ui", + "build": "gatsby clean && rm -rf ../autogenstudio/web/ui && PREFIX_PATH_VALUE='' gatsby build --prefix-paths && rsync -a --delete public/ ../autogenstudio/web/ui/", "serve": "gatsby serve", "clean": "gatsby clean", "typecheck": "tsc --noEmit" @@ -54,6 +54,7 @@ "remark-gfm": "^3.0.1", "sass": "^1.51.0", "tailwindcss": "^3.0.24", + "uuid": "^9.0.1", "zustand": "^4.4.6" }, "devDependencies": { @@ -63,6 +64,7 @@ "@types/react-dom": "^18.2.15", "@types/react-inner-image-zoom": "^3.0.0", "@types/react-resizable": "^3.0.2", + "@types/uuid": "^9.0.8", "gh-pages": "^4.0.0", "typescript": "^4.6.4" } diff --git a/samples/apps/autogen-studio/frontend/src/components/atoms.tsx b/samples/apps/autogen-studio/frontend/src/components/atoms.tsx index 59d5c3e4b1a2..8bc70f89a90b 100644 --- a/samples/apps/autogen-studio/frontend/src/components/atoms.tsx +++ b/samples/apps/autogen-studio/frontend/src/components/atoms.tsx @@ -33,7 +33,13 @@ import remarkGfm from "remark-gfm"; import ReactMarkdown from "react-markdown"; import { atomDark } from "react-syntax-highlighter/dist/esm/styles/prism"; import { Prism as SyntaxHighlighter } from "react-syntax-highlighter"; -import { fetchJSON, getServerUrl, obscureString, truncateText } from "./utils"; +import { + checkAndSanitizeInput, + fetchJSON, + getServerUrl, + obscureString, + truncateText, +} from "./utils"; import { IAgentFlowSpec, IFlowConfig, @@ -242,7 +248,7 @@ export const LoadBox = ({ export const LoadingBar = ({ children }: IProps) => { return ( <> -
+
@@ -901,7 +907,7 @@ export const BounceLoader = ({ title?: string; }) => { return ( -
+
@@ -951,6 +957,7 @@ export const CsvLoader = ({ const [data, setData] = useState([]); const [columns, setColumns] = useState([]); const [isLoading, setIsLoading] = useState(true); + const [pageSize, setPageSize] = useState(50); useEffect(() => { const fetchData = async () => { @@ -1000,8 +1007,11 @@ export const CsvLoader = ({ dataSource={data} columns={columns} loading={isLoading} - pagination={{ pageSize: 50 }} + pagination={{ pageSize: pageSize }} scroll={{ y: 450, x: scrollX }} + onChange={(pagination) => { + setPageSize(pagination.pageSize || 50); + }} />
); @@ -1103,52 +1113,57 @@ export const AgentFlowSpecView = ({ setFlowSpec(updatedFlowSpec); }; - const llm_config: ILLMConfig = localFlowSpec.config.llm_config || { + const llm_config: ILLMConfig = localFlowSpec?.config?.llm_config || { config_list: [], temperature: 0.1, }; + const nameValidation = checkAndSanitizeInput(flowSpec?.config?.name); + return ( <>
{title}
{flowSpec.config.name}
+ title=
{flowSpec?.config?.name}
className="mb-4 bg-primary " > { - onControlChange(e.target.value, "name"); - }} - /> + <> + { + onControlChange(e.target.value, "name"); + }} + /> + {!nameValidation.status && ( +
+ {nameValidation.message} +
+ )} + } /> { - const updatedFlowSpec = { - ...localFlowSpec, - description: e.target.value, - }; - setLocalFlowSpec(updatedFlowSpec); - setFlowSpec(updatedFlowSpec); + onControlChange(e.target.value, "description"); }} /> } @@ -1158,11 +1173,11 @@ export const AgentFlowSpecView = ({ title="Max Consecutive Auto Reply" className="mt-4" description="Max consecutive auto reply messages before termination." - value={flowSpec.config.max_consecutive_auto_reply} + value={flowSpec.config?.max_consecutive_auto_reply} control={ { @@ -1223,7 +1238,6 @@ export const AgentFlowSpecView = ({ value={flowSpec.config.system_message} rows={3} onChange={(e) => { - // onDebouncedControlChange(e.target.value, "system_message"); onControlChange(e.target.value, "system_message"); }} /> @@ -1864,7 +1878,7 @@ export const AgentSelector = ({ {flowSpec.config.name}
{" "} - {flowSpec.description || flowSpec.config.name} + {flowSpec.config.description || flowSpec.config.name}
{" "} @@ -2048,3 +2062,55 @@ export const MonacoEditor = ({
); }; + +export const CardHoverBar = ({ + items, +}: { + items: { + title: string; + icon: any; + hoverText: string; + onClick: (e: any) => void; + }[]; +}) => { + const itemRows = items.map((item, i) => { + return ( +
+ + + +
+ ); + }); + return ( +
{ + e.stopPropagation(); + }} + className=" mt-2 text-right opacity-0 group-hover:opacity-100 " + > + {itemRows} +
+ ); +}; + +export const AgentRow = ({ message }: { message: any }) => { + return ( + + {message.sender} ( to{" "} + {message.recipient} ) +
+ } + className="m" + > + + + ); +}; diff --git a/samples/apps/autogen-studio/frontend/src/components/layout.tsx b/samples/apps/autogen-studio/frontend/src/components/layout.tsx index 13e83f131063..9142470534eb 100644 --- a/samples/apps/autogen-studio/frontend/src/components/layout.tsx +++ b/samples/apps/autogen-studio/frontend/src/components/layout.tsx @@ -24,7 +24,10 @@ const Layout = ({ restricted = false, }: Props) => { const layoutContent = ( -
+
{showHeader &&
}
{meta?.title + " | " + title} diff --git a/samples/apps/autogen-studio/frontend/src/components/types.ts b/samples/apps/autogen-studio/frontend/src/components/types.ts index c01f6ac79450..522682a4884e 100644 --- a/samples/apps/autogen-studio/frontend/src/components/types.ts +++ b/samples/apps/autogen-studio/frontend/src/components/types.ts @@ -41,6 +41,7 @@ export interface IAgentConfig { is_termination_msg?: boolean | string; default_auto_reply?: string | null; code_execution_config?: boolean | string | { [key: string]: any } | null; + description?: string; } export interface IAgentFlowSpec { @@ -49,7 +50,6 @@ export interface IAgentFlowSpec { timestamp?: string; id?: string; skills?: Array; - description?: string; user_id?: string; } @@ -93,6 +93,7 @@ export interface IModelConfig { user_id?: string; timestamp?: string; description?: string; + id?: string; } export interface IMetadataFile { @@ -108,6 +109,7 @@ export interface IChatSession { user_id: string; timestamp: string; flow_config: IFlowConfig; + name: string; } export interface IGalleryItem { diff --git a/samples/apps/autogen-studio/frontend/src/components/utils.ts b/samples/apps/autogen-studio/frontend/src/components/utils.ts index 83096eda8304..73b9f42207c2 100644 --- a/samples/apps/autogen-studio/frontend/src/components/utils.ts +++ b/samples/apps/autogen-studio/frontend/src/components/utils.ts @@ -243,6 +243,33 @@ export const formatDuration = (seconds: number) => { return parts.length > 0 ? parts.join(" ") : "0 sec"; }; +export const sampleAgentConfig = (user_id: string = "guestuser@gmail.com") => { + const sampleAgent: IAgentFlowSpec = { + type: "assistant", + user_id: user_id, + config: { + name: "sample_assistant", + description: "Sample assistant", + llm_config: { + config_list: [ + { + model: "gpt-4-1106-preview", + }, + ], + temperature: 0.1, + timeout: 600, + cache_seed: null, + }, + human_input_mode: "NEVER", + code_execution_config: false, + max_consecutive_auto_reply: 8, + system_message: + "You are a helpful AI assistant. Solve tasks using your coding and language skills. In the following cases, suggest python code (in a python coding block) or shell script (in a sh coding block) for the user to execute. 1. When you need to collect info, use the code to output the info you need, for example, browse or search the web, download/read a file, print the content of a webpage or a file, get the current date/time, check the operating system. After sufficient info is printed and the task is ready to be solved based on your language skill, you can solve the task by yourself. 2. When you need to perform some task with code, use the code to perform the task and output the result. Finish the task smartly. Solve the task step by step if you need to. If a plan is not provided, explain your plan first. Be clear which step uses code, and which step uses your language skill. When using code, you must indicate the script type in the code block. The user cannot provide any other feedback or perform any other action beyond executing the code you suggest. The user can't modify your code. So do not suggest incomplete code which requires users to modify. Don't use a code block if it's not intended to be executed by the user. If you want the user to save the code in a file before executing it, put # filename: inside the code block as the first line. Don't include multiple code blocks in one response. Do not ask users to copy and paste the result. Instead, use 'print' function for the output when relevant. Check the execution result returned by the user. If the result indicates there is an error, fix the error and output the code again. Suggest the full code instead of partial code or code changes. If the error can't be fixed or if the task is not solved even after the code is executed successfully, analyze the problem, revisit your assumption, collect additional info you need, and think of a different approach to try. When you find an answer, verify the answer carefully. Include verifiable evidence in your response if possible. Reply 'TERMINATE' in the end when everything is done.", + }, + }; + return sampleAgent; +}; + export const sampleWorkflowConfig = (type = "twoagents") => { const llm_model_config: IModelConfig[] = [ { @@ -279,6 +306,7 @@ export const sampleWorkflowConfig = (type = "twoagents") => { llm_config: llm_config, human_input_mode: "NEVER", max_consecutive_auto_reply: 8, + code_execution_config: false, system_message: "You are a helpful AI assistant. Solve tasks using your coding and language skills. In the following cases, suggest python code (in a python coding block) or shell script (in a sh coding block) for the user to execute. 1. When you need to collect info, use the code to output the info you need, for example, browse or search the web, download/read a file, print the content of a webpage or a file, get the current date/time, check the operating system. After sufficient info is printed and the task is ready to be solved based on your language skill, you can solve the task by yourself. 2. When you need to perform some task with code, use the code to perform the task and output the result. Finish the task smartly. Solve the task step by step if you need to. If a plan is not provided, explain your plan first. Be clear which step uses code, and which step uses your language skill. When using code, you must indicate the script type in the code block. The user cannot provide any other feedback or perform any other action beyond executing the code you suggest. The user can't modify your code. So do not suggest incomplete code which requires users to modify. Don't use a code block if it's not intended to be executed by the user. If you want the user to save the code in a file before executing it, put # filename: inside the code block as the first line. Don't include multiple code blocks in one response. Do not ask users to copy and paste the result. Instead, use 'print' function for the output when relevant. Check the execution result returned by the user. If the result indicates there is an error, fix the error and output the code again. Suggest the full code instead of partial code or code changes. If the error can't be fixed or if the task is not solved even after the code is executed successfully, analyze the problem, revisit your assumption, collect additional info you need, and think of a different approach to try. When you find an answer, verify the answer carefully. Include verifiable evidence in your response if possible. Reply 'TERMINATE' in the end when everything is done.", }; @@ -404,6 +432,10 @@ export const getSampleSkill = () => { }; export const timeAgo = (dateString: string): string => { + // if dateStr is empty, return empty string + if (!dateString) { + return ""; + } // Parse the date string into a Date object const timestamp = new Date(dateString); @@ -466,6 +498,11 @@ export const examplePrompts = [ prompt: "paint a picture of a glass of ethiopian coffee, freshly brewed in a tall glass cup, on a table right in front of a lush green forest scenery", }, + { + title: "Travel", + prompt: + "Plan a 2 day trip to hawaii. Limit to 3 activities per day, be as brief as possible!", + }, ]; export const fetchVersion = () => { @@ -490,19 +527,118 @@ export const fetchVersion = () => { */ export const sanitizeConfig = ( data: any, - keys: string[] = ["api_key"], - replacement: string = "********" + keys: string[] = ["api_key", "id"] ): any => { if (Array.isArray(data)) { - return data.map((item) => sanitizeConfig(item, keys, replacement)); + return data.map((item) => sanitizeConfig(item, keys)); } else if (typeof data === "object" && data !== null) { Object.keys(data).forEach((key) => { if (keys.includes(key)) { - data[key] = replacement; + delete data[key]; } else { - data[key] = sanitizeConfig(data[key], keys, replacement); + data[key] = sanitizeConfig(data[key], keys); } }); } return data; }; + +/** + * Checks the input text against the regex '^[a-zA-Z0-9_-]{1,64}$' and returns an object with + * status, message, and sanitizedText. Status is boolean indicating whether input text is valid, + * message provides information about the outcome, and sanitizedText contains a valid version + * of the input text or the original text if it was already valid. + * + * @param text - The input string to be checked and sanitized. + * @returns An object containing a status, a message, and sanitizedText. + */ +export const checkAndSanitizeInput = ( + text: string +): { status: boolean; message: string; sanitizedText: string } => { + // Create a regular expression pattern to match valid characters + const regexPattern: RegExp = /^[a-zA-Z0-9_-]{1,64}$/; + let status: boolean = true; + let message: string; + let sanitizedText: string; + + // Check if the input text matches the pattern + if (regexPattern.test(text)) { + // Text already adheres to the pattern + message = `The text '${text}' is valid.`; + sanitizedText = text; + } else { + // The text does not match; sanitize the input + status = false; + sanitizedText = text.replace(/[^a-zA-Z0-9_-]/g, "_").slice(0, 64); + message = `'${text}' is invalid. Consider using '${sanitizedText}' instead.`; + } + + return { status, message, sanitizedText }; +}; + +export const isValidConfig = ( + jsonObj: any, + templateObj: any, + diffThreshold: number = 4 +): { + status: boolean; + message: string; +} => { + // Check if both parameters are indeed objects and not null + if ( + typeof jsonObj !== "object" || + jsonObj === null || + Array.isArray(jsonObj) || + typeof templateObj !== "object" || + templateObj === null || + Array.isArray(templateObj) + ) { + return { + status: false, + message: + "Invalid input: One or both parameters are not objects, or are null or arrays.", + }; + } + + const jsonKeys = new Set(Object.keys(jsonObj)); + const templateKeys = new Set(Object.keys(templateObj)); + + if (jsonKeys.size !== templateKeys.size) { + if (Math.abs(jsonKeys.size - templateKeys.size) > diffThreshold) { + return { + status: false, + message: + "Configuration does not match template: Number of keys differ.", + }; + } + } + + for (const key of templateKeys) { + if (!jsonKeys.has(key)) { + return { + status: false, + message: `Configuration does not match template: Missing key '${key}' in configuration.`, + }; + } + + // If the value is an object, recursively validate + if ( + typeof templateObj[key] === "object" && + templateObj[key] !== null && + !Array.isArray(templateObj[key]) + ) { + const result = isValidConfig(jsonObj[key], templateObj[key]); + if (!result.status) { + return { + status: false, + message: `Configuration error in nested key '${key}': ${result.message}`, + }; + } + } + } + + return { + status: true, + message: "Configuration is valid.", + }; +}; diff --git a/samples/apps/autogen-studio/frontend/src/components/views/builder/agents.tsx b/samples/apps/autogen-studio/frontend/src/components/views/builder/agents.tsx index ac2a08f11a55..be8a30f72476 100644 --- a/samples/apps/autogen-studio/frontend/src/components/views/builder/agents.tsx +++ b/samples/apps/autogen-studio/frontend/src/components/views/builder/agents.tsx @@ -1,19 +1,29 @@ import { + ArrowDownTrayIcon, + ArrowUpTrayIcon, + DocumentDuplicateIcon, InformationCircleIcon, PlusIcon, TrashIcon, } from "@heroicons/react/24/outline"; -import { Modal, message } from "antd"; +import { Dropdown, MenuProps, Modal, message } from "antd"; import * as React from "react"; import { IAgentFlowSpec, IStatus } from "../../types"; import { appContext } from "../../../hooks/provider"; -import { fetchJSON, getServerUrl, timeAgo, truncateText } from "../../utils"; +import { + fetchJSON, + getServerUrl, + sampleAgentConfig, + sanitizeConfig, + timeAgo, + truncateText, +} from "../../utils"; import { AgentFlowSpecView, BounceLoader, Card, + CardHoverBar, LaunchButton, - LoadBox, LoadingOverlay, } from "../../atoms"; @@ -38,27 +48,7 @@ const AgentsView = ({}: any) => { const [showAgentModal, setShowAgentModal] = React.useState(false); - const sampleAgent: IAgentFlowSpec = { - type: "assistant", - description: "Sample assistant", - user_id: user?.email, - config: { - name: "sample_assistant", - llm_config: { - config_list: [ - { - model: "gpt-4-1106-preview", - }, - ], - temperature: 0.1, - timeout: 600, - cache_seed: null, - }, - human_input_mode: "NEVER", - max_consecutive_auto_reply: 8, - system_message: " ..", - }, - }; + const sampleAgent = sampleAgentConfig(user?.email || ""); const [newAgent, setNewAgent] = React.useState( sampleAgent ); @@ -168,6 +158,53 @@ const AgentsView = ({}: any) => { }, []); const agentRows = (agents || []).map((agent: IAgentFlowSpec, i: number) => { + const cardItems = [ + { + title: "Download", + icon: ArrowDownTrayIcon, + onClick: (e: any) => { + e.stopPropagation(); + // download workflow as workflow.name.json + const element = document.createElement("a"); + const sanitizedAgent = sanitizeConfig(agent); + const file = new Blob([JSON.stringify(sanitizedAgent)], { + type: "application/json", + }); + element.href = URL.createObjectURL(file); + element.download = `agent_${agent.config.name}.json`; + document.body.appendChild(element); // Required for this to work in FireFox + element.click(); + }, + hoverText: "Download", + }, + { + title: "Make a Copy", + icon: DocumentDuplicateIcon, + onClick: (e: any) => { + e.stopPropagation(); + let newAgent = { ...agent }; + newAgent.config.name = `${agent.config.name}_copy`; + newAgent.user_id = user?.email; + newAgent.timestamp = new Date().toISOString(); + if (newAgent.id) { + delete newAgent.id; + } + + setNewAgent(newAgent); + setShowNewAgentModal(true); + }, + hoverText: "Make a Copy", + }, + { + title: "Delete", + icon: TrashIcon, + onClick: (e: any) => { + e.stopPropagation(); + deleteAgent(agent); + }, + hoverText: "Delete", + }, + ]; return (
@@ -183,28 +220,10 @@ const AgentsView = ({}: any) => { >
{" "} - {truncateText(agent.description || "", 70)} + {truncateText(agent.config.description || "", 70)}
{timeAgo(agent.timestamp || "")}
-
{ - e.stopPropagation(); - }} - className=" mt-2 text-right opacity-0 group-hover:opacity-100 " - > - {" "} -
{ - e.stopPropagation(); - deleteAgent(agent); - }} - > - - delete -
-
+
@@ -234,7 +253,7 @@ const AgentsView = ({}: any) => { <> Agent Specification{" "} - {agent?.config.name} + {agent?.config?.name || ""} {" "} } @@ -264,6 +283,60 @@ const AgentsView = ({}: any) => { ); }; + const uploadAgent = () => { + const input = document.createElement("input"); + input.type = "file"; + input.accept = ".json"; + input.onchange = (e: any) => { + const file = e.target.files[0]; + const reader = new FileReader(); + reader.onload = (e: any) => { + const contents = e.target.result; + if (contents) { + try { + const agent = JSON.parse(contents); + // TBD validate that it is a valid agent + if (!agent.config) { + throw new Error( + "Invalid agent file. An agent must have a config" + ); + } + setNewAgent(agent); + setShowNewAgentModal(true); + } catch (err) { + message.error( + "Invalid agent file. Please upload a valid agent file." + ); + } + } + }; + reader.readAsText(file); + }; + input.click(); + }; + + const agentsMenuItems: MenuProps["items"] = [ + // { + // type: "divider", + // }, + { + key: "uploadagent", + label: ( +
+ + Upload Agent +
+ ), + }, + ]; + + const agentsMenuItemOnClick: MenuProps["onClick"] = ({ key }) => { + if (key === "uploadagent") { + uploadAgent(); + return; + } + }; + return (
{ {" "} Agents ({agentRows.length}){" "}
- { - setShowNewAgentModal(true); - }} - > - {" "} - - New Agent - +
+ { + setShowNewAgentModal(true); + }} + > + + New Agent + +
diff --git a/samples/apps/autogen-studio/frontend/src/components/views/builder/models.tsx b/samples/apps/autogen-studio/frontend/src/components/views/builder/models.tsx index d3e2f5b592b4..be2c11099e38 100644 --- a/samples/apps/autogen-studio/frontend/src/components/views/builder/models.tsx +++ b/samples/apps/autogen-studio/frontend/src/components/views/builder/models.tsx @@ -1,15 +1,24 @@ import { + ArrowDownTrayIcon, + ArrowUpTrayIcon, + DocumentDuplicateIcon, ExclamationTriangleIcon, InformationCircleIcon, PlusIcon, TrashIcon, } from "@heroicons/react/24/outline"; -import { Button, Input, Modal, message } from "antd"; +import { Button, Dropdown, Input, MenuProps, Modal, message } from "antd"; import * as React from "react"; import { IModelConfig, IStatus } from "../../types"; import { appContext } from "../../../hooks/provider"; -import { fetchJSON, getServerUrl, timeAgo, truncateText } from "../../utils"; -import { BounceLoader, Card, LaunchButton, LoadingOverlay } from "../../atoms"; +import { + fetchJSON, + getServerUrl, + sanitizeConfig, + timeAgo, + truncateText, +} from "../../utils"; +import { BounceLoader, Card, CardHoverBar, LoadingOverlay } from "../../atoms"; import TextArea from "antd/es/input/TextArea"; const ModelsView = ({}: any) => { @@ -25,10 +34,6 @@ const ModelsView = ({}: any) => { const saveModelsUrl = `${serverUrl}/models`; const deleteModelUrl = `${serverUrl}/models/delete`; const testModelUrl = `${serverUrl}/models/test`; - const [modelStatus, setModelStatus] = React.useState({ - status: true, - message: "All good", - }); const defaultModel: IModelConfig = { model: "gpt-4-1106-preview", @@ -148,6 +153,52 @@ const ModelsView = ({}: any) => { }, []); const modelRows = (models || []).map((model: IModelConfig, i: number) => { + const cardItems = [ + { + title: "Download", + icon: ArrowDownTrayIcon, + onClick: (e: any) => { + e.stopPropagation(); + // download workflow as workflow.name.json + const element = document.createElement("a"); + const sanitizedSkill = sanitizeConfig(model); + const file = new Blob([JSON.stringify(sanitizedSkill)], { + type: "application/json", + }); + element.href = URL.createObjectURL(file); + element.download = `model_${model.model}.json`; + document.body.appendChild(element); // Required for this to work in FireFox + element.click(); + }, + hoverText: "Download", + }, + { + title: "Make a Copy", + icon: DocumentDuplicateIcon, + onClick: (e: any) => { + e.stopPropagation(); + let newModel = { ...model }; + newModel.model = `${model.model} Copy`; + newModel.user_id = user?.email; + newModel.timestamp = new Date().toISOString(); + if (newModel.id) { + delete newModel.id; + } + setNewModel(newModel); + setShowNewModelModal(true); + }, + hoverText: "Make a Copy", + }, + { + title: "Delete", + icon: TrashIcon, + onClick: (e: any) => { + e.stopPropagation(); + deleteModel(model); + }, + hoverText: "Delete", + }, + ]; return (
@@ -166,25 +217,7 @@ const ModelsView = ({}: any) => { {truncateText(model.description || model.model || "", 70)}
{timeAgo(model.timestamp || "")}
-
{ - e.stopPropagation(); - }} - className=" mt-2 text-right opacity-0 group-hover:opacity-100 " - > - {" "} -
{ - e.stopPropagation(); - deleteModel(model); - }} - > - - delete -
-
+
@@ -386,6 +419,54 @@ const ModelsView = ({}: any) => { ); }; + const uploadModel = () => { + const input = document.createElement("input"); + input.type = "file"; + input.accept = ".json"; + input.onchange = (e: any) => { + const file = e.target.files[0]; + const reader = new FileReader(); + reader.onload = (e: any) => { + const contents = e.target.result; + if (contents) { + try { + const model = JSON.parse(contents); + if (model) { + setNewModel(model); + setShowNewModelModal(true); + } + } catch (e) { + message.error("Invalid model file"); + } + } + }; + reader.readAsText(file); + }; + input.click(); + }; + + const modelsMenuItems: MenuProps["items"] = [ + // { + // type: "divider", + // }, + { + key: "uploadmodel", + label: ( +
+ + Upload Model +
+ ), + }, + ]; + + const modelsMenuItemOnClick: MenuProps["onClick"] = ({ key }) => { + if (key === "uploadmodel") { + uploadModel(); + return; + } + }; + return (
{ /> { {" "} Models ({modelRows.length}){" "}
- { - setShowNewModelModal(true); - }} - > - {" "} - - New Model - +
+ { + setShowNewModelModal(true); + }} + > + + New Model + +
diff --git a/samples/apps/autogen-studio/frontend/src/components/views/builder/skills.tsx b/samples/apps/autogen-studio/frontend/src/components/views/builder/skills.tsx index 7574fa72a623..96c67948cf7b 100644 --- a/samples/apps/autogen-studio/frontend/src/components/views/builder/skills.tsx +++ b/samples/apps/autogen-studio/frontend/src/components/views/builder/skills.tsx @@ -1,9 +1,12 @@ import { + ArrowDownTrayIcon, + ArrowUpTrayIcon, + DocumentDuplicateIcon, InformationCircleIcon, PlusIcon, TrashIcon, } from "@heroicons/react/24/outline"; -import { Button, Input, Modal, message } from "antd"; +import { Button, Input, Modal, message, MenuProps, Dropdown } from "antd"; import * as React from "react"; import { ISkill, IStatus } from "../../types"; import { appContext } from "../../../hooks/provider"; @@ -11,18 +14,17 @@ import { fetchJSON, getSampleSkill, getServerUrl, + sanitizeConfig, timeAgo, truncateText, } from "../../utils"; import { BounceLoader, Card, - CodeBlock, - LaunchButton, + CardHoverBar, LoadingOverlay, MonacoEditor, } from "../../atoms"; -import TextArea from "antd/es/input/TextArea"; const SkillsView = ({}: any) => { const [loading, setLoading] = React.useState(false); @@ -149,6 +151,52 @@ const SkillsView = ({}: any) => { }, []); const skillRows = (skills || []).map((skill: ISkill, i: number) => { + const cardItems = [ + { + title: "Download", + icon: ArrowDownTrayIcon, + onClick: (e: any) => { + e.stopPropagation(); + // download workflow as workflow.name.json + const element = document.createElement("a"); + const sanitizedSkill = sanitizeConfig(skill); + const file = new Blob([JSON.stringify(sanitizedSkill)], { + type: "application/json", + }); + element.href = URL.createObjectURL(file); + element.download = `skill_${skill.title}.json`; + document.body.appendChild(element); // Required for this to work in FireFox + element.click(); + }, + hoverText: "Download", + }, + { + title: "Make a Copy", + icon: DocumentDuplicateIcon, + onClick: (e: any) => { + e.stopPropagation(); + let newSkill = { ...skill }; + newSkill.title = `${skill.title} Copy`; + newSkill.user_id = user?.email; + newSkill.timestamp = new Date().toISOString(); + if (newSkill.id) { + delete newSkill.id; + } + setNewSkill(newSkill); + setShowNewSkillModal(true); + }, + hoverText: "Make a Copy", + }, + { + title: "Delete", + icon: TrashIcon, + onClick: (e: any) => { + e.stopPropagation(); + deleteSkill(skill); + }, + hoverText: "Delete", + }, + ]; return (
@@ -166,25 +214,7 @@ const SkillsView = ({}: any) => { {truncateText(skill.content, 70)}
{timeAgo(skill.timestamp || "")}
-
{ - e.stopPropagation(); - }} - className=" mt-2 text-right opacity-0 group-hover:opacity-100 " - > - {" "} -
{ - e.stopPropagation(); - deleteSkill(skill); - }} - > - - delete -
-
+
@@ -288,45 +318,56 @@ const SkillsView = ({}: any) => { ); }; - return ( -
- {/* - Create New Skill -
+ const uploadSkill = () => { + const fileInput = document.createElement("input"); + fileInput.type = "file"; + fileInput.accept = ".json"; + fileInput.onchange = (e: any) => { + const file = e.target.files[0]; + const reader = new FileReader(); + reader.onload = (e) => { + const content = e.target?.result; + if (content) { + try { + const skill = JSON.parse(content as string); + if (skill) { + setNewSkill(skill); + setShowNewSkillModal(true); + } + } catch (e) { + message.error("Invalid skill file"); + } } - width={800} - open={showNewSkillModal} - onOk={() => { - saveSkill(); - setShowNewSkillModal(false); - }} - onCancel={() => { - setShowNewSkillModal(false); - }} - > - <> -
- Provide code for a new skill or create from current conversation. -
- { - setNewSkillTitle(e.target.value); - }} - /> -