mirror of
https://github.com/langchain-ai/langgraph.git
synced 2026-07-18 20:44:33 -04:00
1857 lines
600 KiB
Plaintext
1857 lines
600 KiB
Plaintext
{
|
||
"cells": [
|
||
{
|
||
"attachments": {
|
||
"15ffc4e1-0f2b-49fb-99c9-2bbda7643172.png": {
|
||
"image/png": "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EEAAAQRCIEAgLgSoFIkAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAgTjOAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQRCIEAgLgSoFIkAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAgTjOAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQRCIEAgLgSoFIkAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAgTjOAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQRCIEAgLgSoFIkAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAgTjOAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQRCIEAgLgSoFIkAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAgTjOAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQRCIEAgLgSoFIkAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAgTjOAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQRCIEAgLgSoFIkAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAgTjOAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQRCIEAgLgSoFIkAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAgTjOAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQRCIEAgLgSoFIkAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAgTjOAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQRCIEAgLgSoFIkAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAgTjOAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQRCIEAgLgSoFIkAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAgTjOAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQRCIEAgLgSoFIkAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAgTjOAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEE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cQWvQIqPAAIIIIAAAgjkXWD27Nl5LyLlQyAhUNR7tjXK3RrnTFTWHLDSmPF//vMfE0XRHCBR2yX+/PPP5t///nfJg3/66Sej70kIIIAAAggggAACCDSnwLzNmTl5I4AAAggggAACc5LADz/8YPr162dWW201c9hhh9V96Wo43Guvvcxxxx1nevToUXd+PoPp06eb1157za9m9rnhhhuaRRZZxOWnc9x///1m5MiR5tFHHzUffPCBWWaZZTI7FxkhkLXAZ599Zu677z5z1113mXHjxpm3337brLjiilmfJs7v8ccfNxdccIG58cYbzdJLLx1vb+qCnuUHHnjAlf2ZZ54xs2bNMgsttFBTs2nS/kV5vt9//30zduxYM3HiRKMyf/XVV86mY8eOZqmlljLdu3c3W265penUqZO7fr2rTj/9dHPnnXc2a91Xg13t/di3b18zePBg0759e/e5xx57VJN9m99HwTW5qP6feuop891335nOnTubrbbaymyzzTZm8cUXd8+6nnftd8ABB7R5Ey4QAQQQQAABBBBAoPUECMS1nj1nRgABBBBAAIE2JPDqq6+avffe26jhd8SIEZlcmXo4fPvtt6Znz57mz3/+szn//PPNfPPNV3feY8aMMYccckjd+aQzeOihh8yUKVPMrbfeal566SV6aKSBWM+dgJ6xU0891Tz88MNm0qRJLXrPXnjhhebBBx80V155pRkwYECTbCZMmOCOUzBPAaaWSgMHDizE8/3mm2+6HzCoXqtJq666qll99dXNk08+ab755hszc+bMVgnENfV+fOedd9zfBR33/fffmxNPPNEQiDPu76b+Hutv3brrrmuOOOIIF1x97733jP4NGTKkmtuCfRBAAAEEEEAAAQQQyEyAQFxmlGSEAAIIIIAAAnOqgH5Rr1/T/+IXvzCPPPKI2XzzzTOhWHDBBY2CW2pEVAP4W2+9ZUaNGlV3MK7UEF3qHdKhQwez6KKLmnbt2pnJkyebL7/8Mr4O9WZTY7WGQFMj9ddff90gAKB855prLte7R0ENDflFQiDvAp9//rmZf/753b2rgEZLJPW2UxBO6dprrzVnnnmmWWCBBao+9RdffOF6dqknXUsG4vL+fCsY1b9/f3PppZeaH3/80XnOM888ZrvttjO77767WWWVVeL328svv+x67arnmd6t+ueT8mmt1JT7ccaM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OeUEpYIUdijKwl1+W7mOwsEXoMDcGwWoJIqIAAIIIIAAAggggAACbVJg7jZ5VVwUAggggAACCCDQzALqQaBgmHqk2SG2zPDhw5v1jHaOG3PCCSe4c/zpT38iCNes2mSOAAIIIIAAAggggAACCCCAAAIIZCNAIC4bR3JBAAEEEEAAgTlQwM535YaJtPN5GTuPixk7dmyzKGhov169ehk7/44LwF1xxRXNch4yRQABBBBAAAEEEEAAAQQQQAABBBDIVoBAXLae5IYAAggggAACc5iA5oZ75JFH3JxtGqLytttuy1RA82htv/32ZsKECeaII44wN954YzyfT6YnmsMz09w/YdLcTUVMbeU6imif9zJzb+S9higfAggggAACCCCAAAIItFUBAnFttWa5LgQQQAABBBBoMYG11lrLTJw40XTr1s307t3bXH311ZmcW8NRbrLJJmby5Mlm6NCh5pprrjHzzDNPJnmTSVJg+vTpiQ3Tpk1LrBdlpa1cR1G8i1RO7o0i1RZlRQABBBBAAAEEEEAAgbYkMM9ZNrWlC+JaEEAAAQQQQACB1hBo3769OfDAA13POAXmOnfuXHcxFHT76KOPzLBhw8wWW2xRd35k0FDghx9+MOPGjTP9+vUz3333XbzD1KlTTZcuXcyiiy5q5ptvvnh7XhfaynXk1bfI5eLeKHLtUXYEEEAAAQQQQAABBBBoCwJzRTa1hQvhGhBAAAEEEEAAAQQQaIrAjz/+6AJt33//fcXDBgwYYPr27Vtxn9b8sq1cR2sattVzc2+01ZrluhBAAAEEEEAAAQQQQKBIAvMWqbCUFQEEEEAAAQQQQACBrATatWtn3n333URPuFJ5d+jQodTm3GxrK9eRG9A2VBDujTZUmVwKAggggAACCCCAAAIIFFaAHnGFrToKjgACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgggkGeBufNcOMqGAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQFEFCMQVteYoNwIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQK4FCMTlunooHAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQFEFCMQVteYoNwIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQK4FCMTlunooHAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQFEFCMQVteYoNwIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQK4FCMTlunooHAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQFEFCMQVteYoNwIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQK4FCMTlunooHAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQFEFCMQVteYoNwIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQK4FCMTlunooHAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQFEFCMQVteYoNwIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQK4FCMTlunooHAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQFEFCMQVteYoNwIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQK4FCMTlunooHAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQFEFCMQVteYoNwIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQK4FCMTlunooHAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQFEFCMQVteYoNwIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQK4FCMTlunooHAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQFEFCMQVteYoNwIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQK4FCMTlunooHAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQFEFCMQVteYoNwIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQK4FCMTlunooHAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQFEFCMQVteYoNwIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQK4FCMTlunooHAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQFEFCMQVteYoNwIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQK4FCMTlunooHAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQFEFCMQVteYoNwIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQK4FCMTlunooHAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQFEFCMQVteYoNwIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQK4FCMTlunooHAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQFEFCMQVteYoNwIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQK4FCMTlunooHAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQFEFCMQVteYoNwIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQK4FCMTlunooHAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQFEFCMQVteYoNwIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQK4FCMTlunooHAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQFEFCMQVteYoNwIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQK4FCMTlunooHAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQFEFCMQVteYoNwIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQK4FCMTlunooHAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQFEFCMQVteYoNwIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQK4FCMTlunooHAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQFEFCMQVteYoNwIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQK4FCMTlunooHAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQFEFCMQVteYoNwIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQK4FCMTlunooHAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQFEFCMQVteYoNwIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQK4FCMTlunooHAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQFEFCMQVteYoNwIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQK4FCMTlunooHAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQFEFCMQVteYoNwIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQK4FCMTlunooHAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQFEF/g8eUWaCBBv09QAAAABJRU5ErkJggg=="
|
||
},
|
||
"fb3f0be0-4884-4ad2-b9b3-cf92cfc51273.png": {
|
||
"image/png": "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eGlmOlBpeGVsWERpbWVuc2lvbj4xMDM2PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6VXNlckNvbW1lbnQ+U2NyZWVuc2hvdDwvZXhpZjpVc2VyQ29tbWVudD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CmRPDiAAAEAASURBVHgB7J0JnI3VG8cfZgaDsQxjH8a+889OCNGisrUQ2UoqlRIilb0oCaWEIpStUiokZUt2su/rWAYzjJmxzZjhf37nzrnu3DvLnZk7++/5fO7c9573vGf53jvvvec5z5LtrhKhkAAJkAAJkAAJkAAJkAAJkAAJkAAJkIANgew2xzwkARIgARIgARIgARIgARIgARIgARIgAU2ACgN+EEiABEiABEiABEiABEiABEiABEiABBwIUGHggIQFJEACJEACJEACJEACJEACJEACJEACVBjwM0ACJEACJEACJEACJEACJEACJEACJOBAgAoDByQsIAESIAESIAESIAESIAESIAESIAESoMKAnwESIAESIAESIAESIAESIAESIAESIAEHAlQYOCBhAQmQAAmQAAmQAAmQAAmQAAmQAAmQABUG/AyQAAmQAAmQAAmQAAmQAAmQAAmQAAk4EKDCwAEJC0iABEiABEiABEiABEiABEiABEiABKgw4GeABEiABEiABEiABEiABEiABEiABEjAgQAVBg5IWEACJEACJEACJEACJEACJEACJEACJECFAT8DJEACJEACJEACJEACJEACJEACJEACDgSoMHBAwgISIAESIAESIAESIAESIAESIAESIAEqDPgZIAESIAESIAESIAESIAESIAESIAEScCBAhYEDEhaQAAmQAAmQAAmQAAmQAAmQAAmQAAlQYcDPAAmQAAmQAAmQAAmQAAmQAAmQAAmQgAMBKgwckLCABEiABEiABEiABEiABEiABEiABEiACgN+BkiABEiABEiABEiABEiABEiABEiABBwIUGHggIQFJEACJEACJEACJEACJEACJEACJEACVBjwM0ACJEACJEACJEACJEACJEACJEACJOBAgAoDByQsIAESIAESIAESIAESIAESIAESIAESoMKAnwESIAESIAESIAESIAESIAESIAESIAEHAlQYOCBhAQmQAAmQAAmQAAmQAAmQAAmQAAmQABUG/AyQAAmQAAmQAAmQAAmQAAmQAAmQAAk4EKDCwAEJC0iABEiABEiABEiABEiABEiABEiABKgw4GeABEiABEiABEiABEiABEiABEiABEjAgQAVBg5IWEACJEACJEACJEACJEACJEACJEACJECFAT8DJEACJEACJEACJEACJEACJEACJEACDgSoMHBAwgISIAESIAESIAESIAESIAESIAESIAEqDPgZIAESIAESIAESIAESIAESIAESIAEScCBAhYEDEhaQAAmQAAmQAAmQAAmQAAmQAAmQAAlQYcDPAAmQAAmQAAmQAAmQAAmQAAmQAAmQgAMBKgwckLCABEiABEiABEiABEiABEiABEiABEiACgN+BkiABEiABEiABEiABEiABEiABEiABBwIUGHggIQFJEACJEACJEACJEACJEACJEACJEACVBjwM0ACJEACJEACJEACJEACJEACJEACJOBAgAoDByQsIAESIAESIAESIAESIAESIAESIAESoMKAnwESIAESIAESIAESIAESIAESIAESIAEHAlQYOCBhAQmQAAmQAAmQAAmQAAmQAAmQAAmQABUG/AyQAAmQAAmQAAmQAAmQAAmQAAmQAAk4EKDCwAEJC0iABEiABEiABEiABEiABEiABEiABKgw4GeABEiABEiABEiABEiABEiABEiABEjAgQAVBg5IWEACJEACJEACJEACJEACJEACJEACJECFAT8DJEACJEACJEACJEACJEACJEACJEACDgSoMHBAwgISIAESIAESIAESIAESIAESIAESIAEqDPgZIAESIAESIAESIAESIAESIAESIAEScCBAhYEDEhaQAAmQAAmQAAmQAAmQAAmQAAmQAAlQYcDPAAmQAAmQAAmQAAmQAAmQAAmQAAmQgAMBKgwckLCABEiABEiABEiABEiABEiABEiABEiACgN+BkiABEiABEiABEiABEiABEiABEiABBwIUGHggIQFJEACJEACJEACJEACJEACJEACJEACVBjwM0ACJEACJEACJEACJEACJEACJEACJOBAgAoDByQsIAESIAESIAESIAESIAESIAESIAESoMKAnwESIAESIAESIAESIAESIAESIAESIAEHAlQYOCBhAQmQAAmQAAmQAAmQAAmQAAmQAAmQABUG/AyQAAmQAAmQAAmQAAmQAAmQAAmQAAk4EKDCwAEJC0iABEiABEiABEiABEiABEiABEiABKgw4GeABEiABEiABEiABEiABEiABEiABEjAgQAVBg5IWEACJEACJEACJEACJEACJEACJEACJECFAT8DJEACJEACJEACJEACJEACJEACJEACDgSoMHBAwgISIAESIAESIAESIAESIAESIAESIAEqDPgZIAESIAESIAESIAESIAESIAESIAEScCBAhYEDEhaQAAmQAAmQAAmQAAmQAAmQAAmQAAlQYcDPAAmQAAmQAAmQAAmQAAmQAAmQAAmQgAMBKgwckLCABEiABEiABEiABEiABEiABEiABEiACgN+BkiABEiABEiABEiABEiABEiABEiABBwIUGHggIQFJEACJEACJEACJEACJEACJEACJEACVBjwM0ACJEACJEACJEACJEACJEACJEACJOBAgAoDByQsIAESIAESIAESIAESIAESIAESIAESoMKAnwESIAESIAESIAESIAESIAESIAESIAEHAlQYOCBhAQmQAAmQAAmQAAmQAAmQAAmQAAmQABUG/AyQAAmQAAmQAAmQAAmQAAmQAAmQAAk4EKDCwAEJC0iABEiABEiABEiABEiABEiABEiABKgw4GeABEiABEiABEiABEiABEiABEiABEjAgQAVBg5IWEACJEACJEACJEACJEACJEACJEACJECFAT8DJEACJEACJEACJEACJEACJEACJEACDgSoMHBAwgISIAESIAESIAESIAESIAESIAESIAEqDPgZIAESIAESIAESIAESIAESIAESIAEScCBAhYEDEhaQAAmQAAmQAAmQAAmQAAmQAAmQAAlQYcDPAAmQAAmQAAmQAAmQAAmQAAmQAAmQgAMBKgwckLCABEiABEiABEiABEiABEiABEiABEiACgN+BkiABEiABEiABEiABEiABEiABFKNwMGDB+Xzzz+X0NDQVOuTHSWNABUGSePGq0iABEiABEiABEggSQQiIu/IkYBrEnozMknXx3XRhz8dlt6f75DTgTfiqpKs8jt3RW5F3InzcVvNK7PKHv8QeWzUvzJm8aF0O8WQG5H6c2X/PqzcdVF/LpZuC0jVsS/ZfF73+/eeS6naLzvLGAR69+4tn3zyiWzYsCFjDDgLj9I9C8+dUycBEiABEiABEiCBVCOw8XCQjFl4WK5cvWXt0zOnu4x8rpq0qOFjLUvqwc6jwXLm4nUJuXk7qU3Ee93mI0Ey4KvdcdbxLZpHfhzaKM7z6e3EwNl75cq1CPmsT23x8oz/J/Hv2y9IkHrfft90ToY+WVk83LKli+ncVUqc2atPy5w/TylFzj0FVHGf3PJ539riWzi3+AfelAMnrkq1Ul4i9Yun2riPK6UY+j1epZA8mGq9sqOMQGDXrl0SEGBRYOXNmzcjDDlLjzH+u2OWRsPJkwAJkAAJkAAJkIBrCMxb5y9TfzmqGytS0FOqlM4nR8+HSYCyBhg2a6/88UFzyZfAotU1I0l+Kx5u2aWUUg7YSyXfjPXDf8fhK3IzPFJuR6lVdwLSvbmvnL10QxqqxW96URZgyK/N+E+2H7qiR1/RN58U9/aUnceC9edq8Ox9snBwgwRmxtNZjcD+/fulevXqaTrtH374wdp//vz5rcc8SJ8EqDBIn+8LR0UCJEACJEACJJBJCARfvy3Tlh7Ts3np8Qry/INlrDOb/ucJaVjR20FZcCM8Ss5evimlCnlK7pxu1vq2B9hdPq0WsXlzu0lhr5y2pxyO4QZxSikniubPJflzJ+/nX9PaRWR897gXHFiA31WDy549m7irh5FI5dNwRz3sy3He2fFhzgFqpz9K9eFb2NM0rZ/hMhEZdcehfbQNyeFu8cQ1r9EWJPx2lOr/HmNTD+dM3aIFcslkZYlwbzY46yhXrt2WK2ER4lc0d4y5o6aZv5tigkdA8C3BEEoUzOXYkBMlsFiBssAtWzaZ9Mr/9OcIl8Ft5ONfjshrbcvH2ooz/cJd5oLiXLpQbsmVI24PZrzXZ9TnKn8edymUwGfQDMZ8Pmw5m3N8TlkCK1askFdffVWKFCkizZo1k+eee05q166dsp3atX7hwgX57rvvrKVeXsryhZKuCSTvGyNdT42DIwESIAESIAESIIG0J7BowxmJUqvT8iW9YigLMLKXHioXY4BQLgyctUf2K1NuI9XLFZCJvWtJwbwepkhW770k76kdZLQLaVC1sPWc7QEWfu/M3Wvdhca5EkXyqMVvLSmjzNZTQmauOiVzVp4Qb7XI/vW9JnpHHovEdmM3aneMF9RCtm8bP921s+ODX/7k347Jj+vPWIcMS4dWdYvKyC7VBHqJNYrJMOVmUK+Kt3zx0n3Wei3eXqs5rfuopYQpd43HR26wnsNBh9H/xni9bHRTrYCJUhqIZoPXxDiHOa0YcX+MMrw4dDZMBnyzJ4a7SYdmpWRwh0pWxcHsv0/L18uPC+a/5J+zEhwWrtuBxcmsN+qKT/74lT72nU5fcUoXdXmwtFVZgAIs8Ic/U0Wfs/0TpqwpHhm+Id5+jwVcl4Hf7JYLSlllpElNHxnbrbrksVFcBYaEy/AFB2SnstIwAvealx4vL882LWWKYn1uPWy9dp+YM7CBVIGbRAYR7IofOnRIBg0aJJ6enrJ161aBaX3fvn0zyAxEHn30UVm1apWMGzdO/vzzT1m7dq2ey/PPPy/t27eXggULpvhchg8fHqOPPHkcrZViVIjlxfXr12X37t2ybds2gQLi2WeflVq1asVSM/6iiIgIuXz5shQv7ryrTmRkpJw+fVopLaPE19dX84u/l4x/Nm6VYcafG2dAAiRAAiRAAiRAAmlO4HiAJQhhxyYlExxL/xm7rMoCxASAQHnQf+Yu67Xn1c70O8qNAcqCakqZUKVMftl6MEjOK2sDe3nz691WZQHqYZF9/tJ1efnL/wQ78ikhLz9cVkoXy6sXzxOWHtFd4BmxG8qW8JI+rf2s3To7vmHfHbAqC/LlyaHbua2sCVZuDZDxPx+2toeD+OaVK4ebNK9dVD/MRVC2mDI853C3WBtkUzv3WCzjUat83AspWIP0mbxdzw+7/VAAQH5RSoEZSnFiL3NXntSLdiiQUP9S8E35afM5+2oJvj4bZFnUd2qU8OcKja3cEiDXbtyWhtV89OfAvl/Mo9fErVpZgM9J1bIWU/GNewNl3I/3GEP5033iNquyAAqoYsoSBu4dk1XgzbX7AuMc+6mLN7SyAPOupOafkQSL66+//lqwSw85fPiwLFmyJCNNQY+1fPnyeh7bt2+X/v37S758+WTmzJnStGlT6dOnj+zcuTPF5rR8+XJZuXKltmpo0qSJ7gf/ZxAsxGGZZI6hoJkzZ44uRxnO/fTTT1o5UK1aNf386aefyvz582XWrFn6OvMHc4NCJz4JDg6Wdu3aSevWra3VkLkBFhgtW7aUN998U9avX289h4PVq1cL+LVq1UratGkjVapUkQkTJggUD5lZaGGQmd9dzo0ESIAESIAESCDNCfirBTrE3oTefmDYpT7ib0kxNndwQ6lcIq8cPn9NekzYossPqvNV1Y7snDWn9aW1KxSUGa/W0cfblN/6a1/E/KF/RF0LZQMWZ8vGNJOCeTy0v34HtdOPAH5bj16RRpW87YeR4Os1Oy9I090xI99P6fc/qVvOsqjGbv/kF2vJ02M3yVK1aPZW/eIZi1AE4sN5iLPjwyJz/e6L+ppRParLI/cV08c7TgTL1GUnpM+Dfvq1M38Q3HBCrxq6aouhl/Uid1TXauJtY71h2sE4Jz1v2bXEGDqP32ROxXheuOGs4npHoMhY/E4jzXnOWn/5culR+W7VaXnlkfISvSbS18Et4+9xLSRvLjfZcPCyDFRKopU7L8nLD8e0NonRid0LuDdcu25ZpBR30qUBn4M14x8QD+WasfnIFXlj2n8x+l280TIPKHXmvVVfW4ZcUpYETyiLjFXbA2REl6q67EcV+BHWEWhv0bBGOrAihofgiyfVZ/1+FechLpmx6qQ+VaN8AevnIK666bX822+/lU6dOjkMz9/fXy+Gb9++rRecVatWdaiTngo8PDyke/fu+vHvv//qxTBcBXaoxbZ3oUJSt25dbXVQqVIlPWwfn+QFZsWu/ODBg3VbWOh/8MEH+tjd3bIcxQK8dOnSWknwzjvvyOLFi/V5LOyxeIdy5q233tJl+PPQQw9pzoULF5aaNWtay6HY6dmzp34NBUDu3I6WVFA+oC2cf/rpp3VdKE3Gjh1rbefEiRPy888/y/fff6+VKWfPnhVkdjBSsWJFOXr0qEydOlX+/vtvmT17dqIsFUw7GeGZCoOM8C5xjCRAAiRAAiRAAhmWgNlBux0Z/5b+IRUEEQKzdygLIHjGa+zOH1bnoTA4cd6igGhW454bQl21A44FORauRg6cDdWH5X295KKySsADUk1ZGqxX7Z1QGRWSojDAQjFnrpg/Ie/e61b3UVIF3xvcuYqMX3hQZv9hWSSO7lk9htm9s+PbfzZEtwmTd6MsQAEUFLNfr6vPpeUfKD4gjasX0soCHLdT2QigMIAVSGBouBSxcTeoXamgVhagXsNohc3FRKbCjNa5oAkdFwIxERKS/6l+oSyA4PMCse330FnLPOpWKCDIcGDEfP7OKYsGxGbYd8ryfjRUnz9kYTDSu1UZcxjjOUgpF+BCs2p3oKzecUGfG9C+Yow6GeVFx44d9SISgQPNbjjGHhQUpGMCIOJ/zpw55aOPPpJly5ZJjRoW5VRi5jds2DAJC1MBUVUWAZjKm93rO3fuyMmTJ6VkyZLqPb+jTeLxfOnSJSlQoIB+DTN5KCxQjjZy5cqlj1GG8eJx7do1yZEjh7UNlIWHhwsUCNmzZ5ebt27JmTNnBAvmRYsW6aH/9ttvkhyFwc2bN+Wll17SfUNZUKFCBd0XGjcKA4wdlgFYuBtlAc5DUQCFAcZnBHEXUBZb8MYrV66YappdbAoDWC7AWgBKndGjR2vLBaMsGDNmjLY6+Oabb7Qlxq+//qoVBgsWLNDt1qtXT3PBuG/cuCFz587Vr/ft20eFgZU8D0iABEiABEiABEiABJwm4KtiBZxUi33/ILgMxL37GhRq2TEuV+zeIgydlC9uMe8PDLGcxwIUUilaqYBjrBeLqSCASKtoxLQHq4WeytTcXuDPnxRpfl/ReIMemjY7NiwhXytlAawZkOavVc0i5pR+dnZ8AcGW+ZYrmT6zMFxS84NUtjGxhzWHUeBcslMYlLPJMOHEOl+3bf8HCoK8yqIBVgZnr9yUssotICEpm0C/Zh6IE2EbK8K0Gxpu+bwgaCKkusr04YzAugQPI0+pjBNQfGVEKaR23uEvj8Wj2XnHPIzp+j///KN92h9++GFtbZAUhUGZMmW0siEkJMS6yIcSws3NTSsFsKjH4hkLVhxjsQ9ferxGHZRBIYAd8bJly+pyKAWgPMD5PXv2SP369bXCAItptLVjxw5p1KiRfkug4MQuPR5Y6OdXLgvnzp1LUowA8x6///771t38J598UgIDA3WbOA+lRIcOHbQyAcoMs3DHzv6kSZO0EgEs4D4AxQcsExC/oG3bttrS44033hA/Pz/TlVae4AXYQ5Eyfvx42bJli24L9aCUGDFihEC5A+UE2jRxFXAN5o/6UChAihYtqp/RJ2To0KFWJQf4vfzyy/qhT2bSPzHVw5l0kpwWCZAACZAACZAACaQVgbJFPQWesIvVQqybWizFJSbo3fFz9xb9qHtMuSJAfPLn0M8FvXLotHmnkOZPZViIS0oVskTfx8786x0qOFS7z6+AQ5krC5ar3WQoCyBIH/m7Mmt/vF5xaxfOjq+kt2Ueh06GaJeKhNIamkCQ6Aim+7avrZ3bHISqQJOxuSTYVIn3sKhyCdivahyIdidBZWRLMNYeRfMlLphhvJ3ZnCyh3t8jSmGwQC3Ghz1Z2eZM0g5L+XhqFxbEumjX6N77ZFrz87EoJUopxRRcXdap2Aa28ShMPfvnwspCppKycgm4fEsrzlbvCRRYGNhm0LC/Jj2/hsIAi1cEPzSCxTV2nr29Lf+P8M9HcMGBAweaKk4/Yycej9SUbt26ybp167R5/YEDB3TXxYoVk8mTJ8cw90/KmODmYNIobtiwQerUqaMDDZq2oCCAkgTBB42gX8RUgJUDFvhwHYBCA8qGxx9/XCsZUAfWB3jARQTxGKAgMdK4cWMdFHHatGm6CPVwrXFXmD59ula0wJIAigqMAVYC7733nmlClxk3BARXhCTH0sLacAY7sNglZbBBc7gkQAIkQAIkQAIkkFEIdFZR42HGj8jzHy45rBextmNHEDmI2XWFf/iuaLNvPJto+tVKWXZ0zQ71WrVgQyR/CLIr2Ac9rFHaErQOwegQ4f5JFRzP9lGuWMK70rrxJPxBYMax31sWHi8+Zknv9+H8g3JO7YYbcXZ8ph4W/t/8dVKnDTRt2D5XUr73kAPHQ6yMoaSISwoXsCzkl++Mu05c19qWm0j/m1WKQ2QPgPyk/PwhsDIonEIKgxfa+Ok+lqoYCrHN03yudCUn/vwvWoF0VCk+GlTwjvFZwecmn4r/AKnlZ/lcwXIFqR3V2xKvtFfBPhELYrqKt4H/A7jXzFIZIzKqwBweO9HYATcCNwHsmhu5ePGi9sc3r9PrM0zzEVcAi/g31U79qVOntG8/XC7gl28bGyApc4Ai5d1337VeCjeL/Pnzy1NPPWU134fvv22GAwQdhOsHxPSPbBQQuGfAeqJHjx7aCgABB+G2AWVAixYtZNOmTVZXB7wHtooXuDl06dJFKwegpIBCArJ582b9DMUGgjLCYgHto228Nkog4+oAq4usJrQwyGrvOOdLAiRAAiRAAiSQqgSQn/75tuVk5rLj2jT7z60X9I6rqG2bI6fDpITasZ0/qIFUUq4HSKGI3duXpmwX7MyaHXpkQzAuCL1alZbf1YIUKe0eUmnyqvjmlX0nQh120kupyPXtlbICC8oRc/fLuIWHVbT/AiqLwB2JuH1XZr5WJ0kcNqiAhx3OWOIj2DZQUZmZT+hRQysx3pixW4+nsxordqERPA/jQPmitxsKTOqdHR+CRT7csLiO8o94CHNXnhLEAYAC4ZJyV5j2yn2CwH+oZ5g9+M56KeDlIYFXbulFKuo+/9l2Ga3SA1YoblGUNKtZWOYrF445f56SXzcFCMZ/Ve3YD+hQUeqULSDLdgTIih2X9BSvK6ULJETN4zU1B0jr//lIhwYl5Bm1IJ75+3HtHoCUjQh+GBodkLCHyhih1sgpIi1q+AgCX+5WAS/HKOXMNBUAspz6DGEOx8+ECdIt9n/M0bIkrsF0UC4kc1XgQliDPPXBRh07o6pyO0BmhSqlveStJyrqS+FqMlsxw2dzwFe7BRYsNdXn85piFKnSX84bUD/WLvLndpdX2leQqb8clW9XnJD29YtJUfUZz4iCXWostGHyDkHU/C+//FK++uornZoQ5uyffPJJupwaFr5wqcADcQMQ7+CBBx7Qwf9M5gJXDBy+/6+//rpuCnECKleurGMGQGEA+fDDDwW7/IiX4KdcBSBY/Jtr8BrXQGCZANP/zz//XLsKDBgwQDN/5plntHUBlA5QAiDLw7x58/Q16B+CNqGowAOCOgj2aOT8+fP6EM+wYogtLoKpi2cEt0zvAS1tx+uKY1oYuIIi2yABEiABEiABEiCBeAhg0TxZLWxN+jks8nYfCdZXFLLZgZ7Sp7bUV2n+IEZZUK+Kt3ymyo0g0NxYFekfu9fwYd+udrbLlcordSpbzKFNPTwP6VhJ+inz71w53HU6O6RfRP09x4PjTT9o24Y5zpbN8rMRpvZYVNo/TkYH//tKpRL0v3BNpxc0C9bBHSrpxTxiLHypFotGnB3f8GeqSu9Hyuo5Y/EPZQn4YQznlOWGkYGdKmoFwa2ISK0seOvpympHM6c+ffxcmCAAn5F+KitBh2aldJuw4gAb7JojWwXk0Llrsk2V4XFAKXEg6NtaphblEE+VqnGOUvjgvYVAWYCd9K6ty8Qw2U8JxcH0fnXkVfX+Ip4BPi9mDphzjugAh872i3gKWOxDOWMsAf7dc0krJLYftnxWMT8oe75T80UKSggsWNAvGIGfsXrJ7uaoKenWvLT+HIDj2MWH9fUZ5Q9iAxh57LHHzKF+vu+++6Rz584ybtw4efvtt/VuN+IYpDfB4hzxC4xiA7v5SHOIWAGuVBYgfoJZ+CMVJRQsWIwbZQG4GBN/LMDLlSunYxMgIKKnp+X/CHUQIwAL/OvXLW5aXl5e2m3ghRde0OPFM1wRkFoRAtcCxHNABgMIMinAUmLIkCFWZQQyMNgKlD0QvG8IIGkvsGpAhgfj7oCsDFlNsqkgGAkYEmU1JJwvCZAACZAACZAACaQcAXgRXFSLu7wq0wDS/MUmMCdHHezAxuezjzpenh6SW7kc3AiPUsEPsynlwL2FjW3b125FSZDaIc+hziNqf3rzIXd2fHC/CFExAjw8skkRpWwxkf/NXLFgvajmaeYYdjNSmSln0wvo2FgizkGAcpXA+4JUh7AISapcV+9BqNqRL6beN2cX6knty/46fGYuKFeQYsrVwp6JfV1nXkO5cu1GlORRTOBWEdt8sIpAEE5YYORWihOf/LkybLpEZ5gkVAcBCLFjb7voTeia1D5//PhxKV/e4iaUUn0j5gCCDSIegFm82/eFOoidgFgQXbt2tT9tfQ2eEChscIzsE1AsIL6BrUDpgMwJ7du31/EQjh07ppUjtooe2/rmGMoIxDZAewiECOsDWDYgnSPcFaBQgcBKAu8rrBqymlBhkNXecc6XBEiABEiABEiABEiABEiABDIwAcSMgCUDskPAcgGWBSaFbWKnhRSUyJSAWAj2YpQI/fr1k3wqY0RWFCoMsuK7zjmTAAmQAAmQAAmQAAmQAAlYCWD3OqHdaGtlHmRKAlBA/PfffzqAJVJoVqhQQapUqaLTUWbKCTs5KSoMnATFaiRAAiRAAiRAAiRAAiRAApmPAHzgkfUAkfTz5Em57CGZjxxnlBUIxO44lxVmzjmSAAmQAAmQAAmQAAmQAAlkSQIhISEybdo0rSS4fPmyti6gsiBLfhQ46QQIUGGQACCeJgESIAESIAESIAESIAESyBwEEJ0fKfhWrVqlrQkQ9M7NzU3efffdzDFBzoIEXEyALgkuBsrmSIAESIAESIAESIAEEk8AWR7W7guUXadCJCg0Qj7tXTPxjaTBFVdUxoZ3v9snVXy95L6y+aVZVZ9YMwqkwdDYpQ0BZDDo27ev/Pvvv1K6dGmdrg/R9k1WA5RTSIAEHAnQwsCRCUtIgARIgARIgARIgARSkcDZyzflxak75YpKEwkprNISGkHqvvDbCEgnOjWiKUc6xMjIuyqFYDZxU2kTkysf/nRYjp6/JiO7VJUyPrmdbi6nR3bZefiKfiAbfJ3K3vLp87XEU6UZpKQ9ASgKPvroI1mwYIGOcv/ll1/Kgw8+KM2bN5eSJUsK0u8NHDgw7QfKEZBAOiUQe6LedDpYDosESIAE0jsB5BX+/PPPJTQ0NL0PleMjARIggXRB4NqtKOkybrNWFpQullcmvVxbfhjayDq2pdvOywND1kizwWvkxIXr1vK5a/x1+c9bzlvLknOw82iwHDhxVUJu3k5UM3lyusnvI5vKiOeqS64c7lpxAOUHJW0JQFEwevRoqVu3rvz000/y2muvyZYtW+Shhx6Sli1bSoECBaR27dri5eUl3bp1S9vBsncSSMcEaGGQjt8cDo0ESCDjEejdu7cEBARI+fLlpW3bthlvAhwxCZAACaQygblr/eV21B3xK55X5r1VP4YVAYYSpSwJjMxb5y8jOlfVL7Ml36jANJvsZ5/8OaVt3WJSW7kkdP5wsxw9Eyo7T16VOmULJLttNpB4Art375ZnnnlGKwN69eolb775pri7W5Y9TZo00ZYGy5Yt0wqDPn36JL4DXkECWYgALQyy0JvNqZIACaQsgV27dmllAXrJmzdvynbG1kmABEggExCALmD+X6f0TAZ0qOigLLCf4sotAXIr4o59scNrxEM4otwL8ByXwNXh1MUbEhQWHlcVa3nozUg5EnAtwb5LentKpwdK6etmrjxpvZ4HqUsAlgOIT7B9+3YZNGiQVVnQpk0byZUrl/zxxx/y7bffyq1bt+SVV15J3cGxNxLIYARoYZDB3jAOlwRIIP0S+OGHH6yDy58/v/WYByRAAiRAArETCAy5pa0LPHO6S6NK3rFXii71VnENEOPg9x0B8lTjkoIFv70EX78tA2ftkf3KtcBI9XIFZGLvWlIwr4cpktV7L8l7s/dJVHQjDaoWtp6zPTgWcF0GfrNbLqgYC0aa1PSRsd2qC1wRYpMuTX1l0Wp/OXL2WmynWZZKBB577LEYPT3yyCMq5kWkrFmzRpfPnTtXYG1gLA9iVOYLEiABKwFaGFhR8IAESIAEkk4AaZq+++47awPwiaSQAAmQAAnET+BcsCXIYakiCQcZbFuvmLgpP4TvVOyCuKT/jF1WZYFv0Ty6GpQH/Wfusl5yXvX5zqy9WllQTSkTqpTJL1sPBsn5SzesdXAA64ReE7dqZYGHW3apqtwNIBv3Bsq4Hw/r49j+lChoCdh47XpErEqN2K5hWcoSePjhh+XGjRtWZcHatWslJCREunbtmrIds3USyAQEaGGQCd5EToEESCDtCQwfPjzGIPLksfxQjVGYwAvkgobf5bZt2wQKiGeffVZq1aqVwFWOpyMiIuTy5ctSvHhxx5NxlGDX5fTp0xIVFSW+vr7i6ekZR00WkwAJkIDrCJyL3rkvEr3Ijq/lPLncpXX9YrJya4AcUDEC7OXQ2TA54m8pnzu4oVQukVcOK7eEHhO26PKD6nzVUl4yZ81pfWntCgVlxqt19PG2Y8Hy2hcxAxUu3nhWWz+ULeGlYyt4uGWTSyHh8sTIDbJqe4CMUNkUUBabwGLiZnikSg8ZLohvQEk7Au3bt5erV6/Khg0brIOAdQFcE+CiQCEBEoifABUG8fPhWRIgARJIkMDy5ctl5cqVOngSFAUbN25UObgtPyKxEHdzc9Ovcfzzzz/rXQ5EZIYZ5F1lDrtkyRL58ccf9XW2nd28eVMmT55sLYIvJvJFN2jQwFpmfxAcHKwVDWfOnJH9+/fr08jcMHXqVDlw4IAeY6dOnXQ6KXPt6tWrBcEabQXRpN944w3JkSOHbTGPSYAESMClBNyj0yHeic2/IJaennugtFYYzFt3RiqqIIm2cuh8mH4J1wUoCyB4Nq4Mh9V5KAxOnLdkWmhW454bQt3yBdXiP7tWEOgL1Z9D0S4FdSsUkOMqfoER0965oJviVzR2ywgzHXfVJiXtCDz55JNy8eJF+euvv8TDw+KSgu9HZEsYPHhw2g2MPZNABiJAhUEGerM4VBIggfRHALvy5kcHAix98MEHepDGJxK7F6VLl5Y5c+bIO++8I4sXL9bnsbBH1GYoC9566y3rxEy6p8KFC0vNmjWt5TCf7Nmzp34NBUDu3I4/UqF8QFs4//TTT+u6M2fOlLFjx1rbOXHihFZafP/999K0aVM5e/ZsDGVBxYoV5ejRo1rB8Pfff8vs2bMTZalg7YgHJEACJOAEAWO+f+GyxTUhoUsqKQUAXA3W7bwoxR+MuXMfFBqhLy9XLOb9sbxSLCD2QWCI5Xyg2vWHoC0j0FsUK+wpZy5alAkov6Sugfy4/ox+6Bc2f0LDY0+/CGXBrYhIXdM2boLNpTxMBQLIkoDvaAQ4tHUTnDZtmv4Ofe6551JhFOyCBDI+ASoMMv57yBmQAAmkEQFYALz00kty7do1HY25QoUKkj27ZTfJKAxg4g/LACzcjbIAw4WiAAoDs+OBMkR1Rln16tXxMoZcuXLF+houB7EpDKCUgLVA1apVde5p5J02yoIxY8ZI69at5ZtvvpGvv/5afv31V60wWLBggW63Xr16smjRIm31AD9PmGvi9b59+6gwsJLnAQmQgKsJlFBZBSABarceC21nUiV2a1laxi88KMu3XIgxHGP6f/zcvUU/KhxTrggQn/wWi6mCXjkkIPCGnFIxCxpW9NbnYvtTysdTx0NAjIN2jRxdvPx8Ync98w+yxELIl4cWWrFxTY0yuPQdO3ZMfv/9d4EC3lY+/PBD8fPzY7BDWyg8JoF4CNBOKh44PEUCJEAC8RF4//33rbv5MHsMDAyUc+fO6Uuw2MZrKBPwMAt37OxjcY5dDwRcateunVY2FCpUSMcvaNu2rQwYMEBOnToVo+sCBSy5vGvUqCE4Hj9+vHTs2NFaD0qJESNG6HSOUE7cvn1bTFwFXAMXCZhgQqEAKVq0qH5GzATI0KFDrT+eoIx4+eWXdXAo+ndqPPxDAiSQQgQK58sp8PfHjvy6A4FO9fJ43WLafSDYLh0i3A0gKN91KkQf49nUq1Yqny4rFx0Mca0KXhiFvI5KkF3BPujh//ws992jKi5Cgwre8mSjkjEe+Txj33f7/p8zus2qStFASX0C3bt31y54cPUrUaJErAPo27dvrOUsJAEScCQQ+53OsR5LSIAESIAEbAggI4JJo4hASnXq1NGBBk0VKAjKlCkTowzxCOAGALcALPDhOtCoUSOBsuHxxx/XO/qoA+sDPBBroH///lK2bFnTrDRu3FgHRYRJJQT1cK1xV5g+fboOWghLAigqMAZYCbz33nvWNlBmYhYguCLEx8fHep4HJEACJJBaBGBR0KONn0z//ZhMXnpML8xzx5Gu0IzJwz27tG1cQpZuOGuK9HMl5XqAFIrIivDSlO1SWMUyCIp2K0A2BOOC0KtVafl90znZefiKPDR8g1TxzSv7ToRaUyyaRjs0LCFzV5/W1ghPfbBRx0KoWjqfXLtxW6qU9pK3nqhoqlqfT1y4Lr9vsCiOX37Ez1rOg9Qh0KtXL/nvv/90XKBy5cqlTqfshQQyOQFaGGTyN5jTIwEScD0BxBN49913rQ0HBARI/vz55amnnrKa78P33zbDwauvvqotAnCRiU2wa5clzRdcDBBcsEePHtoKYMKECbodKANatGghmzZtsro6IHgT3CCMwM2hS5cuVisGKCQgmzdv1s9QbCAoIwIYon20jdfe3hYzXOPqAPcKCgmQAAmkBYFnm5WSXDnc9cL8WZXRYNXuixJ8zTE+QLTHlx5it+a+sQ51Sp/aUr+qxQTdKAvqVfGWz1S5Ed/CuWVsrxraSgGpD7cfuiLlSuWVOpVjuicgrsG8AfXl4YbFdTpHxEH4d88l2a0yKmw/HGya089nlEvFj0oJ0eOTrVrxgAwM1XwtFg0xKvJFihFATIK9e/cKLPmqVKmSYv2wYRLIagSyqSBZFlusrDZzzpcESIAEkkAAvv+vv/66vnL06NFSuXJlHTMACgMIfCOxy49zzZo1k5YtW+rF/5o1a6ypChEjAHEGcB4L+okTJ2pXAbgitGrVSisHkFEBSgdYKuTNm1fmzZtnVTigH6RMhKLCSJ8+fQQuEkYee+wxbVkA1whYMcQlxjJixowZgjzVFBIgARJICwKBKl1hn893yIXoNIuwDlg24v4kD+V21F25qBb4RVU7caU+ROOo4+XpIbBquBEeJdmVyUOuHLHvpwUpV4drN6IkTy43gSsFrCMg125FyYPvrNXH+HN/rSLyUQ8oJKIrWM/wIKUIQJEOZT6+U+vXr59S3bBdEsiSBOiSkCXfdk6aBEggKQSQUcAoCxA4MDb/fmPi7+/vLzCHRNYEPHt6WgJ7oV/ECMACf+dOS85vRG+G28ALL7ygFQEIepgzZ07tsoD6cC3w9fUVk8EAmRTguoAghwhOCMsGBEu0FSge0Obbb7+tTTOLFClie1pg1QCFA9wdLl++7BAUKkZlviABEiCBFCaAgIU/DG0kGw4G6fgDV0IdLQwSMwQs1ksVunffjetaKBSMJOQKUdgrpxS2hEkwl+jn8NuR0rimj1RXFgX3lc0v9ZR1ASX1CMCCD0r5WbNmUVmQetjZUxYiQAuDLPRmc6okQALJI4CYAwg2iHgAWLzHJqjTrVs3GTRokHTt2jW2Krrszp07+hlZFXC8bNkyHfwQ8Q1sBcoGKAPat2+vF/aI+ozdE5ONwbau7fH169d1bAO0BwsFBIGCNQTSOcJdYeXKlbo6LCGgzED6KQoJkAAJkAAJZCQC+H7E99kXX3yhLfQy0tg5VhLIKASoMMgo7xTHSQIkkCUIILMCLBmQlhFuDrAsQIaDpEhYWJjOlIBYCPZilAj9+vWTfPnoZ2vPh69JgARIgATSN4GBAwfKH3/8od36HnnkkfQ9WI6OBDIwASoMMvCbx6GTAAmQgDMEoIBA1GgoI5C+sUKFCjoglJubmzOXsw4JkAAJkAAJpCsCQ4YM0bF/YPEHCzwKCZBAyhGgwiDl2LJlEiABEiABEiABEiABEiABFxKAG8Jff/2lA/127tzZhS2zKRIggdgIxB4GNraaLCMBEiABEiABEiABEiABEiCBNCIwfPhwWaeyISBOEJUFafQmsNssR4AKgyz3lnPCJEACJEACJEACJEACJJCyBG7duqU7uHTpkks6QpDe3377TV5TqY179erlkjbZCAmQQMIEqDBImBFrkAAJkAAJkAAJkAAJkAAJOEEgJCREhg4dKg0aNJDy5cvr1L/ff/+9E1fGXWXkyJGydOlSefHFF3UK4rhr8gwJkICrCVBh4GqibI8ESIAESIAESIAESIAEsiCBCxcu6N3/35UlQL+OHWXTwgVSVQXaHTNmjHz00UdJIvLxxx/r1MONGzcWZPahkAAJpC4BBj1MXd7sjQRIgARIgARIgARIgAQyJYHHH39czvn7yy+fTJCi3t7WOf6wcaOMmfqFPP/889r6wHoigYNPP/1UFi1aJJ06dRJkRqCQAAmkPgH31O+SPZIACZAACZAACZAACZBAyhK4c1ckPErk+IXrcu1WlOTPk13W7bkkRQvmko4NSqRs51mw9Z49e8rF8+dl06xvHGb/dJMmkuPuXXlnymdy8+ZNGTVqlEMd+4LJkyfL4sWL5YknnqCywB4OX5NAKhKghUEqwmZXJEACJEACJEACJEACKUdg1e5L8su2S3LodLDcvZNNbkdEipt7domKvCOeuT0kJPSW5MjhLu7Zs8mt8NtSwCunrBjVVHaevCp1yhZIuYFl8pZhObBtyxZZ/OEHUrZkyThnO2DSJFm1ZatMmTJFHnvssTjrffbZZ4K4B4888ohTyoU4G+IJEiCBZBOghUGyEbIBEiCBzEggIiJCEOE5X758KT698PBwCQ0NFR8fnxTtKzIyUq5fv67nlC1btnj7Onv2rJQqVSreOjxJAiRAAumFwBcrjsuSf89L+K1IKVAgtxTMn0fK+3orhUAu8cqTU8KV4iC7UhIcPxMs/ueDJTAwTHAfrFG+kMASgcqCpL+Tffr0ka2bNsn8D8bGqyxAD5MGDJCR02fIkLffFgRSezQWpQGUBXPmzJEHH3yQyoKkvy28kgRcRoAWBi5DyYZIgATSA4Fly5bJjh079FDKli2rf3CUKJF401PsbAwbNkxOnz6drGlBGfD3339Lw4YNpVChQrG29bpKEfXrr7/KoUOHxNPTM9Y6iSk8efKkNuMMCAiQmjVrSvfu3dWOWg5Zq3JXw2R09+7d6gd13Dtpq1evlt69e8vnn38u7dq1S0zXsdbds2eP3LhxQxo1ahTreRaSAAmQQFIJ3FA+B89N3i5Bl2/JfTVKSqv6ZZxuass+ZT7/n7+4KUXC8K7VpHm1ez73TjeSxSv27dtXNqv4BJ8OeFOa1q7tNI2BytLgr23bZfF330ltlU3BCJQFCxculPvvv18mTJhgivlMAiSQhgSYJSEN4bNrEiAB1xPYvHmz/PLLLxIUFCQzZ84URFUePny46ztyssXLly/LK6+8IkePHo3ziieffFLefPNNlygLzp07Jwg6tX79em1JgIBR6B9y586dOMdge6J69eo6ynWdOnVsi5N8jIBVk9SPQwoJkAAJuJJA6I1I6fDBJom4LfLqc40SpSzAOBrWKCFvdm8kRXy8ZNjs3TLh1+OuHF6mbwvfXRv//Ve+fu/dRCkLAGaisjRophQML/R9Ufz377eywvcUvrepLLAi4QEJpDkBuiSk+VvAAZAACbiaQL169QS7FJDx48fLtGnT9AJ4w4YN0rp1azEWB1hcY/e/ffv2kj9/fjly5IisWrVKvFVkZ+yI28rcuXN1oKaKFStKs2bNxMPDQ5+Gmf/8+fP1DxwoK3LmzCmPPvqoeHl56R197OZD/vjjD90+jhHtOW/evHqn35wvXrw4TsUQ5LLGdedVECnksm7ZsqVuN0YluxcLFizQJT/88IPkzp1bHnjgAR2VGtYLRjDPrVu3SuHChfXcjVUDLAF27dqlq6E/zM3IXRWsCmwOHjyoLQWQX9vWrQFWDVBSwLUCVg3NmzcXjP83lVrrwIEDAsUJGELKlSsnTZs2NU3zmQRIgASSRKDLhK1K0ZpDnu9wX5KuNxd1fqiarNvpL79tPCuXQiJkQveq5hSf4yCAQIQXlBXb/LFjpJKvbxy14i+eOuRt6TV6tHTs1lXWLFki+cqV18rz+K/iWRIggdQmQIVBahNnfyRAAqlKAAtmKAygAEDEZSgJ3nnnHT2GJeoHyldffSVdu3bVi/I2bdpotwEoDK5cuRJjnOvWrVM+r4F6kQ/Xgn/++Ufy5Mmj233//ff1ItjNzU1bEnynTCzhYrB3717Ztm2bbgeKgTNnzuhjBHqCwgBxAtasWSOnTp2SS5cuSZcuXax9oq+HH35YL7Rrq10YjB3PGLO7e9y3bvTZtm1brSxAY5g/BAt9KEUg/fv3F1/1Aw9Kg5UrV8rs2bN1OcaDeWKHB24JYOPn56fPoX88atSoIbBagNIE84RAEdOtWzd9jDF+8skn8tJLL+kytAfXiLCwMN22rqT+UGFgSPCZBEggKQRe+GKXRETelZeeSZ6ywPT9QJ3SkksFQ9y487SMX5pDhrYvb07x2YYAvh/wHXPt2jVZOXmS5M6Vy+Zs4g+/VRaAz777nrRSivTNSint7lMk8Y3wChIggRQlQJeEFMXLxkmABNKSAHa1seOOHW2Y2cMvH4vc27eV/aoSLIrho48F+L/KrBKLeCx+//rrL7nvvpg/Qr/55hutBMBuOWT58uX62fyBvyWuw+IbygEskhGb4OOPP9ZVkD8abeBhYhlAcYD6vXr1Ms1Yn1GO8WPBDeUDFvZvvPFGvMoCXAyFiG3wRMwN/UEBYQSxGWCBgLGAASwBIPgRiLIvv/zSVLU+w61g7NixghgRsDSAwuTixYv6POYIywuwwVjhCvLMM89ImTJldHsIXAVFg5l/jx49rO3ygARIgAQSS+D7Dedk//Er0qVtzcReGm99uCjUqFxclm86K8v/u3fPjPeiNDoJ660TJ06kau9RUVFakX1LKeB/+2h8spUFZvALPhgrRbwLSZOHHpaLNu4J5jyfSYAE0pYAFQZpy5+9kwAJpAABLK4RYA8++NhFh0UBzOfhb4ldESySsRjfuXOn/vGDIWxUQZvgygAzfgh20I0gswACAHbu3FkHUcS1xnLA1GmickxDsHMPsbdQ0IWJ+HP48GFtUWB2+KtUqaL7TqgJuELAUsAI8l1jvGZeKEcARkjdunX1s/1cdKHNH8RfgAIEXPv166ctDHAabCFQkMAaAhYXkIceekgqVKigj/mHBEiABFxNYPafJ6V6pWLiUyD5QWLtx9amoZ8UzOcpE5cckqAwi3LZvk56eA3FLFIOwqUOilxk9UlpgZL7mnI7Wzp+nHgq9ztXypKPP9IZFtooZfOujf+6smm2RQIkkEwCVBgkEyAvJwESSH8EqlatqjMc4EfUJpXqCQtYCGIXIIbB4sWLtUUBykzkfuzCBwcHo0iLrdn/1KlTtSUAMgzgGLvl9oIsBBD4+tuKKYeiIjGCLAbHjx+3WkM4ey0UFiYOAa5BvAKIiduAY8RZgKB9iK0yQRfY/THxGtAGrAXgugG3hFq1aumaYGcbI8Huch3vwVgx2J/jaxIgARJIDIHPVpyScJUZod0DFRNzWaLqtmpUXu7eySZTllvukYm6OJUqw5oLFnS4Pw8dOlQrgJGxADF1YDHnaunYsaOEqu/I5Z9OlJzR33eu7mPOyBHSQFkDdun9vJ6Hq9tneyRAAkkjQIVB0rjxKhIggXRMoHTp0trVAAt728B8GDJ87eE6MG/ePF0nV7T/JXzqsVP+888/y35lEolnI9ihL1WqlHZTQJpExByAOb7tTr6pa/+MwIJQYHz77bc63SNiCcCfH4KUjVi0I34BFAo4NnEOWrRoocveVrmqEUwR18WXacH026FDB93uu+++qy0p4H4AVwtjAYF6cE+AIuWjjz7S7gqIOxCfYO5wOYAlAnjBcgNBEeFyAIErA5hOmTJFx23Yt2+f1V0B58EW44eiBnNwZh64jkICJEAC9gRWbD0vFf1iT1FrXzepr/2K55OSxfLJ9sOXZffJq0ltJsWvg5XYjz/+qL/PcO/fpqy+vv76a+2+hmw5EydO1K+TO5Deym3uqFI+L/1kgsstC+zHNvXtwSp7RXWZpMb+33//2Z9O09cIQAy3DCOwPoQyHI+IiAhTzGcSyHQEsqndsJjbYZluipwQCZBAViKAAIRYzM+YMSPWaSPyPyL8QwmAOjClh8Cc89VXX9ULX7yG6SUsFLCox2IX8Qiw0MUiGdkKoACA5QJ+kCErwKxZs/Tu+7Fjx/QzYhwgbgIEpvxwi0CfEPygwy49MgmgfVtBtgQoCHBrhjUDAggaQX8wQ41PEJAK7hOwAICgvS+++ELvPsEVA3EcjGDhj7gEZpym/OrVq9odwswJ5fCVxRwwNiOwKkCGBfxYAvelS5eaUzJixAidnQEFYAt+f/75pz4PBQqyP1BIgARIIDEEjgdGSPdxG6RPl/pSyCt5wfYS6vfASeV6tsdf/lfWS4Z3zhhZExCfB4F0cZ/G/R4uaVjg4nsBSmjE5unevXtCU49x/ikVjBCWapPeGiD3R1uVxaiQQi/e/nyqrN6+Xb5XFhMJKbWdGQK+z3fs2OFQ9a233tJKdYcTdgX4/oeF4qBBg/T3GU7DzXG7GiNk1KhRDvGIsBGAQMXIQATrP/zegHshhQQyGgEqDDLaO8bxkgAJJJvAhx9+qHdl4INv63qAhvEFb6wO8Nr2PCwDECMASgf8CIO7gb0FA66JTXANXB5wjclWEFs9+zIoDnAd+oGbgrP9YXzY/ciXL5+1SbSFMvyIxDxs52mtpA6wmEeWg7Vr10rZsmVtTylT4HDNCFYLxrXBVMAcoWxAOdq3F7BF35i/cdWwr8PXJEACJBAXgS//PicLVx2TgT2bxFXFZeW3VQaGz+ZvFg+3bLJi5P2Swz1xRrlQxmJHGgpT3C+zZ8+ulcbFihXTxxgosvfgfgmlK+pAMQsLOdyrcT9FLBws9nEO93Q8UBf3bpyHggD3VXxPYYcbr3GPh6Bd9AmlLoLhoh0IUuA6KyOUknixsrYb+WIfaR+dccfZa11R79E33pRwNe6NyiIuuQKlNpQGUNTbysiRI/V3q21ZbMf47oICH64Zxi0R33d4H5CNaPDgwTEUBviuxMYD4v8g1TIs72BBCKsJfv/FRphl6ZmAe3oeHMdGAiRAAq4igB9Z8O2E6Tx2BLBTb6urirg5AABAAElEQVQMMP3gh1lcYhbBuC62a+O6DuWob5u9IL66tuegIECax8QKUjzaKgtwPdrC/GKbI370gA/cMmDiitgO+OFqL/gRikdsgjnCBSMuiavvuOqznARIgARsCRz0D5U8uWO//9jWc8Wxh3s2KV7YS7LdjZS9qt+65QokqlnEe0EGGSzoIbhvYuEOlzcsJrFoxD0T5VAA4J5t3NVQjgcWqSaGDOpDAQDBvR33czywCMW9GscQLGKhlIWiwt/fXz+ggCigyurVr6/rOPPnl4UL5XuVTWfSW29KmwaWQLnOXOfKOiumTJZH+r8hTysrhx/UTn1yBYGNkR7YXsAdbopgXV8xgkWD4Ym6OAeGsDDE+2QESvy4BO8rYkvAArFo0aKyZcsWnT0IqY9NwOG4rmU5CaQ3AlQYpLd3hOMhARJIEQLYyVmxYoVUqlRJf4njRwElJgEoDODCgJ2Yrl27xvhhFLMmX5EACZBA6hO4FBwuefOkjsIAsyuY31NCw27Kucs3Eq0waNy4sQwfPlwrBLB4hKUYLLYQZBa7/iklUEjMmTNHuyTAIgGubAiGaILUOtvvd99/L1WUIiKtlAVmnH98NkWqPdNZu/8NHDjQFLv0Ge8NUgUjvg8sQ+B6gDTAEFhmwL0DgucPPvhAxyXSBQn8QTsQWH3AVRAKB7okJACNp9MlASoM0uXbwkGRAAm4mgAWwogqTYmdAHazGFcgdjYsJQESSB8EwiMixSuPJSNNaowot6eHBAXfkAjlnpAUQcyA1BDskCOo7EJlFQA3CFggPP/883pH2wSnTew4AlTMHT+fuC3GEttecuq3vf9+WbdunSRXYYC4O1AIGBkyZIi2KoCFBjJOQBBv4IknnpBTp06Jn5+ftuqYPXu2PpdUlgMGDNCuCNi0MOmHdYP8QwIZhAAVBhnkjeIwSYAESIAESIAESCCrE1CW4akmbsoFICoqUvLmSn8/l+GugIUsFqEIzAurBWTDGTlypNyvFtjJlfoqOPDqv/9ObjMuuX67ml9ZlaknuQL3EMQUMAI3AwiUA7CwW79+vXYXQRliDUBhkFxBnwh8PGHChFjd/JLbPq8ngdQgkP7ugKkxa/ZBAiRAAiRAAiRAAiSQoQh45vKQm7ciU23MN8MjJTwiSkoUStmMDEmZEBQEcD1AthtE+kf2HldKv379BDvyjw8cJL9PvJetx5V9ONNWnw/HyV0VN+DFF190pnq8dRDDAFmD7KV///565x8xBxAr4tlnn7WvEu9ruJwg4GRsgvgUsPxIrEtIbG2xjATSikDiQr6m1SjZLwmQAAmQAAmQAAmQQJYm4FPQU8Ku30w1BldDb6pMBhFSubhj1pdUG0Q8HSGQ3rRp01yuLECXiPczevRoCVbuDiOmT49nFCl3queYMXJIpR4eNmyYtGrVKsU6unTpkp5vtWrVdPpkdIRsEgggCQuB48eP6wfKL1y4oI9NNgqUQRGBgMqIHwErBcSOMIJ0ylDsJCY7hbmWzySQXghQYZBe3gmOgwRIgARIgARIgARIIE4CtcsXUAs4lT7QkiEwznquOnH+YqhUKpNfcnpkzZ/LDZRbwutq933p+n9k1IyZrsKaYDuRKtBgy1f6ybmgyzJLuV20b98+wWuSUwGWBb/99pvOkIDAhi1atJApU6bIL7/8omMnQFlhFBYIXohjKAiMIEgwXB3atm0r3bt31wEuzTmUw23k6NGjpojPJJDhCGRT/jup6A2W4fhwwCRAAiRAAiRAAiRAAumAwLHA29Jj/AZ54sFqUq1s4tPNJmYKgVdvyne/7pJ+7SrIM41LJObSTFcXaYgnfvKJNFEpAr8cOiRF53dFWTR0VG4QJXx95eelS1O0L9vGsRxCNiUEJUTaS6SwNCktbevFdYxsCsi2gJSWCCJsK2gX2TEoJJBRCWRNlWlGfbc4bhIgARIgARIgARLIogTKeHtIsSJ5ZevesylOYO+xi3L3zl15om6xFO8rvXeA+AE/LVkiO44ckWfeeSfFhntABR98/I03pXCxYqmqLMCEsmXLZs1ggJgEiVEW4HooGAoVKuSgLMA5KgtAgZKRCdDCICO/exw7CZBArAQ2b94coxx+iUgzZcT+PM6hjpEDBw5IaGioeamfGzVqZH2Nc7NmzbK+xgFSWNn2gfO2beB62zYQNRmRrY2YNFjmNcbw559/mpf62baP2MaAfNu28/jxxx/l7Nl7P6yrVq0qDz/8sLVNcLBlUapUKXnqqaes59EHxmErCbFEG3gYsWeJedpzMXX5TAIkQAIJEViyLVA+WbhP+napLwXz5kyoepLPT563WRpVLyTjut37bkhyY5nkQqRvbNG8uVQoWVLmjBzh0lmdCwqSru++J14FC8Yw93dpJ2yMBEggSQRi2swkqQleRAIkQAKpSwALTiymsdg9c+aMXogjzzEEC/G+ffvGGNCiRYtiLNYRURoLV5gOQrAIHjHi3o8ftGG7kEYdtGEEi+BNmzaZl/rZXiGA87YLY5g72ioM0IZtH7aLbDSIedn3gcW8UUqgbfvzUAjYKgwwD/sx2CoMcL3tGNCvrcIA5+0VI+Bk+oAyYtKkSbhMB3vCj8lPlNnq008/rcvwZ9SoUQ59WE9GH9i/P/bn+ZoESIAEDIFO9X1kzqrc8vvaI9L98Zqm2KXP6/87I5G3o2RQu/IubTejN+bl5SUr1PfKw61by4tjP5CZ773rkilt3rdfhn35heTz9ha4P1BIgATSFwFaGKSv94OjIQEScIIAck1DsPjF4rVx48YxdrWdaIJV0ikBKDkQ+fvNN9+0KkfS6VA5LBIggTQisOvkVen3+U5p36aaVPEr5NJRhF6PkBmLtkmnB0rJgMcruLTtzNLYEeWa0L5dO2lco0ayYxqcPH9eeo8aLdk8POT7+fOlXLlymQUT50ECmYYAFQaZ5q3kREiABEgg4xOA5QWsEmC9gJ0mY82Q8WfGGZAACbiSwLvfKyutA5fl9W6NlP+5a1qOiLwr03/YKqUK5ZJv36jnmkYzaStQ7CIjQMu6dWTKwIFJmuXqHTtk5FfTpWCRIjo9JJUFScLIi0ggxQkw6GGKI2YHJEACySWAXNBYSFIyPwEoCOCigHgNnTt35vue+d9yzpAEkkTgAxVbwDtfDvn21x0S4YI8i0fOBMuXC7aIT/6cVBY48Y40bNhQK3XX7tgpg6Z85sQVMasEXL4so6bPEA+VPWDGjBnasmDYsGH6OGZNviIBEkhrAm4jlaT1INg/CZAACcRF4JtvvhE8EKMAkYspWYNAnTp1xMfHR3LlykV3k6zxlnOWJJBoAi1r+siP/5yVXYcviHeBvFIwX65Et+F/MUyWrjksW1Tcgua1fWTay/9LdBtZ9QI/Pz+podwSJn35pfhfuCitGzRwCkWYSjP41JChUqhoUZn33Xfiq1IoQvbv3y8TJ06Uy0qZ0LJlS6faYiUSIIGUJ0CFQcozZg9OELgRHiUnL92QXDncJIc7DV+A7Lpi0mPSdvlly3l5VKV18nDLelxglt6zZ09ZqnIx2wcFdOJjxSoZnED16tXT7H1XMSolXO1aRkbdjfXhlj2by8ygM/LbFBF5R45fvC4e6r6d0+PePepM0A1585s9cuT8Nbm/qmt9zOPjtWTzefn45yPi5eku5Yrmia8qz2UCAnlyuUuDKt7y966LcuRkoJwLvCbZ3d2kUH7POGd341aUnL98Xf7eelLWbTsluw4GSLbsd2RS39ry3AOl47yOJ2InULZsWe069qlSGpwPDJJW9eN35bijbq5t+78hhVTqxGXLlgkCKRqB1YKnp6fMnj1bLly4IK1atTKn+EwCJJCGBJglIQ3hs2uRtfsD5YMFhwRBhozkzZNDRnStIs2r+ZiiTPM8cPZeuXItQj7rU1v/oI1vYtuPXZGT58N0ld2nQqRRJe/4qmfKc4jAj6j99GPPlG9vup7U/rOh8sKn2+Ic48wB9aRWaUuWjTgrpaMTibn3ODPsjYeDZMzCw3Ll6i1rdc+c7jLyuWrSooaPhNyMlAMnrkrY9dvW86lxcDzgmu73eJVC8mBqdMg+0pxApeJ5ZdYbdeWLFSdl08HLculymCxbEymFvb0kv1dOyZkDP3XvSnDITfV5DJeoO3clIiJSuTFESaXS+eTFNpWz5PerK9+41iprwrRp0+TVV1+V2hUrytOt4/7ve/CVflpZ8Pvvv8c6BGQ58lbZEuCecP36dfn0009jrcdCEiCB1CNAhUHqsWZPdgRmrz4tX/12TJcWK+QplUrlk6NqgRwQeEOGfr1XVoxtLvlzZ66P6I7DV+RmeKTcVruWCUmTyoWklbIswJ5dvQoFE6qeKc8/9NBDOgNCSk3uvIrOHBISInfu3JGLFy9qE3hYNRRTOx8QlOOBlIh4joqK0sfh4eFqdzmb+tEZIZGRkfpx+/ZtweOGMrXMnj27rov6OI/r8YwUh9g9QTkepn3bY9NPcHCwdefFjMGMA89xPa5cuaLTReI85NatW9qsH8cYM8Zm+4zjwMBAKanyanuoKNU5cuTQDxzDBQSvbZ9xjAfmgXNwGcADUbMLqvzZKC+iAliVLl3aZS4k4Pbjjz/quAaYR2pIXrXIKFvCsvMVGBIu15RSEwti3KsgBXPnSI1huKyPxNx7Eup03jp/mfrLUV2tSEFPqaIWXebePWzWXvnjg+YJNcHzJOBSAoWUYmD4M1XkWMB12Xj4suw6FSpnA2/KqXPXJKe7u0RF3zML5vOUCiXySG2/fNKymreOV+DSgWThxtq0aaPv0SNVsNom/6stJQsXdqDR/MW+UkR918SlLDAXmBTCr732mv5O/eqrr8wpPpMACaQBgcy1GksDgOwyaQSCr92Wmb8f1xf371hJujW3+K+h4KuVJ7S2315ZANPXU0qZUDR/LgdFAtZGt6Pu6IWQh1s2CVW7W0HqR37pIrnFXZkOxybxtYcFvVlwYUGFNtGHvzKzLeOTO0Zz6AtKAHdVJ7+yjoitP/QFiV7DKVPnKImIdLO2Y+uGYdv3qC5VdZ3Y2jQXw53j7OWbKqqzp+TOea9NnE8KF9NuenhG2kRXyl9//SWLFy+Wffv2SVBQkF7Eu6sfkxAskLGox/tt3nvbvlEOwbncalF8SykNzOIb53Ds5mbhb45NOZ5xDgt/9IPzEPOMczg2D7zGQh+Lb1xr+zDX2JaZY5xDHxC0gXL0hzli3EYZYergGY+wsDCB8sQoP4yiwyg2UG6Obdsw1+MZdaA4gNLEsKxbt6706tVLoPhJjkBhgMwJaCe1XFP8iuaWhYMt/rhf/3VKZi47Lj0f8pPercrEmIr5f4XLEP4PffLlVK5V2SUg+Ja6T3lY/yft/xfD1H3jcmiElFH3KPU2xSrx/W+bfnGhfp/juEcl5t4T6yDsCoOVxcC0pRZF70sq5dzzD97jMf3PE9KworfkU+4A9pLce7Jte2AZoCwbotR92rdw3KbnttcYXrb3WtvzPM4cBCoUzyN49Mgc08lwsxg6dKicOXNGuxz8POFjKaeUA5BN6jv3lQ/Hyf9UbJqFCxc6NS/c77/++mvp06ePdk2cM2eOU9exEgmQgOsJOH6ru74PtkgCDgQW/XtGa/yrlMkfQ1mAii8/XC5GffzQfGfuXtl+6Iq1vESRPDK5Ty3r4t2YDzeoWlgZHopsOxik6+JH/CQVwKi+zQ69M+29P/+ArNl5QbdRvqSX9HnYT0Z/f1ArBvIppcCr7cpLhwYl9Pkxiw7J+t0X9bGb+uXfsk5RefYBX6nhm0+XYXfy8ZEb9LH502H0v+ZQPy8b3VQKqx0SyLMTtsgZ5RNsK39+8ICDkgQ/3AfO2iP7ldmvkerlCsjE3rWkYF4PXZQYLqaNzPiM9Hz44YFde/jFd+nSRbAbUrWqRSGTGeeclnM6ceKErFmzRvuhjhw5Uh+PGzcuyUOCkgDv1cqVK+WFF15IcjspcWH/mbtkp7Icqqj+34+eCdWxRto2KSFL/zkruB9MVPefxsqdyPZ/0d09m2zcG6iHgzqjelaXNrWLWofnzP+2M/eo+5WVUmLuPdYBxHOwaIPl3o37oq2yAJe89FDMe7dp5tXp/1nv30m9J6Ot20rxOllZpf24/oxpWvNuVbeojOxSTeLQDeu6rYetl1vKDH3OwAZSpdQ9n2lrQzwgARJwCYEvvvhCYBnQbuAgqVerlgQpqzd/pZDu2LGjfPTRR4nqo3nz5vp7pH///vL000/L3LlztSI9UY2wMgmQQLIJWLa5kt0MGyCBxBE4HnBDX/BEw+IJXvjm17utPzahYMAPzvOXrsvLX/4nyhUxhvx35IpWFviqYFe5lEkxrA6mRlsymIrOtNeockEVLdnyA/580E2ZtvyklC2ZV/s7It7CxwsP6R+vaLN88dxSWykk/JQfJcwe/9pxQfs+H1bBviAI5Ii2THsog2LDlOE5hwrSZKR5zcLSREV+xiM+6T9jl1VZgPlCoDzAAsZenOFif01av968eXOyhwAFQbt27WTChAnyyCOPyOHDh+Xnn38W/PigsiDZeONsALm0sbBft26dPPbYY7Jx40YZNGhQnPWdOQFrk/ScWhOLWe8CysJC3XO2KuUmlHe4H6yIVjyaOeJ/EcqCWuULSrXoOu99u0/OXblpqogz/9vO3KNgyGLuM6bx+O49pk58z+be3bGJZecwvro4B+UnlL11KntLQaUUTeo9GW0N++6AVVkAxS1cRtDeyq0BMv7nw6gSq5y6eEMrC6CcqaQUHRQSIIGUJTB16lRtFZYrXz6pUKWKwKUgscoCM8L7779f0B7u/1AawIWOQgIkkLoEaGGQurzZWzQBf7Xgh8CMHoIf20Fh9wIfqt91Ukz9+EaEbSyC8UNv2ZhmUjCPh/qBeFc6jN0oQcokdevRKzGCFeHH42f97tNmscgy0GroWjl0OkRnHMijzPWdbQ/WA3g0HHBRWxWUL5FXxnevrsfadNAa/SP1gurft3Bui0VEtOV8pNJgvDN3v7Y4+F75+Y5+tpoObjihVw19bYuhl3V7o7qq/NHRVgD6hM2f/o9VsL56YMg6/UPXWhB9cOhsmBzxD9Wv5g5uKJXV+KCg6KGsE1B+UJ2varOLlhAX+/bTw+vOnTvLokWLpFGjRkkeTvfu3XV6JkRirqgCMVFSlwDcIt59913tHrF8+XL9fuJ9TYo0btxYp9dMyrWpcU2PB0vre9O4BQe1hRH+v99T967Aq+Exusf/4uf96kiDipa4JH2/2Cm7jwXLnLX+MqxTZXH2f9uZexRcGhJz74kx0DhemHu3s64AaMYEiLwZESUthiTtnoxFv7HkGtWjujxynyXOyI4TwTJ12Qnp86BfHCMWmbHqpD5Xo3yBeK0Q4myAJ0iABBJNoFu3boKHK8Tc/+GegO8QWAxCMU0hARJIHQK0MEgdzuzFjgB8biF37lr8rbcdvyIw0zePTqM36vMHVKRySHlfL7mofILxYxpRsKspSwPICTvTfVgfNKhgySYABQFcFyDHL1p2+xPbnr5Y/en6QClzKBNfqi2je9YQBFmCwMoBEcMRCGyGir9QvJCl/IQKvpRScig6ewJ2NKEsgOAZryGHo8/rF+pPQlxMvfT2nBxlwbx58+TkyZMyY8YMKgvS+I2FX2vevHkFpqpJFXwW4FqSXiWXhyVmBMaH9IJIuxib4H/RNohpsxqWwGDHVHA2SGL/t00f8d2jTB1XPJt79+1IO/OuOBrHfGv6Wu7XnsraKqn35P1nQ3QPCDxplAUoqFuuoMx+va4UyW+575phBIWFy+q9l+Sd7/bL38rqCzKgPZWGhk9KPf/www8yZswYuXnTYjGzdetWfQ9Oqf7YbtYhgO+AWbNm6U0AWBrs2uVoTZl1aHCmJJC6BGhhkLq82Vs0gZIqUBVSBp4JuqVWusqaQOVMhskqBP7ARoJUUDAIds17Ttxqiq3PYTdvW49xUEy1G62L0OUqDlgMSWx75uKyPhbFA14jqJcR7OA9OX5zjNRi5hysJlJKzDzKFYsZgLG8cotAmrPAkHvWGhhDQlxSapxJbdcV7gjz588XmDLWrFkzqcPgdS4k0K9fP22iivc2OYogFw4pTZrC/6KtLqGaUoZCrkRbWCX2f9tMIq57lDnvqmdfFfQV924EgBUplGCzCd17zHwTuscHBFssNcop1zBnBDEk8DDyVHPfGFZXppzPriWwdu1aHQEfsWI6deqk3cCWLFkiSJVHIYHkEmjQoIEMGTJEJnz8sX5GjBxYH1BIgARSlgAVBinLl63HQaBMEU/ZoM79vPG8dL6/lJQrlkemvXyfrt3mvX/k+g2LIqBUIcuOOXaVXu9QwaG1+/wKOJTFV5DU9rxiifqNfib8ckQv0OGv3EuZJJculEd2nb4qMEuOT0JVwMK4XBLiu86c84neTTt+LqYVwzFlgQHxyZ/DVM2Sz4jYj8B7yONMSR8E2rZtq3/gbd++PckKAygbqlWrJvmUX2xmkeMXLP/DBb0s/7NJ/d+O6x5lzym5956yRT1lvWp0sQo8aJvdxr4fZ187e08u6W35Ljh0MkS7fiBzTXxSWFlbVVLKmIDLt7SCY/WeQG1hEF/Gmfja47nEEfj222+1wsD+Kn9/fx28FNlUWrZsyVgy9oD4OkECXbt21Z+bF198UfCYPHmytG7dOsHrWIEESCDpBOiSkHR2vDIZBLo0taRRxE7VzFWn4mypRmmLKSvSFsLF4MlGJWM8oGhIjLi6vV0nLGayLz1SVppX8xGkYrugXCfiksIFLGazy3cGxFXFqXITnyBYmd3uOmUZA57xGlKtVOZZUDkFxK7SxYsXdRrAOiqFEyV9EEDKx9KlS8uhQ4eSPCD4rqbnwIfOTOz8pRuCtLKQKOXPtEYtZCFlowOXptT/tqvuPZ2bltIxZS6oFJIfLjksiNtiK4gxkxhx9p5s6iGQ5Dd/nVSxXeK34GqvgjJOer6WTH+1jh4vLK9m/X06MUNj3SQSQDT83bt3y/79+2OkqEUq22bNmukFHnzQEYgWKW4pJJBYAvfdd592UcuTJ49WRC9dujSxTbA+CZBAIgjQwiARsFjVdQTgb9q1dRmZ/9dp+Xr5cflJmY5WVEH6kG4MWQgQ5BCCoIjt1Q/UpRvOyggVTHDcwsMqungBHfsg4vZdmfla4haEzrY3eO4+uXkryjrh12bs1sfvPVNZB2M0JyooFwBkbBgx74A0Ub7IASrSOVwq4Ld7Ru0c9py8XYZ3qSrloxUbzVQGhPkq7sKcP0/Jr5sC9JyvqvkO6FBR6pQtoIMyfmaT1QFpwCCD5+yRHCqAnJ/K2T5I1a2k+oVVAwJCvjRlu2A3DUEgIYi8Xik6roEuyIJ/Lly4IFig4scEJf0QKFy4sISFWaxg0s+oYh/JCfX/+5ZKWwq5Gu0ahf/bpZvP67KJajFq/q91gZN/sODtMGaj1CiXTw6duSbX1P8/pGfL0vrZ2f9tZ+9RulH1J6F7j6mX0DNitzzftpzMXHZcm/z/ufWC3skXtf1w5HSYlFAuF/MHNUioGet5Z+/JCLL4sMqqs3JLgMz+46TMXXlKalcqqDNRXFLuCtNeuU+KF7RYIVgbVwf5c7vLK+0ryNRfjsq3K05I+/rFpGh0rBfbejx2HYFChQrJs88+KwsWLJBKlSpZG16/HrYpIv/8849OjYfMJ0iVWqOGJSiwtSIPSMAJAlAaIEbRK6+8ojMwXL9+XWB9QCEBEnA9AVoYuJ4pW3SSwBsqGwCCByLVFnbGtx4MsuYm97NZ8A7pWEn6qWBVSJOIBTTqIU3XnuPB1rSKCX2Qs9sENnCmvX93XdLpGc1Utqk+8Qi9aVnAm/IhT1aU+ipFYui1CFm26ZwcOBkqbz5ZWfIr82IsDJChITD0XpT0fg+Xkw7NSmmFgpkzfHcRzBFyWbVj+sKzkd1HgnX5P/ssu5Eon9Kntu4bx0ZZUK+Kt3ymyo0khou5JjM8w9zVBGfLDPPJLHO4q/4n3N2Trqf28kq9lHi3bkdJQOAN/YCFEwTP1jJ1HmLiEdjcYnTAQ9t7jq4Y/QcpUKH0xD0MygIoF3EfLKNiAxhx5n/b2XuUaTOhe4+p58xzn9Z+Mlkt0IsphS6YIMsD7lGQQvksVlSJufc4c09G28OfqSq9lTUXmOH+CuUs+sV7ck5ZPECyx+Kq0K15aa1UxTVjFx/W9fgnZQlAYYDAsyEhFgs49Ib4BvXq1RNvb2+tMGjSpImsWrUqZQfC1jM1gdq1a8v06dPF19dXWxwgfSOFBEjA9QSyqR9wibMfdP0Y2CIJaJ9UmPLnzpldCubNaf0Rbo/mmtr1DwoJlxw5suuo2Mn1R3VVezAtDlKKAbNzFaYUC9nVSiKHe3b149bR1xZmvLBGgDVv3lxu1owL9vN15jVMgC8q6wL0HVtfzrSR3urA7PzRRx+V06eTZkIMU1iYxR45ciS9TS1Lj6d9+/ZSuXJl+VgFrEqKwCVhwIABSY6BkJQ+XXXNvjOh8sKn2wQKgx+HNhIETA1RsVpi2xU3fabE/7Yr7z0YJ+5huP/kzeWuU8iasSf12dl7crCKAxOiXDs8PLJJEaWk8FD3WkraE3j11VelWLFi8v7778tjjz2mI9oXKFBA/vjjD70LjBS3xtKgd+/e6v3zYBaFtH/bMvwI8J2PwLr4POFzh+8JCgmQgOsI8BvWdSzZUjIIYKELk1OYu5odu9iaw+IacQJKKNPT5CoL0L6r2kMKNaMsQLsIQIaYC3Et4DF238K59a6iSc+I65Ii6ANmvXH1lZQ20/oaBLZbsWJFkocBX9mcOS07nUluhBe6nMCtW2phqdIrJlVGjBihgx4m9fr0dF1udX+IT1mAsabE/7Yr7z0YI+7XmIezQRdxTXzi7D25YB4P/V1Q0lvd+6gsiA9pmp3r2bOnBATci9fTqlUrrQTGLvCiRYtk9erV0qZNmzQbHzvOPASQlQOfK+yBwpJl7NixmWdynAkJpAMCVBikgzeBQyABEnAkAKVBUiVXrlwCtwRK+iKQXIVBZsuQkL7eHY6GBJJPALFjjGCn11bgcw4roXHjxsnbb78tLVq0EMQxoJCAKwhUrVpVvvjiC7lx44bs2bMn3ixJx44dc0WXbIMEsgyBe3f2LDNlTpQESCCzE7h69Wpmn2KGnF9ERESmSomYmDcht4ebjtdSotC9WAWJuZ51SSAjEPj888+1OwLGiqCzcCuDOwIE8UvgjgRXMWRLmTNnTpa9H2gg/ONyAlWqVNFKg9DQUP3Z69+/vyDNsr3APW7mzJn2xXxNAiQQBwEqDOIAw2ISIIG0JZCc9HnwY2TQw7R9/2LrHQqD5Lgk4DOBH4IZUZAC9o/RTeWzF2tlxOFzzCTgMgJwF/P09HRZe2yIBGwJIDMHFFf4vkHQzb59+8qZM2dsq8gTTzwhs2bNilHGFyRAAnEToMIgbjY8QwIkkEYETNDDpHYfHh6u0yom9frkXLd48WLtS/nLL79IcLAlcnxy2ovv2tdff1327t0bo8rTTz8tLVu2FOQ5T2+C98Xf3z/Jwxo1apQkR5GU5I55IQmQQJKD0BIdCaQ2gYoVK8ro0aMF8YygZB4yZEiMeBqvvfaa3Lp5UxYuXJjaQ2N/JJAhCVBhkCHfNg46IQKIQL58xwX58KfD8tbsmAuqhK5N6/ND5+3X4162I0BHUk/r8aRF/8ndRcauwp07d9Ji6HrXIiwsTHbu3ClNmzaVc+fOpdg4zp49K4gLYCvz58+XTp06pbiywrZPZ48RkAp+zBTnCfBe5jwr1kwZAj///LM0btxYmjdvLufPn0+ZTtgqCbiYAGIaTJ06VVsaFCxYUGdROHnypO6lVKlS0lil9ZwyZYqLe2VzJJA5CVBhkDnf1yw9q7MqH/eT4zfLqO/2y9INZ+Ww/z0TZiQRvRVxRyIiYy4mkWoM5UiP6AqBoqL35zvktMoPnljZfzJEj3v0dwf0PM4EWfKLJ7adrFwfi+i0zBj75JNP6t0NPC/9P3tXAV9l9YbfdcNYwBgxOqSklG6QEDBBUqT0LxgIChhYKA2KCSggISIYoJSSIo2kdI8aG2zEOv/nOeNc73q7+d173/fHx1cnn+/u+855zhurVskQTxhsL1y4UIYEVKv/f//9N0EjACEgVaixRYsWUYMGDWjYsGF04sQJ+RhhawlbTGgO9O/fn1599VXd44Vn6CZNmtCMGTOkrSbMMWArnF1yqyt7GnOeg8DB5u7ubs5q7KpsfpfZ1eO0uc4sW7ZMvnPGjBlDERERMvLMxo0bba4f3GDHRaBixYrSPAFEV1hYGL3wwguEEIwQhP68deuWJBUcFyHuOSNQOASYMCgcTpzKRhBADO9nJu2maBEXvHyIL816oR6tEDHPlazad41aj91CLV/fQucj4tRlWrQlXF7/ZY9pVk8OnImh4+dv052EonvqXz72YdlutB/96CPIj3sJOZ326BrPBzkQiIuLIxcXl1ydHeVIbKYL0dHRcsJfuXJlOZmHPSU0AhYsWEArV66Utb755pvSk/OECRPo448/ltf69u1LW7ZskeHGJk+eLK9B4yIgIEBucNb0559/6lqNARFimyNEWXbzBF0icZBbXfr3zX2MqBUgDKxJ5Ji7j6Ysn99lpkSTyyosAtCOAkHZTKy+4v0D8tHf319m79ChAw0cOLCwRXE6RkATCIAogE8DOOCsW7cu/e9//6PFixdT6dKlJWHPvgw08Zi4ERpHgAkDjT8gbl7REFi0NZxS0tKpQmlfWjq6MTWrHkSId65EX4Ng8bZwdVk4yNMdWv0A7UW70X70A/1ZtPWS1dtlyQYgfJ7+KnpR64aGAcJ7paWlFTWrSdJDE6Br165SU6B9+/ayLVhZR8xxqEnCazjik2MAAztLbNAmwGAdJgUgDaBKiXjSSoKCgqSjsPLly6tLco9BfGBgIDVs2JAOHjyY5Z46yasudd8Se3iqNpYsGDx4MBkTbtMS/TRVHfwuMxWSXE5hEEBkGbxzoAkFbSWYIMDOGzbg+Nv19vamL7/8sjBFcRpGQDMIQFPvn3/+IZggIORiVFQUgWSHKQK0+j766CP5+x41apRm2swNYQS0iAATBlp8KtwmgxCANcH3Gy/KvKMeq0rurvn/vDfsuS7NEAqqDDbEp6/F5utPAKYOF2/E0817SQUVJ80hTl+PpTvx+WsNoP3oB2TZpnCTmUsU2EANJChWrJhU4ze0KVjNdhUaBtYiDKABsHv3bho/fnwW8wBM7JVgdaNSpUr0+uuvS8dLCDWGFXioSUIVeO7cuSppvntoUkADYfv27XJVEIlRT2RkpMyHMnOry8/PL99yTX0T7YCAvDBUELMdvw17F36X2fsT1lb/oEkA4nH27NmSkIO2Ekyf5syZQ6GhofI9ChKThRGwJQSOHDlCN27ckAR8/QcfpBUrVkjnhwnC2SG+Jfj2btiwQf72twqtPhZGgBHIG4Gchq55p+U7jICmEYi6kyhX4708XKlJtYB82xrg7ynV/X8XjgWfalpGrHzmTB4Tl0Kj5x+hY8K0QEmtSv4047m6VMLXTV2izUcj6e0F/1La/UIeqhmku6d/cFeYFYxfdJT2n4zWXQ4t6UOfDK1LYcG5x2ZHP3x93Ck2Lpmi7iZRiGg3S8EISKJAqI1YizDI7kOgc+fOUpugV69eNHPmTGrTpo3sBMiBadOmyXtYOV+yZAn16NGDHn30UbkKgok/bC7h8VmFiVR7FAAtitGjR0u/AHB0iBjUEKgTY7WwVq1a9Pzzz0v/B7nVJRNb6D9oF6DtISEhFqrRdqvhd5ntPjtbajnUtPHOgXTr1k1qFAQHB9PJkyelhhfePwiDCgIWoelYGAFbQgDmB6tXr6YzZ87Q1KlTJQkPLQNo46lITCDL4B8I2nzPPfecNBm0pT5yWxkBSyHAhIGlkOZ6zI7A1ZhMb/FlS+Y++dZvQNdGIWLV/hItEb4LQBjkJi/PPUSn7ztMLFfKhy7fiJPkwcvzDtHiUY1llmuizvHzM6MwPCDIhPS0DNp74ia55GLj8Oo3h3XkQ42w4nTuyj26FhlHL3x5kNZMaE7OeZhFlA7wpDOCMLgancCEQW4PKpdrmJxisAs/ApZeSYe5QXbJ7RrStGvXTm7wuYDY5BAM4hF+EOcYqEODAMQAZMSIEXKvnDYtX76ckBer7vpEAtQvMQCKj4+XA35kyq0uWZiF/kMfjDVJsFBTrV4Nv8us/ggcogHwVdC7d29CeFaluQMzKZiDeXl5SfISJlIgPEEksDACtogACHf81mGqiDCK8CN0+fJlunjhAnXs1EkSCfhm7t+/3xa7x21mBCyCQP462xZpAlfCCJgGgasiOgKkZImCV+F9PF2pQ+MQui6iGBy//F8UBdWSk2Iyr8iCRa8/TCuF40TsIbh+QtyHfLcl07dAvSolaMFLDem7VxvR5yMa6LQNZCLxH0waoKkAImH9xFYy3ZYpbSjovqbD3jP/aR2oPGqv+nPlViYhoq7b8x7OATGQNVQwyb4lbG9tZZDr4+OTxXRBkQeIeKDIgtywgCZD8eLFs5AFKh3yYXUwu2SvK/t9c53n14/C1gltCph62Lvwu8zen7A2+geV7bfeektHFsCMCeQBiD1oOeEcJkRQ3WZhBGwdAU9PTxo0aBBt27aNpk+fTqWEthvMFOC/Az6GYDaHiCAsjAAjkBMBJgxyYsJXbBQB1/tL9On3TQMK6kb/1pnO4xZvu5wj6clrmYQATBeqh2ZOurDHOeTU/fvnr2VGWmhZ+z8zhIaVS5CbS9Y/reNXMkmJyuX86IbQSgAhcU74MXhAaBpAzgvthbxE9cctLxWEvDLa8HUQBsZMDPHxTxGOujiEn3Z+BHgWIHKMEfwudu3aZUwRNpGX32U28ZjsqpEIm/jKK69IraTq1atL8wT4RekkVmCx+srCCNgTAjDhg+YfNA/gbPjAgQPytw8TBhZGgBHIiUDWWU3O+3yFEWAEGAFGgBFgBBgBRoARYAQYAUaAEWAEHBAB9mHggA/dXrscet8UIaKQqvvVhMYAfBNsO3CDSrfPtB9X2Ny8mywPK4Vk9YdQWYQ5jL6dSFF3Mu/DESEEZSmBIkBIkJf0eaCuqfJgzvDsjL3qsm5/LyFFd5z9IDI60xQhVPgyYCkcArC/hcPD7M4HC5ebU5kDATwLaBggRBtL/gjwuyx/fPiuaRHA3yRME+AcbsCAAVLT4I8//pDOWFetWmXayrg0RkBDCCA6yJ49e+jFF1+Ufg0QVYGFEWAEciLAhEFOTPiKjSIQGuAlW379ZoKMepCL38EcPevXtjxN/uEErd0TkeVecPFMAuHc1aymAmfv+y4ILu4u05fwc5d+EC5GxtPDVfOOzFA2MHOyjwgOLz1WJUtdOKlfwT/HNVyAdcXVqEzfDGXu9y/XhHwxCwKw0zeFzXyWQvnEaATgkwFxsFnyR4DfZfnjw3dNiwD8Fpw/f16GUoRZAgQhYRs0aJCrHxTT1s6lMQLWRQDjhfnz5xMcfIIwY2EEGIGcCLBJQk5M+IqNIhBUzIMwIU9MTqVtxws3KXm0YYj0NxBzL1NTQHW9ZtnMGPW4fujiHXkZe5XugbKZseArCQ0FyNajUZSG4OlCEI7xmiAQ9KV2+UxfBQlJqeTj4UJPNimTZasUklmOfh4c/yX6gf6gX+ifowhsZps0aWJwdy0dGcHghjpYRjidgr2ooYLQk02bNjU0u83k43eZzTwqm28oHBoePHhQ+ipAdAQIIq/ExMTQRx99ZPP94w4wAoVBANpvTBYUBilO46gIsIaBoz55O+w3NAoGdqxAc34/S5+sOksPVQkgbzE5z0/cXJ2pa9NQWvX3lSzJqgnTg1oiTCIiGzz/6X4ZzeCmMEWAIHyiMkEY1K48/b7rKh04FU2dJvxNNcr50r/n7+aIklA20It6tigr63l30TGa9MMpqltZhGHMSKfklAyaN7JBlvpxEp+URrNEPyDoV2E0JmRiO/gPhAFCBhoqJUqUkB6PDc3P+cyDAKI2GKNh8O6775qnYRorld9lGnsgdtqcd955h3bu3Em9evWi1157TdfLmTNnUmhoKCEcHQsjwAgwAowAI8AaBvwbsCsE+rQsS57urtJMoM+0PfTn4RsUE5vTP8D9sPay7/1alcsVg0+H1qPGNTOjHyiyoFGNAJotrispF+RNEwfVlloKsXHJtP9kNFUq60sNquc0Txj7eDV6sWdV2T5oDew9cVOmP3IuRhAHqsRMDQW0G+1H2Ef05xlBNrAUHoFbt25RcnKmn4nC5+KU5kYgJSVFrmaaux57KJ/fZfbwFLXbh0mTJtGff/5J8BavTxagxSASRo4cqd3Gc8sYAUaAEWAELIqAk4i3qzdVsWjdXBkjYBYEou4k0dDP/qGIW5m2/0EiFOKad5sbXFdKWgbdENoFpUQ5bi5CjSEPQRo/Lzep1QDtAGexTOjpnjsnF5uYRjdFO93F/ZLCX4IKo4aiu72/gxRBESI0E+a91FCmyaNavpwLAidOnJBxxM+dO5fLXb5kLQTatWtHrVu3JkfRFDAWZ36XGYsg588NAWgQLF68mPr06UNvvPFGbkn4GiPACDACjAAjoEOATRJ0UPCBvSAAh4UrxjWhv8UKPvwORN/NqWFQlL6CJIBJQUECQkFJQaYQvp4u5OuZNQKDylu/SgkKKOZGD1YoTi2EhoO7MJtwNLly5Yp0QjRhwgSDul6sWDHpkf/69etUunRpg8rgTKZHAOYIxqg5z5o1ix555BGCLwNHEH6XOcJTtmwfEXcezt26d+/OZIFloefa7ASBkydP0o8//igjKwQFZWqhQqNx6tSphKgLxvhfshOIuBt2iABrGNjhQ+UuMQK2jsDu3bupd+/eMqyXoX2pUaMGzZgxg7p162ZoEZzPhAhcvnyZOnbsSOvXr6cKFSoYVDJ+ExiMjRo1yqD8nIkRcGQEli5dStOnTaPHHn+ctXwc+YfAfTcKAZADrVq1osfF39HYsWNlWSAQ4EB0//79FBwcbFT5nJkR0CICrGGgxafCbWIEGAGjEahWrRqtXLmSCQOjkTRNAUuWLJEh2gwlC0zTCi6FEXBMBPAunDx5MvXo0YPJAsf8CXCvTYSAu7s7jR49msaMGUPDhw8nRGWCmQ/Ckyqy4Nq1a5Icd3V1lWOQwMBAXe03b96kzZs3EzQgU1NTqVy5ctLxqC4BHzACGkSACQMNPhRuEiPACBiPQL9+/aTzrtjYWI4lbjycRpeACUuXLl2MLocLYAQYgaIhsG7dOnr77bepbdu2HCqxaNBxakYgVwSgXfDZZ5/RwoULpcYcwgUPHTpUpo2OjpbadDgpWbKkHIcg6hO04xCutFOnTpSUlCRN6/z9/Y0KNZxr4/giI2AGBJgwMAOoXCQjwAgYj0CZMmWMKgTq63PnzpUrALDZZbEeApisILb7K6+8YnQj4J+ChRFgBAqHwF9//SX/7mCaBR8gLIwAI2A8AtAcgAnCuHHjCNoDL7zwAmHyD9m2bRt5eHjIkKWenp5S82Dt2rWSMLh48SIhihOilPTt29f4hnAJjICFEGAfBhYCmqthBBgByyNw6dIl6ty5M8E7/6effkr4yLNYDoG0tDTpCOqnn36SAyq1AmNoC+AMs2xZDjFqKH6cz7EQ2LVrFw0aNEiudn7++eeO1XnuLSNgZgTwfYMTXpgW7NmzR6fJCNOEHTt26JwfImoT0oK8w/7ZZ5+l7du3S6IB+Z9//nmD/fqYuYtcPCOgQ4BHzzoo+IARYATsDYGwsDD68ssvpTfjli1b0uDBg6lr165krPaCveFk6v5gAAU16O+++46cnJykDaexZAHayGSBqZ8Ul2evCPz777/yvdesWTNissBenzL3y5oIuLi4yDDBZ8+e1ZEFaA+0C2ByABMgZ2dnat++PXl7Z0bFQh7480EekAwLFiygI0eO0Jo1a6zZFa6bESgQASYMCoSIEzACjIAtI4CP9qJFi+iDDz6QscdhpgAnReXLlyeot4Pxz8jI0G3p6enyGH1W19U1nENwHhERQV5eXnIggOu4pjakQbmqbFyHLwWkh2o+1BRxLXv5uAbR3+unw+BD3rvfDplW71i1T+1xHwMXDGD0r2ESr0QdY++M6/fvYWCDDXW6ubnJY2hoYIPTJ1zDhrJxDhtO7MPDw+nOnTsSW3iTfvHFF2nAgAGqOt4zAoyAmRGAZhXUnStXriwnJGaujotnBBgBPQSg0bhixQo6deqUJMt9fX3Jx8dHpoB/g3PnzlFAQAAhkhMWL7Zu3Sq/6/jWsjACWkWACQOtPhluFyPgwAjcvXuXoE4LdT1TSOPGjem3336TtoX//PMPQUUQzocwscWkV32oMWnW3zBhViIn1OKDjrQ4VpPlEiVKyGu4rjY10dbfg2CAN+SrV68SNB8w8c4tvcqT/T7acfv2belESb+NuK7O1TH2KBty6NAhatCggUwjL9z/TxEIICD0CQqQHBeFnWWpUqUoJSWFEhMTJekA4gEbzkEEYFPHIEMwEEJM6rp161L16tWpZs2aMvSUPob69RtyvGHDBqpVqxZrGhgCHudxCATggR0O2erVqycJUofoNHeSEdAQAtBifPPNN2n27Nk0b9482TL473nttddk2MVhw4bpWgv/B0invte6G3zACGgMAfZhoLEHws1hBBgBot27d0sHXfAsbAuCCbeaWEdFRWVRT8yr/SAQQkJC8rotr0O1HysQICfU6j6OMQk35UQ830Zo6CYcWcLT9KhRozTUKm4KI6ANBOLj46WKdKVKlchW3p3aQI5bwQiYBwEsSoCcL168uI60h5ah0jSEtiMIfxZGQOsIsIaB1p8Qt48RYARMjgBiH2NFHJN2TPahbYBzrODjA4/9yZMnCdoDamUdK+rqGJN3pMEKPDasymMCD5V8rBTgvlrBV43Pfg5VfpAMEP0Bg3462D1iYIH2op2oR+2RD3WiPuxRBvZQfURb0QZ1DddxrtLiGBuuozzkUaSEMjfAHm1UJgfqGOYUOIZ5BY6x4RgYwks0ysGqSWhoKJrIYgMI9Jy4k55qWZYGtC5vA621nyZuWb2K5i5YSGeFCUGocOY5Vnhch88BQwW20jCzYrLAUAQ5HyNgWgRAFGQXfG+ViUL2e3zOCGgVASYMtPpkuF2MACNgUgTOnz8vHSDC1OHGjRtyQq8m1GoCrSbNmBBjMg/TCHUNE2hMjnGOiTvsg3GM69gw+YZgrwgA7NWGybo6zu2+/j11P7c8ChQQC2iHIhEUkQAiAxN4dQ97EA5qj3Q4V9dgTgAiRBET+vcUGYI8OFZ5VV3Z60bbgB0wAHnw9NNP05AhQ3QOn1TbeW99BCYsO04b90dQ1yah1KZeSSYLLPxIprz3Li38YTmVE6Y/9atWpaPCrnmIcMo6YuRIGim2okqrVq0oODiYVq9eXdSsnJ4RYAQYAUaAEcgXASYM8oWHbzICWRH44MeTtHbXNWrfsBR1ql+SSgd4UbXSvlkT8ZnmEECM5M2bN8tV7y5dukhHRNWqVWOW3wxP6qLwf3DgwAFatWoVLVy4UK52wtHkAw88YJLasILKYhgCxy/fpe+3X6XthyMpMTlVFrJm51VB8DjTqp3XyMfbjcoGe1PLWkHUTbzfSvi6GVYR58oXgVEi7Nqq33+ntwRB0K9LZ13a9+bMpc8++4wSEhJkjHfdjQIO2rRpI99lTBYUABTfZgQYAUaAETAIAfZhYBBsnMnREBi18BjtPByRuUIsVnYxwHZ1E3bkzk5i5Tadalbyp97NxUpdrWBHg8Ys/TWV00Oslnfo0EGq6E+cOJHgvZjFcgiAOIDzJ2h0bNmyRWodGFM7fFuAeGDSoOgo/nYgiiZ/f4wyhLaIXzFPqlO9FFUIDSBPdxdJHty6HU/Xo2Lp2o27FB0TJyt4oHIJ+l/nClS/on/RK+QcuSIw9o03aK0IofaF2D9UKyeJtnTdepokiLYhQ4fS+PHjcy1D/yLMEKD9gxjvLIwAI8AIMAKMgDkQYMLAHKhymXaDwF8nb9OUFScoKTmd7sUmUsM6ZemRppVk/6LvJtH1m/fo4rXbdP7SLUoVxIGXpyt1a16BnmoSQiG+znaDg612BN7CEe5v48aNttoFu2j3o48+Kvvxu1hVZbEsAr8fuEEbD0fT4TM35fupc6vqFFbKL99GiFcZHTx1nXYdCJfvtc4PhdC4x6vlm4dvFozAE+J9dFr4RpkvzBHqCpOmvGT4x5Nop4jNPmXKFHryySfzSiajkMBsaasIy8bCCDAC2kHgrbfeoieeeIIaNmyonUZxSxgBIxBgwsAI8Dir/SJw8UY8vbbwKEXdTCBfP0+q/0Ao1ataUq7G5dXrvceu0bnLMRR+OVrYbLvTjGH1qF5Y/gPzvMri68YjgMkpwhj98ccfVKFCBeML5BIMRgD+IBBucdKkSflOgAyugDPmQCDydiJNW3WO/r14R/inSKFmjcKoaZ0yOdIVdGHL/kt06Pg1YWvvTV++UJ/8PP8LNVpQXr7/HwIdO3akeOETZc2smeI74v7fjTyOPl6wgJau3yAnHdOmTcuRCqZV8DuC9xt8q7AwAoyAdhDA3zuilcyZM0c7jeKWMAJGIMCEgRHgcVb7RGDMwn9p59FIMen3oIa1y1CzukUbZMclpdIvm07S1asx1LlpGZrwdHX7BErjvXrqqaekA76lS5dqvKWO0bz//e9/FB4eTmuEOrahAlMVNkcoGL1T12LpzUX/UkqaM6UJE4Se7WtSqRLeBWfMI8VpQYSu2niCypfyou9eaURurqw9lQdUuV5u07o1OQvzqLWffpLr/bwu9ho7jo4LnyCfff45gSBQgrCip06domXLlslwbeo67xkBRkAbCDzyyCMUFhZG8N/DwgjYAwL81beHp8h9MBkCgz7dT3tO3KJWD1eil/o+VGSyAA3x8XCl/l1rU4eWVWnLwUjqN2MvRcemmKyNjlAQbNV79+5tVFcRFhGkAYs2EIDjSUxy4FfCUBk2bBjht8GSNwIx4l0zdsG/dC8hjapXCqbhTzU0iixATdXKlaDeXevQ5Yh4emX+0bwr5ztZEIBmTYsWLchDXC0qWYCCfpwymZ5s15ZefeUVWrFiha7s/v3709q1a5ks0CHCB4yAthBQkY601SpuDSNgOAJMGBiOHee0MwT6z9xHV24l0kv9mhikupsdjoY1QmjYU40EWZBKfafvoQs3Mh2JZU/H56ZH4NatWzIsYvPmzU1fOJdoEAL16tUjhK9k52wGwVfoTG8sPk63Y5OpZaOK1OLBsoXOV1DC8sLvQY+OD9C/Z2/Tt5vDC0rO9wUCbYVmgbcIMbpqxnSD8Xj/+eephjCpmvDOO4QIJBC2i5Yw8H+MgGYRAGGA8MMsjIC9IKBpwgAfx59//lk69DFmVcrcD+vDDz+kb775xtzVcPlmRGDSz2fpkvBbMOypxuThZro/Cx8vVxr2dGNhs+pKI78+JFf9zNgNLvo+AlFRUZQholmULFmSMdEQAoGBgXT48GENtci+mvLznmt0JvwOtREaUnWrmD5iCzQNqgtfLt/9cYGSU3gwnN+vp5swIfAUZMFqI8gCVf7yjz+ixiI6SM/u3enatWvqMu8ZAUZAowiAMMAYhIURsBcETDczMjEimzZtotaCnYet3rPPPktwIHLs2DET12Ka4n744QeaNWtWnoXFx8dTbGxsnvf5hnURwDt93e6r1KR+efI0IVmgeuXiRNSrcz1KFAPst5eyOq/CxZx7OANzEYN1Fm0hAMKAJzzmeSYpaRn09e/nqXTJYlRfhEw0l3RrXoVEfFmavPq8uaqw+XKfEeZUURER0qTAVJ2Z++Z4ql6+PHXv1o2OHz9uqmK5HEaAETADAmySYAZQuUirIqBJwgDaBK+//noWYM6fP09du3aVkrUwswAAQABJREFUTn6y3NDICQgBtBuMIo6Tk5Nly3CM2O8PP/wwXbp0SSOt5WboI/Duj2fI1c2FWtQznfqufvk4hqbBY22r0aEzd+jY5bvZb/N5NgTKli1LTZo0yXa18KcINcaiPQRA4kD7w1CBTwr8NlhyIrBi5xVKTk2n1iIagjlFcAVUp1oIbTtw3ZzVGF325s2brUJOPSVCqR0VWjTfvf8e+Xl5Gd0P/QIWiTK9RYSF/n360JUrV/Rv8TEjwAhoCAEmDDT0MLgpJkFAc6NqTLDhTRs2yJANGzbQuXPndATCuHHj6ODBgybpvDGFgBy4ceMG7dy5U6c9AOdGFYStYa1atahq1ar09ddfi4UYMboSgn4NGjSIbZqMAd1MeXcfj6QHqppvRU41u3xoAPn7udHCTeHqEu/zQACTQmgXGSpJSUnEpIGh6JkvHwiD4sWLG1zB008/rWnCAI7orCU/77hKxUUI2NJBvmZvQosHy1NCQgoduXzP7HUZWsGSJUuoVatW1KxZM3rppZfowIEDhhZV6Hz9+valY2L1f6TQMKgYGlrofEVJ+OcXn1ONsPLURXhhP3LkSFGyclpGgBGwEAIYf7BJgoXA5mosgoCmCANMqgcMGCDjCqP3iKGOiTccZY0cOZKmTp0qQcF1TAjMLVBrBiHw6aef0vjx43Uf5+XLl1PlypXpoYceoj6C6Vdy/Xrmigucew0cOFBqFfj4+NCWLVvoyy+/pO7C/jAtLU0l570BCGAA+IrwGP3rr78akDtnltPC6/fdu0nUuqF5V+VUzbWFqvDh87fVqWb3iDAArR5blZSUFB1ZZ6t9sMd2YwBlr4OoJ8TKMjTjatasKSN8rFq1ymKP8Mz1OOEfJZUqhQVapE5vTxfyE+TEqj3a1TKYP38+/fnnn9JBIPxmIMIGzBxnzJhBR4+a3jSsS+fOdP7MGfrmrbfoue6PmvU5zJ8wgZrXrSPHH9u2bTNrXVw4I8AIFB0BaBnfuXOn6Bk5ByOgUQRctdSuDz74QK4CwM71999/p9BsDD3CrMEJIsJq7dixQ6r6Y6UfNrFIC2KhMHLz5k366quvZBmlSpWiTp06yQ+vYgRRx8qVKyVZoF9eQkICffLJJ7Rv3z7dZbRVaUOASGjUqFGOdngJtcRuwu4Qm75gUrZ3716pQQHnbPDTUK1aNf0k0sxB9ev06dOSTGnbtq3UYsiS0AFOEIMdaur79++n1atXE34vWD16/PHHJTnj61v0lbWf90SQt7c7ubtmaoKYG8aw0ED6e/8ViryTRCWLe5i7OoPLX7BggfwbKFGihO7vo06dOgaXZ+mMIB9ZGAFLIoDvBmTNmjX0/fff09ixY2mCmNh16NBB7o3RrCioHyeu3CV3YVYV5O9dUFKT3Q8O8KFTGjevqlixIn322Wd07949GZ3ju+++IxAJy5Ytkw5Re/XqRY8++igFBQUZjAv8CYAoihbjil+nTaUSfn4Gl1WUjJ+MHk3vCC3Gl4X2xC+CQK9UqVJRsps1LcZkGFspPzJYfMFYDYLxkLswq2BhBOwZASxqenhod4xnz9hz38yDgJNY7dGEG098YJo2bSp7idXj+vXr59pjfOzff/99+YGG1gFW7qdMmaI718/0999/ywgLb7/9tu4yJuhQa80ur776qlSB/umnn6Rmg7oPMgETdAwoMGEqXbq0ZA1hKoHQRtA0wIQV6o5QD8xrUIgBi9/9gURkZCR9/PHH9Msvv6hqdHtoLXz++efyY7t+/Xp6XoRU+vHHHwkTNxAKEEyMEZoMZIWjCuygsXr07bffUoRwLgXce/ToQY8INc28fju5YTXw04OUJMYxfbvWzu22ya/di0+heT/uo1kv1KMGFf1NXr4pCzx79izNnTuXNm7cKNX7Q0JCJLYwFQgICDBlVTnKwiAcccfffffdHPcKc+GPP/6Qf89adZRamD7YYxqswpcrV05qbRnSP7z78f5+QHiMtwXB3w8mp+Hh4fJ7Ae04Y3xz5NXneX9epN/23qB2TaoIVfhieSUz6fWt/4TTqfMRtHaC4aFL8R6H2V5MTAzh/YIBtrknkyD4YS6IsUC48CuULLSRQDw/99xzcl8UkGAeiXfUVeFPYMe335BQISxKdpOkffyNsZTh5kZrhDmMmqAbUzAIr3/++SdHEfjtFoaUPyO0LECSjRkzRpqCoKAnn3xSEv04xt8wzDP1BQQvCDeMofB+wHe8Ro0a+kn4mBGwKQQwL/D39ycsvrAwAvaAQOGW5C3Q03///VfWApOE7BM+hCxctGiRDF2IiAMQNflWq/258R7z5s2ThMGQIUPkRB8r9IoswAcLG1QTYd8I7QBMhNzEh1cJTAtAJMAngb5gcoqVCSVq8nT79u1cCQNMWuCwUREh0JRQ6t6o44033pAkBIiBrVu3UhcRjglkAtSqITCL0CcX8HGFhgUmyIZKdsdjOAcpgsGb8rug9qgDfVP9zJ4G51hBUIMJdT+3PUwyoDGR/V5R+xEcHEx9hb0oNjw7qJwuXLhQruzheT3zzDPUs2fPAouNvptAFcubPvxYXhW7iJAJcGsRfS/TKWZe6bRwvUqVKjozIAzmgDP22KDa279//yIPsAvbLxByxngC14pJAv5u4etECd4/5iL6sIIHkrRNmzaqOs3toaJpzKQGvwloGhkiePdAiwzvHnML4m9jg8kavmkgf6F10K9fP/keVdfxHjOFIEJCmthcXS1nZVhCmCQkJBg3QZ4zZ47UmgMOFy5ckFBAlRffYfgxuXr1qvyu4Lnhd4NvB3D19PSUx+o6tAZBOKjniz22y5cvU3kRWQCinjvIG1zD987b21v+fUKtXxGj+Jaob5nMmM9/IPfhfHDVvLlWIQvQtF+mTqG6fftJ4mLixIn5tLZwt6DBCdIA5n/6ojQE9K/ldoznNnToULnQou6D2Ed+fDeyC1ZiH3vsMYJJJ8Y+69atk0Q1yBhzk0fZ28LnjAAjwAgwArkjoBnCIDo6WrYQH/Dsgg8IIgzgI6TU/7G6D7l48aLcwxRAX/ARx+QbUqxY5ooLVNghGAzAhAEmAdAogEBzAIJJOCYbH330kZyEYqKPVTHYzVeoUEGmyf4fBiaQvPwTJCYmyvtQpdcnQ9qIgT0GTBj8QGCygEkvViygRgltAwjMICCItoBJ2uDBg2WISWMIAziShANJNXEHEwpSAKLIF+yxIY06lgn0/sPgTf8ejiHZ90gHfKCRgbrV/fuJZZguHKOuCgJnDOpwrLDV38N8Q/0OVB7cx4ARxAVIpD179khNEag/QjMjr7CXCYlpFFjctJ6sZZ/y+C8xKY1cxKA+ycZimONvABvILwysYZ8Nm2BovrRv317+dvFs8YzxfKwtanJo7XZgwItJC36PmDjiN20ugRYTQtBqORoLSEf8nVpD3nnnHWlmg+8BSAf1TtF/Juqaah/O8e7KTXBd/z7KxTsU7zaUiQ3kEK4hHTZ8e0Ca4P2ODaup0BYzVop7u1JaumX9Q7i7G+/UC9p/mKCDIIDvB3wLQQwoXPH+xvtE4QnsQBqocYL6/uCbjUUEnGPD3786himhuobrmKCCiMD+ttBsiBf3FTmPukHIF4YwwHcGk+taQtslGH/X9799xj5LQ/KPEeOCrwQ5OWLECN1YxpByVB6Mp9S4Q13DHu+YxYsXy+fVuHFjwoKH/t8P7uH3HxYWloUYxPgiL4FWCcYi0OCEGQPelViQwWKOGufllZevMwJaRkD/b0PL7eS2MQKFQUAzhAE+MBD4DoCpgZrk4xpCEmKyrQbC+JjVrp2pQq5Wq/Q/SBgUKFVmpIPjQXx8tm/fLgdwmGzCJEBf9M0WoD4Hu0asqOKjqVZVMWF6+eWXCXaRuQkGIErgIwEfP+TBpAoCDQeIGuzA7lGRBfKG+E+pq6Kv+vVgMIXVDKTHYObQoUMqi0F7qPNjMIuBFASkBnCC4IOvNnUOfKE2iusqj7qHaxjU6a+k4lp2ASkD0xN9sw39dOoYq0Voi3rZYq/u4RjPT/l1UHWotBg0oq0wUwB5gAFOdjJJ5cEeg2w3YftrKbmXkCz8JYjJgwnmjSC18DsBFugvVunw96AGx9hjwwAYkxasqOnfA6ZY9cEgHAN2NUhXafB3BI0eXIfoX1fH0EyB9g+ILqRDKDMtCNqOyYa1BSQgfpP428FkHvLiiy/KlTNcw6rq8OHDCeEC8c4BoYgBM7SdoNIITaTp06fLdweix+DdpLStsFq9dOlSOdAGmYr7ELUyiPcXBKuOeP/h7wbvJXVf3rTwf/g7xbOxhkClGqrS+N1jwlimTBn5jsE5JpV4N8HJLkS9c3ANK6bq/YM9VsCRXn2jcA0b/sbwbkP/cI6/LRxjj78XfB9guobvENLi3j0DtSWy41c+2JtS08VkOFnYV1lIkgXp6Sw0powVmB5ZUmbPnk2nTp2inUJLTzxoSWBBIw2r3GrhoDDtwfcd35o2YnwiHnBhspgtTd/Oj9BU8R42998W3ln4/eK9j/cK/p6gPQDBb1y9/7HH9wnjlsIIyoHgmw0iDeNBNkkoDHKcRssI4DvAwgjYCwKaIQzAVuMjgQlQG7HyDvs3TPQwOMv+R4cVdiVguGEzB+0B+DdAegwMsQoKgQYCBmrKJg/EQPPmzeUKKeqqUKGCVIPDoFAJysDKICIdQHUUasUzZ87UEQc//PCDzt8C8qgVMwwCIZh8T548WaprgzBQKsj40ELU6gVU8BTxgesYnL4lPCxDEFFBEQxIjwmZmtADF2hPYFVE34RCZizkf1htsxfBIAMmGrBbh2opBuiYHGMC9sILL8jfVV59dRMD3ngRHsxScut2vHSwWNzH+D892HFjdQ6DRGjoYI/fLSbuIA6w4RiEAogmTGbUNexxHffxO8TAF79TdR17bND0wO8bK8NIr67jbxJmA/gbAlmB3yFWivRJLmMwRd+MMUlA+zCp06IAb7xb8C6CYzyYHIEIwHsM7z38ZqE9hN8vbODhzAxmU52FF3Zs0FQ4ceKEHJxjsgXiAIQd1IgbNGggo7Kg33hWMOeChgM0QtQE15qY4J2Fv1drCN4J0NKytHzxxRfSDw1ICvwdQhMHZmj6Zm3Gtql2uWLiO5dGd2IztdmMLa8w+W/GxJOPp/HvscLUZWwaYP/ee+/JkMwgUPEufEwQclCRB4GG92BRBWYNmOjOFqaPg9u0Lmp2k6Y/JzQq8feuxgjGFg7tS33zBryn8I5Hn+GTAwJ/AxinYIyFcRQwVPbaagGoqO0AUQpTBGiVmqovRW0Dp2cETIWAWsgyVXlcDiNgTQQ087XHZATOC8H0YyUMYQzzEky8VcQBqODBPhSDbn1GGsw2BohIC7Ybg3QITBWwMoBVvbwEDDfy4OOFASYGdpj442OIjyhW86DxoFYwlQo2Vu0xuUIYRkgbQXxA1EAdRAQEJARUGVEOJgWYrGFVERMGCFYKMaGA/wTIm2++qSMlcP7ggw9KwgBaBiBaHFXgtAomJcAdAmIFEyo4qoQTKwygCpJiPm50U0ziLSURN2MpUazMlQ3IaXpT1DZgBRqbJQVquCDDMKDEABF+DvB3ggmvKQVOr7AZKmgbVry0KjCJAsGCd5S+wLwDA3O8U0AY4r0GzSK8z7BhkA7nsOhfixYt5LtMkaNY/YPo/+5hUoV3INKibDgcUxpP+vVa6hjaVei3oaK0JgzNb6l80EpbsmQJwTcPNEyAP7TaQFabQ0r4ulFIoBedunCLGtXMNK8zRz36ZV69cZfKl7S+Fo9+m7IfwxQNhD9ITXyH8Z7CO1N/rJA9T1HO8fcErZGur42mtTNnFCWrSdM+89bb8u/bVH/bIFXUmAkNVYs2IAfgiwNmNEqjEhN8EAbGCuoECT1t2jSd3wljy+T8jIC1EGCywFrIc73mQkAzhAE6iIGwGiAjbB4+IGCqsWoJdUGoi8JhIBhurAzAQQ5W30AYYBKDUIxIg8k9PB5DtR172Ku2bNlSekZGDGbUk32ijckFBhVgtTHAw0BPOUuEEz0McrGqB0G7sHqpCANVFlTzlHoe2qVUkPHiwCQWK98QOOODNgFUi9FmJUiD1UO0FQJWHxMH9FlfQGBg5VCrK6j6bTXHMVYfEB0D6togCYAnJpfKnKModYaF+NDFSMOcqBWlHpX24pVo8nB3IagQ24pAYwYr3b/99hshwgc0EbCqjd8lVku1KPgbNrd6rjn6DU0RrEIDZwzCoTGACQnU5/H+0Z/oZCcb8LeADYN65IWAmEAoOazqw//JWuFJHc/OWoJ3LMhhexRo20C7DUQPvifwQbNQaIaBvLSEdGkUQgs2XLBEVbKOqOhYeqZFFYvVV9SKMPHEbx/fb2gfgtw0h0CDBETEY2Nep1+nTzNHFfmW2X7ESDlGystPT76Z87gJLUb0K7vAJBNjJPgcgDYbFj+KIhhHKX8R2fPhvQftzbp162a/xeeMACPACDACVkZAcyM3DIwnTZokt9ywwYcfE2ao7cLfASbrcByFj1v2Dxyuq9U3lAUP5VDhhb0wjjGgwyQeq3ZQZ4dmA8qGpgNsGWGGgEmpPtMOIgAr/ypiAMrFRBX5EOUAJgYYPGAyhQ+gEtgOK+eHIBBgx4wN9uNoA1YGsGqoL2gDtAuyCzCCKrq9Dryz91edw94bzx17PHesvCLkpTHSomYg7Tt5RqygSHNWY4oqMO/F63flSk2bOqUKTKuFBJs2bSIQbAiviN8yfucw/VHhT7XQxrzagMEsCAOsjFmT6ceAGiQoBOSn0oZRbVJ71Q/4b4FTUPzOMTAfNGiQNFPC5Ac+T/CemDBhgly9BjkAYgEOWSHQTEAYVpCpIHUQOg5RE7DSDcH7xNrPDu/k7H2WjbOD/0BagsTB84D2mKVlcLvytPCPC7T3xHV6yMxaBvuOR5CTeGc+3ayMpbtZ6Prw94LN3AI1ffgZeUH87T3xxlj6WUQtsISkiPdbxxdHkJ8wF8PfuDGaO4VtL943+J3DZAzEPQTfY5hjYjyi78cI5CDeZdC6VOYFICIwJgOJhvEWNG6URhTOQfDgHahvqlnYtnE6RkBLCNjrd05LGHNbLIuAkxhQi8++bQm0D2DTC9myZYvUMihMD7Dqg4n71KlTc00O8wAMMNTqHBLBuQ/MGPAxhN1jfgNeY3wK5NogvpgDAQzE33vvPemILMdNAy7cvJdCT07cSR1bVqU6lYMNKKHwWX7adJIuhkfTsrEPU5nA/8ikwpdguZQgBuBQD+YywBvaPJYU+C9ARAYVBrWodUNlFpNn+C5RTkaLWoYl00NbCNoDGGDjPQXCQ19AKhaWIERZIEtAKOD1Dsef0IYCoWBtgTo42oZ3uCGCVVT8JvR9zhhSjjnyQPMMmFtTxi89Tv+cjqERz2RG2DFXW75evpcaVPGnj/pnDTlsrvpsoVyMHWD+0L5xI/p09GizNjkSTlTfe59cxN+1/qKIKSqFfyNM/KFVll0QGhrfBkzu29w3udwq/CnBNANOd7EIkl3gZFKFOEZaEJ7QxoHg/aw0pWBiiXRwNG1pU7vsbeZzRsBYBLBwiDkDFjlZGAF7QMAmCQMADxtqfJxh648V96IITBTgMwCaA1g5BUEANTh9jYCilMdpbRuBQbP3U/S9VBryRGaoTnP0JlI4CPvu10P0WMvyNKZ7RXNUYdIyMcmEWr+1BBND+Pkw1GYdhAF8gWB1Hx9trYsiDKDRpFbctN5mQ9oHh7UgDLCSaIhAcws+MwwxPzKkPlvM02bcNqpTM5Q6PFTBLM3fsu8CHTx+jbZNbmOW8m25UPiuGC/U9ds2akifCPMUc8h1MVkfOW06RQszI2gWWNosDCQkoudAawB+DKAZWRQyEoQo/K3gvZydBEW5tkDwmuO5cpn2hQAIAyy4KDNl++od98YREXC11U5jNS4/x4j59QvOjzp27JhfEr7nQAj0blGWPll1lg6cukENqpvHXODXTScoOMDLJsgCPHprkgWm+OmpSTcGp7Yg0ACA3xTVbltoM7dRmwg890gFmvP7OaoaFkhhpUxL+h0U78hDJyJoYMcwbXbeyq2C/yRoIfYXfkKGfPghfWviaERxwp/MCEEWXBf+mb4SJkeWJgsAL1StlYmBIWYQIBhU5Kjsj4vJguyI8LmtIsAmCbb65LjdeSGQ1Wg+r1R8nRGwYwS6NAihQD932rbnPEWZIWLCT5tPUlx8Mn3zUgM7RlFbXVMrV9n9gmirlVlbY+skTdbe5H4G7QJsLOZD4Nm2YdS4VjCtWHeUrkbFmqyiXUev0s4DF6lqWV8a0l77WlIm63gRC4J/nQ3CJ9KJ8MuE6AWmlIHCDCFc+AaYJdT2WcvGlMhyWYyA6RGwQYtv04PAJdoNAkwY2M2j5I4Yg8BLPaqQu5sz/bb1FMUlZEazMKY8lXftjnN0/sJNGvfMAxToY7MKPao7FturUKSGVggfAEWx+ze0Hs5XNASw6lIU9eWilc6pFQKfDq5DNcOK0dLVh+nI2Sh12aA9wsCu+fssnT4fSR7iHfl2rxoGleNImWDmuFpElbkunAEiikG6CVxFwWfBFeFTac6cOTr/AY6EKfeVEbAlBPCtYy0DW3pi3NaCEGDCoCCE+L5DINC0WgA92yGM0oRzue/XHqEbwueAMRKXlEorN56gsxeiaPijVahzvSBjinO4vHBshwgNhgr8kWAlm/2SGIqgefIZS+LApwWvrBbu2cx9sT41rxdMf/x1mpas+Zdu3UksXEa9VDDTWvDLARFKOI683Z3oo2drUZgNhYTV64rFD+GYE/bL0Kd5atx4o+rv8/bbdPrqVen7A5EFWBgBRoARYAQYAUsiwEuelkSb69I0Av1alSNXFyeau/Y8LV51iNo2qUQNa4QUuc0nhEbBZmHegFiNvduUo4FiYykaAtAwMEbLAL4AYI7APgGKhru5U4MwYA0Dc6P8X/lTB9SiXaejaerK0/TNin0UFOhLtauFUEMRdtE1l+WCVOHy48qNu3T+SgydPBdJXh4ikSDeGlcJpv89UpE83V3+K5yPCkQA4QF/Fs6Ze/boQX3efoeWTfywwDzZE/QaO44uR0fL0M+IRMDCCDACjAAjwAhYGgGbjZJgaaC4PsdB4PDFO/SFIA3OX48VA2Q3atYwjGpVLFhD4OyV27RX2PnG3IkTY+x0eqVnFerRuLTjAKehnh48eJDgUf/06dMaahU35eGHH5bx4hHFgsWyCPxzPoa+3hBOZ8LvUGJiqtC+cRWbmzDFcpEq88nJqZQQn0Je3m4keFNyE4xC+/rB1LNRKFUo5W3ZxtpZbeHh4TJkYK1Kleib8eMK3bvur42m2yJMKiLGKPIToaThILVv3755Og8sdAWckBFgBMyCQK9evaTzaI6SYBZ4uVArIMAaBlYAnavUNgL1KhQnqPPuOHGLvtt8iX4XEQ7Wi0F1qeBiVCHUn0oH+5KXuyvFJqZQ5K04uSIXEXWXMtIzRJgoJ+rRJJT6tipPQX7Wj3uvbaTzbh1Cn2KDWq8hUrJkSenDwJC8nMd8CISGhlIlMWkyVI4fPy5/E8Zonxhat63na1ipBM37XwnZjWPXEmnTv1F0ISJe+GxJkYRBMW9XqhDsRVVKelKVUF+qVtrX1rusmfaXL1+efvrpJ+rRvTuN+XQ2TX/l5QLb9sjIl8hNhC7cl41c27ZtG+3bt49Aus2cOVNGZSiwME7ACDACjAAjwAgYgQBrGBgBHmd1DARi4lLo9/0RtF0MsC9FxlN8Yhqlp2WQiyAHoKIb6O9BdQXJ0K5OED1cNcAxQDFzL2fNmiVX1WCzbojAO3GVKlVo+/bthEkqizYQaNWqFXUXk6bXX3/doAZBa2TUqFHsx8Ag9DiTtRHYtWsXDR06lLoITZuJL/4vz+a0f/FF8vQrRps2bco1zaRJk2jz5s3y3fa28G9QtWrVXNPxRUaAEbAOAvDD5OvrSwsWLLBOA7hWRsDECLCGgYkB5eLsD4ESPm40oHU5udlf7+yzR/BOXKJECWn3O2jQIPvspA32KjIykho04PCiNvjouMkmQKBp06b08ccf07hx40T0irO0emZOx64tBKFQPDAoT7IAzRg/frx06Lp+/XoaPnw4ffbZZwR/CSyMACOgDQTYh5I2ngO3wnQI5OL2yHSFc0mMACPACFgLgVq1ahEG1CzaQGDr1q3STISjHGjjeXArrINAz5496ZtvvqGY+HjqJrRl9KXt8y9QYFBwvmSBSg9NmyeeeEI6dwVp8M8//6hbvGcEGAErIxAlQqBGRERYuRVcPSNgOgSYMDAdllwSI8AIaAgBqAQeOHCA7t27p6FWOW5TsApar1498hF22SyMgCMjgNCIc+bOJU9fP6rffwD1FREUaj/Th0KFr4MNGzcWGprnn3+enn32WRl5BKQBTB5YGAFGwPoIwI9SqVKlrN8QbgEjYCIEmDAwEZBcDCPACJgOgUceeYQGDx5sVIGPPvoohYSE0MiRI40qhzMbjwA0PU6ePGmw7wLVAmgnGOoIU5XBe0ZACwjANOeLr76iXsIvh48Ilwj/HD+JEIxFlYEDB8p3HMKVDhs2jObMmVPUIjg9I8AImBgB+FGCaSQLI2AvCLDTQ3t5ktwPRoARyIEAJqrvvvsuNWzYkMaMGWOUh/4chfOFQiGAyAYIMdW6dWv64osvCpWHEzECjEDREJg2bRotXrxYROpxJThFBOnKwggwAtZB4JlnnpHadBxW0Tr4c62mR4A1DEyPKZfoIAhUrFiRnnzySQfprW12s3PnztSjRw+6cuWKnLTC4RhimLNYBoHvvvtO/o3UqFGDyQLLQM61OCgCiDzy6aefUkpKCiFywurVqx0UCe42I8AIMAKMgKkRYA0DUyPK5TkEAm+88QatWLGC/P396eDBg4XqM2xNx44dSw888ECh0nMi0yHwlVD9nTdvHpUpU4ZiYmII6oJhYWEUEBAg1QbT09NlZbiOY+yRDs8XaoU4xwZRx9jfvXtXhk5S9zBYx3Famgi9KcrB3tPTk+KFg7PsefXP1bG3tzfFxsbq6lTtUvf160a5ycnJ0ukZ7ru4uMh88M4MwR5tx4ZjtM3Dw0OXXt1DmeoY+XAMSUxMlCskWLFUZenXofKo9Hfu3KHq1avLfBcvXqSjR4/KY5BqIGpYGAFGwPwI7N69W2eiMHr0aHrqqafMXynXwAgwAlkQgIYBwirCwSkLI2APCDBhYA9PkftgUQSwWg31akyeYDd67NixAuvH5AuTKUxS//rrrwLTO3oCqPFh4ItJvqkEBMCOHTvozJkzhAltdHS0nNCifDXpVRN/7DEB9vPzk5N+nCsSQBEBuBYXFydVgNU97FVZmGTjHBt+KxBVvjy5/5+6hj3KRj4p4hySJq65qGvyivgPk3rcv08IqMvY60/k1UQf11A+2qHaou5hr78hLdLkRTCo/qm9qhN4qmM4fIK/AZgimNLxEyZAQ4YMYdJNIs3/MQK5I3D48GEaMWKEfD916tSJpkyZkntCvsoIMAJmQYAJA7PAyoVaEQFXK9bNVTMCNokANAXgTA8kwO3bt2WoOKzC5idqlfby5cv0wQcf0IQJE/JL7vD3sHKPzZRSokQJgiNEJSAQrl+/rpssq+uYKGPDCnm1atV0mgL6pABCmNWtW1dHCCgSAWn27NlDjRs3lsUpMkCVjT2uXbhwgSoKkxZ1Lg/u/6fyKKJBf2KPSbracruOcqtUqSLTqPu5pUdV6j58DKAvOM++gThQ6ZAHuOC3rMpEW3EMQd2wm0Z6cwnIOlP/LszVVi6XEbAWAohGAt8t8GWAyAkLFy6kQYMGWas5XC8j4HAI4LuovuUO13nusF0ikP8sxy67zJ1iBAxHACucWEnFZA8TOqxCY8W6Zs2a+RaqP7GCXTdWrhFHm8VyCECz48cff5ShFm/evCknv2pCjFZg0o/npK7hg4/JL86xwu90f0KNc0ycYSOsnxbHyIMwjidOnNBNqtWEWn8PswOoK0JwXQ0s8HsqVqyYPEd71D3VNqTHMQR59K/jHCSWu7u7bB/ajvsqvUqr9qIAShdbampqjnpQlmqTSo+2wGQCdeQmKAdSXLS/pjC76d+/P3Xt2jW3pHyNEWAEzIxAx44d5XfppZdeovnz51NSUhIhDCMLI8AIWAYB9c23TG1cCyNgXgSYMDAvvly6HSGwcuVK+uOPP6R6J3wRDBIrNmfPnqVz584VSBioSRkmlbVr16a5IgY3wmiFhobaEULa7MqmTZto8uTJFBkZSVCVf/zxxwnOEGvVqpXrajj8AoAQUHs8Oxxjr7+BMMI59tgwsdY/VhN6NeHGXhEAQEpNyPUHFXDIiNVBtaqPe9m3vO7pX8cqfGBgoI7QwO9ObUiHDedK80X/XkJCAhUvXlyXHveQvjCCetesWSO3V199leC5HerQDz30UGGycxpGgBEwIQIIQQrzrpdffpmWLl0q32MgEFgYAUaAEWAEGIGiIMCEQVHQ4rQOiwCIgXfeeYe6d+8u/RZgAtWsWTNatmwZ3bhxo0BcMOHEBBE+DCpXriwngfDev3///gLzOmICUzmGXLRoEc2ePZtgjoA9fE8UJFihx+bj41NQUpPf79mzp8nLLGqBwMpQgXZEnz595AaC5IUXXpDHr7zyipy0GFqufj7UwcIIMAKFQwCOXeF4DX+DcNSLbxE05VgYAUbAfAjoLw6YrxYumRGwHAKFWzayXHu4JkZAkwhggAXnbVOnTqVbt25J9c4HH3xQtvXQoUMFthle8rGai9XaLVu2SNV4TKjgmIolJwKwhTfWZAPRK2bNmiVX7NeuXVsosiBnS/iKoQiAVIMmDbRxEO4NpjjGyvLly9nhobEgcn6HQwARVebMmUONGjWiH374gQaxPwOH+w1whxkBRoARMAYBJgyMQY/zOgQCn3zyCYVfuiTV2tHhzZs3S8dyXl5ecuUaqt8FCfweIKIC1LPhKBHEASZR69evp/fee6+g7HzfAARkOCOh1QGSB9izWAeB4cOHEzY8B0SVYGEEGAHrIDBz5kzpVwQac/zdsc4z4FodBwF9c0PH6TX31F4RYMLAXp8s98skCFy7do2+/vprevyJJ2SYOBQKO3OYI0CgNYA0BQn8HGCVB/bpHh4e9Pvvv1PLli2pVatWUk0UjvJYTIcAzD+2b99O/YTjvcIQOqarmUvKDQFoGQQHB9P48eNzu83XGAFGwEIIvP/++9K07s8//5TaPxaqlqthBBgBRoARsGEEmDCw4YfHTTc/Aq+//rp0TKjCIMK0AM7zlK05nN5FRUUV2JDFixfrVrkR9g6EAWTBggVUvnx56tatW4FlOFKCDRs2SHMCQ/t88eJF6YAQpg0s2kBg8ODBtHXrVqMaAxtshFZkYQQYAcMRAIGHOPHbtm2jkSNH5lkQnCWyMAKMQNERYB8GRceMc2gbASYMtP18uHVWRGDdunUyhvXnn3+uawXMCKDeDg/7EDjngy+CggRaBSpP8+bNCfb1SkAagHQYNmyYuuTw++PHj9Pu3bsNxgEmIIh0oDA3uCDOaDIEBg4cKE0SDh8+bHCZY8aMYcLAYPQ4IyPwHwKIloBvzp49e3ROSv+7S9LXAfztGPMe1i+PjxkBRoARYARsFwEmDGz32XHLzYxAly5daPXq1VmcrF0Svgxq1Kihq7l06dIUExOjO8/r4Pr161SxYkV5G84SYct94sQJeR4SEiJVtRH+Dys+LMYjgPB+cLpX2HCAxtfIJRQGAYS1/PvvvwuTlNMwAoyAmREYMmQIPffcc3Tq1Cnq1auXdOarqkQUH7w/EV2GhRFgBIqGgArBXLRcnJoR0C4CTBho99lwyzSAQO3atbO0AmEQO3XqpLuG+3BiWJBEi8gKilhAfgzEfvvtN102rL7CIWJhwv7pMvFBngjAqSSL9hAICgoimIuwMAKMgDYQePHFF+ndd9+l06dPU9++fUn50/H29qann35aar8hygwLI8AIFB4BaKLCxxULI2AvCDBhYC9PkvthdgRgOw1Vd33TARAGS5YsKbBud2GSULduXV26hx56iLIPwjA4Y8lEoFixYoTNUIHmR2FMRQwtn/MZhgAcfyYkJBiWWeTy8/MzOC9nZAQYgdwRgE8eRFA4duyYNE9A6GDIE8LZL7Thfvrpp9wz8lVGgBFgBBgBh0CACQOHeMzcSVMggDjyZcuWzcIaV6hQIQsRkF898NyvBM74MHE6dOiQusR7PQSgKjtv3jy9K0U7RMjLtLS0omXi1GZHAJo1+n8HRa3wxx9/1EUrKWpeTs8IMAJ5I9ChQwfphBdmd3CIGBERIc3x4JQX5nPG+B7Ju1a+wwjYJwKJiYmEjYURsBcEmDCwlyfJ/TA7AvDw3qRJE4PqgWOpQYMG6fKiHExoN27cqLvGB6ZDAGq18FLMpIHpMDVFScY+EzgZZWEEGAHTIYCINEqaNm1KS5cuJdhfw6cBiAJECAK5rZ9Opec9I8AI5I4AtOmwcMHCCNgLAkwY2MuT5H6YFYGkpCRSKy+mqKhcuXJUqlQpXXhFU5TJZfyHQIkSJQiRKZRq7X93+MiaCOB5wAEoCyPACGgDgdGjR1ODBg0kMYCICDCd++abb2SUGYRCxcSnVatWtOz777XRYG4FI8AIMAKMgMURYMLA4pBzhbaIAMwRsDqKgZWppE2bNhQaGkoomyUrAohyYMyKFtTeoQ4YEBCQtWA+syoCIMkQKcFQQbhN/DZYGAFGwDQIIDIPSIJVq1YRyANEBzp69Cj9/PPPBMeH0DTAdy9BvE+nTZtmmkq5FEaAEWAEGAGbQoAJA5t6XNxYayHw559/EhwVmlJ8fHzkCjg0F1iyIvDtt9/S/Pnzs14swtmNGzdkavZSXATQLJAUGgaRkZEG19S7d28CacDCCDACpkEgMDCQFi5cSOvWrSP41oFjXxAD8GMwatQoqQn3yaxZVK1atRyOek3TAi6FEWAEGAFGQOsIMGGg9SfE7bM6AvASffDgQbnSYsrGwLHfzZs3ac2aNdJm1JRlO3pZvr6+UiPEFnDYsWMHffLJJwSSBIP1ggSTbsRIt0Xx9/enkJAQg5vO2gUGQ8cZGYF8EYC2G/wV7Ny5kxBqEaFpx48fL9+jiPJz7tw5Cg8PJzgeZWEEGAFGgBFwLASYMHCs5829NQCBxYsXS+c13bt3NyB33llgY9+uXTuqVKmSVP/MOyXfKSoCMEeAR36tC8KVDR8+XA7Oz549S6tXry6wyXDkiMG7LQq0C2JiYmyx6dxmRsAhEABR0K9fP9q8ebPU8kIoU/zNpqSkyFC1U6dOdQgcuJOMACPACDAC/yGg/RH1f23lI0bAKggsWbKE2rdvb5a6US7s7VeuXGmW8m210GLFihnVdIQEc3NzM6oMS2QGQfDFF1/QSy+9RJMmTZKRNGJjY+nDDz+UETmmT58uB+poy6JFi+Q13FNy4cIFevnll6VTMlvwhQEzHIQiZWEEGAHtI9C4cWNatmyZ1ILr1q2bJGGjoqLohRde0H7juYWMACPACDACJkOACQOTQckF2SMCmzZtkqsrUNE0h3Tu3JkwAIOtvTFO/szRNmuW+fTTT9O7775rcBNsIZwRTF0QqjO7bwyE2jx16hQtX76ctmzZQnv37pWmClOmTJGaKPrp4c28Xr16tGLFCmnSoPWoEMnJyeTu7m7wcwWBwqEVDYaPMzICBiFQtWpVmiX8GECzqVmzZvT1118bVA5nYgQYAUaAEbBNBJgwsM3nxq22EAKTJ0+WEzI4fDKXPPbYY4QwgHA8xZKJADQMjJkYIgwmolpoWZQGBOyC9WXfvn2ECBphYWHUvHlz2r9/Px05coTq168vo2p06NBBl3z79u2SLMCKH8iCw4cP6+5p8QCEgTGmIiCSjNU+0SIu3CZGwFYQgMYBCyPACDACjIBjIcCEgWM9b+5tERCAffm1a9do3LhxRchV9KRPPvkk7dq1i+Cojx1KFR2/3HKcP3+e3ITWhpYFK+3QFkA0CEz2VShIhDg7cOAAxcfHS2ebderUIazwITpAQkJCFseIrVu3JqgKfy9ipCMPzrUsqampVLx4cS03kdvGCDACjAAjwAgYjYDWFy2M7iAX4FAIMGHgUI+bO1tYBO7du0cTha04VnMxgTOnwDs1nExhIjV79mw5eTRnfbZS9pUrVwxuaqlSpShd+IbQusCB2JkzZ2Sc84YNG0rCCL85TKxr1qxJZcuWpaZNm1KZMmVkZIRGjRrRe++9p+vWc889J2OmQxMB6eDsUcsCzY87d+5ouYncNkaAEWAEGAFGgBFgBBgBPQScxKqW9kfVeg3mQ0bAEgg8++yzdPLkSekpGo7azC2YRD3++ONSBR2ryLDVdmTZvXu3tJmFHb8hMmPGDIITQKjy24JgIg3v5PBloQSkgf45risfANnv4TeD1QxPT0+VXZN7kBr9+/enESNGGNS+Ll26EJ6tMeYqBlXMmRgBRqDQCODbCW05+P4JCgqS+fDuAkEKQrRJkyaFLosTMgK2iAC+c/ClNG/ePFtsPreZEciBAGsY5ICELzg6AvBCjwkrVvstQRYAb2gXvPrqq3T69Gmpdv7VV185+mMwqv9YnbclQYjN7ORA9nP0RzkMzH4PAxOtkwXqeRjDUcMs4+7du6oo3jMCjIAGEUCo4LVr10pHrKp5v/76q5w8Va5cWV3iPSPACDACjICNIPDfcpaNNJibyQiYEwF4goY9+Ntvv00PP/ywOavKUXaPHj2knfqNGzcI0RkQ/xosNUvREcAEPD09vegZOYdZEYAWhDGEgVkbx4UzAoyASRAAsTl69GgaM2YMDR8+XH7LZs6cKcPHBgcHyzrgH2j9+vWSKIUflsDAQF3dN2/elNp9169fl+ZZ5cqVo169eunu8wEjwAgwAoyAZRFgwsCyeHNtGkYAJMHKlSvlSv+AAQOs0lI4WMQgq4KIVQ+ni1A1HzZsmFXaYsuVgjDgian2niA0I1JSUrTXMG4RI8AImBQBmNh99tlnMvoPvmfwCzR06FBZR3R0NHXs2FEelyxZkt555x0ZRhamCjExMdSpUyeCmRZMj/z9/WVekzaOC2MEGAFGgBEoEgJMGBQJLk5sjwjAQz1sLQ8ePEgTJ060+koG/BeMHTuWSpcuTTt27CA4/8OAKrsauj0+C9UnOPt76qmn1GmR91jhYg2DIsNm9gz4DWMiYKjgN4HfBgsjwAhoGwH8rb/++usyyhC0BxD6FZN/yLZt2wik7s6dO6Up1UsvvSRNGEAYXLx4UTr+nTRpEvXt21fbneTWMQL5IMCLFvmAw7dsDgH2YWBzj4wbbEoE4Jipbdu2dPXqValdoBW1xylTplD16tVlCD2sxiD+/F9//WXKrmu6LEwK0WdDhU0SDEXOvPnwXOLi4gyuBA4PmTAwGD7OyAhYFIGuXbtK4hukPCK6KNm8ebM8fO211yRZ/++//9LWrVvlNUQlatmyJY0fP15Gj8EeJAILI8AIMAKMgPUQYA0D62HPNVsRAUy+MSnHQOSRRx6R3pu1toL/yiuvUO3atQm2nwirh/auW7dOqmuC5GDJGwE8V1Z9zxsfa92Bp/Rjx45Zq3qulxFgBCyIACK/tG7dms6ePUu+vr66mkEcQtMI3zFnZ2dq3749eXt7y/vIs2TJEplnz549tGDBAhntZs2aNbr8fMAI2AIC8NnDwgjYCwKsYWAvT5L7USgE4GSpZ8+eUk0SGebPny8n5FojC1RnMJD65ZdfJHEAJ1HYsMqKSA7h4eEqGe+zIQCihT/W2UDRwClUk2GzzMIIMAKOi0C7du0oNjaWTp06RYioAK2CevXqSUCgUbdv3z75/q5Ro4Yky6GBwCZmjvt7scWeI1Q2/HGwMAL2ggATBvbyJLkf+SLw888/Ezwxf/DBBzIsG3wEYMXC0pEQ8m1kHjdhj//yyy/L9iL8YlRUFB0+fJjgVApaBxEREXnktN3LCJ/Xu3dvgzsQEhIi8+KjzaIdBOD4TK0kGtIqOASFTw8WRoARsF0EYKrw5ptv0rJly+ixxx6jDh060A8//CA7tH//fum/BqTCE088QUePHpUhjqGJwMII2AoCGKsFBATYSnO5nYxAgQg4CaccGQWm4gSMgA0igIn1F198IR0HYnUCKxojRoyggQMH2mBv/msyJl3Lly+Xgy2QCbdv3yaEZIRDuKpVq/6X0IaPdu/eLQmDS5cuGdyLWrVqEcJkwuM2izYQqP/gg/TsoEEyEokhLQoLC9N5UzckP+dhBBgBbSEAUhfDUEywlFYY/Jxg8/T0lCEZ1XVttZxbwwjkjQBCYoMcnzt3bt6J+A4jYEMIMGVrQw+Lm1o4BOCB+Y033iCsYuzdu1eq8cMMAY6WbJ0sAAJ+fn4yPNWmTZto8ODBMn41tCXwgQIhohxKFQ4t+02F2N1r16613w7aWM+gFeMkVgkfFKQBCyPACDACQABEAaIn6JMCPj4+0nSpWLFiWa4zYowAI8AIMALWQYCdHloHd67VxAhcuHBBTg5Xr15NGGSA2cWqBdQa27RpQ40aNTJxjdooDpEEsCH8IibHv/76Kx04cIDgOAqhIqHuaYwKuDZ6aVgrEOd76dKlhmXmXCZHACrHcHqI0GksjAAjwAgwAoyAvSLAytv2+mQdt1+sYeC4z94uen7w4EG5yj5s2DACaRAUFCRjODdv3pywAg+bZ3slC/QfIPr70UcfEbxKjxo1SmohTJs6VU7OYCtqaw6jEDoPkSGMkeeff54SEhLoyy+/NKYYzmsCBPB3Ci0YxFWHmjELI8AIMAKMACNgrwhAY4ZJA3t9uo7ZLyYMHPO5202vt2zZQtWqVSOon587d44effRR2rBhAw0fPlyqOtpNRwvZEYSu6tWrlwy/uPKnn6SGAUw0EDoSzqNsRUAY7Ny506jmAgvE/p49e7YM0WVUYZzZYATOnz8vTWVA5oHAM0aMJZGMqZvzMgKMACPACDAChUEAZAETBoVBitPYCgJMGNjKk+J25orAa6+9Rjdu3KAWLVrI8IN9+vQhNze3XNM62sXKlSvLqBAwV0DEARU5wJFwgC8LqMDDh8V3332nya6rgQW0QHLb1H1NNr6ARn377bfSISfiriOeOpx0GiMgBlkYAUbAPhCYOHEih56zj0fJvciGgL5Pjmy3+JQRsEkEOEqCTT426zc6MjKS0tLS5JaYmEiYEEDg2RgOi/CyvHv3rs7zMc7VtRIlSshjnKekpJCrmwe5umTexzVISjqRC6VTamqqNDOQF/k/RsBABBBOE5ElMGFFbO8KFSrI3ylMFhBNIykpifA7ho099vjd4beJPX7nao/JO84xsVerB+o4+8Qe6dTvGc1W6YvaBfw9xcfH67LlFl4M9aB87FWdap9bejjOTBL9hBNCEGxI6+rqKn1fwP9FXhvSoDx1Xz9PeHg41alThxDFA9EtoFkA3BD+ExMDpDVWOEqCsQhyfkZAGwhAE3CcCG+8ZetW6fRQG63iVjACpkEATqi9vLxo3rx5pimQS2EErIyA8SM4K3eAq7c8AlevXqU2bdvRQ40bUyo5k3O6mFiJ6b2YspBTuphMObuSt7sL3UtIJj8vd0oVgTsxmXFzdqI7cUnk5eEqzonSxKTLKT2VktLFpMUpg1JxLspwEZOXpLQM8nRzodOnTtKqVauogpjgsTgWAtCKgD8GUzjJmzBhAmGbP38+7dq1S5pngCQAgQAv3fiwQ2Uee2yws9ffcA1pQYxhwyQb55gE4xgbJtFqAo1JdXR0tM77t5rI4zr+FvQn8TjHBrly5QqFhobqSAlFToCU0D/GRBx59ImMU6dOyb8TlRb31DHy6m/oO+6BFMEGog9t1E+PY1W+uq7qRVk4Rjmq3JiYGIkr8KlUqRINGDBAmgiZ0ukmQmTCXIWFEWAEbBsBvDdSxDtEEZu23RtuPSOQFQH1Tc96lc8YAdtFgAkD2312Vms5PvSNRdSByV8uIi83TPGJElMyKMgrg27cSyNPV0EcZKRTbFI6+Xs50a24dCou9vHJmZOiYh5OFHEvnUr5uVCsuObuKggDoWFwL8mZQv1d6HaSE3mIc9jLDB0ySE5MrNZZrthqCCDaBSb3piAMVCcQhhKbJaRixYpFrgYr6IZK27ZtDc1qM/l4tcZmHhU3lBHIFwGQkBAmDPKFiW8yAowAI6AJBJgw0MRjsK1GYGUxOUOoJYsZvVAWoOj4DCrh7UQxSSS1B7wFIXBbXCsd6ESRsRlUyt9JpCfydsmgQF9nun43ncqXdKIEcdHbi8hHpEcZZQKc6W6SWH2FloEo+3aiuO+eueppWwhxa02BwAMPPEDHjx83RVFcBiPACDACjICGEGDCQEMPg5vCCDACjEABCDBhUABAfPs/BOBcEKsBFy9epDShxpwee5P2nYymciX96VJ0OsVE36aQAF+6JCb6fsKlwbXL6RR94yoFlAqFTQIFCHLgzPl0unU9nEqXrSjUsl0owNeFriaLvbcLhcc6CzMFZ/JxS6cEzwAqJciFDCdxTWg0sDgeAojs8Mknnzhex7nHjAAjwAjYOQJMGNj5A+buMQKMgF0hwISBXT1O83UGZEG//gMoMDCAbsXcpYvnTtPQ50eQs5PwWZCaRu6+xclXOEBPcfIgb+F7QDAL4p+zcKwWR84evuTv6Uz3hNkCTBXi794hZ09f8nROodhEoZYofCBkCF8GcUlp5CN8H1y6dJGWLV9BcR5lKS2DNQzM91S1XTI0DKZPn67tRnLrLILA7t27CRFRjA21aZHGciWMACNQIAIgDPz9/aX/FITAZWEEGAFGgBHQLgJMGGj32WiqZXDmFiCiG0yf8z2Fnz9Lv6xeTf2GvEQhxV0p/GYs+btn0J1E4RVeOD30cBHaBsJvgZ9HhjQxKAY/B8LE4G4CUXBxF4pJcBLaBi6UnGl8QMF+rnQjzoVKF3OnOKFMMGZ4HyJXd0oU3hLhPFGtRGgKEG6MRRB4+umnLVIPV6JdBBBtZfTo0TRkyBDtNpJbxggwAkVCAJqDcJTKZEGRYOPEjAAjwAhYBQEmDKwCu+1VCsIgISVVOCcUc/m0ePIPCKIgzzThZ8CVygX5UXwKUXFPolLCl8HVWOGjoITwWyCUBwKQXmzRcRlUo3Smr4JywqeBCJggHR6G+DjTFeEAMaR4Zvq0dOHsIE14bndyp2BveJR3kisQtocYt5gRYASMRQBkAaJlIAwkEwbGosn5GQHtIIDILBD9iDHaaR23hBEwDgH96EfGlcS5GQFtIMCEgTaeg6Zbce3aNYJJQrIIoXYvMpwu3LhN1y+coiOnLginhR4UIZwUQhuglI8T7RLEgIeIepAiNAUQ/cDbXTgyTBbsQEI03fMPEeYHaZQktAai41KpQkl3OhYlwi0KZ4gpIglIh5oVS1J8KgltA0+6nZBOyWnpZMqwbJoGmhuXJwKzZs2S4fRY4yBPiOzyBmK1Y+D1448/2mX/uFOMgKMigLC18InEURIc9Rdg//3m37b9P2NH6iETBo70tA3oK4iCJ554kkqWKkWXL1+hsW++Q4mCOLgm4sVHREQIywHx0ReEgatQGUhISpax6KEl4OSULrgBxHFH1IMUunPnnpj4e5Gzi6uI+55K7oIkSE3LHCyky8CMTnQzIpw++uw7QTSIssQ9N7H3ENoJ/NI14MHZWZamTZvS0KFD6cSJE/Tqq68SQi6y2D8CIIiYJLL/58w9dDwEYGoIMpC/74737LnHjAAjYHsIMGFge8/Moi2GumBYWHl6f9Y39PkXs6nbI52FaUKGmLj9Sw882JRKBAVSgKcwNRD+CRLjBClQzJ883ZxFeEUXik1yIj+3NIpL9yRPoWmAEIkx8elUprgzRdyDJoL0jUhJQqMgWJgyDBs8gGJjY0lwBJSa7kQlRblpPKCw6PPWamVNmjSRq8zvv/8+NW/eXDqCJA8AADk0SURBVDpDRBQFFvtAAKYHcGz4xx9/UJkyZWjUqFH20THuBSPACOSKgPJNxCYJucLDFxkBRoAR0BQCTBho6nForzH4mMcnp4lJvHBomHCXQitUEeYJkeRdvCSVKhtGpfzcKVZoEfiLMIpOwuOxCIxAwp8hxYjQisGCGIhNziDhD1FESXCia8K3QRkRKjEyNoNcRDo3Fye6J6IklBR+DCKFKQOIggqlRRkuLhTknUG3hOPElNR0tnHU3s/CKi1C1ITly5cT1NRr1aqla8Px48dp5cqVWbQOoIGASaiSmjVrkj7BgMkpNn0ZPHiwrowrQoMGZeoLSAtsSrKHfMx+f/78+VnagImw/mp5bm146qmnpOmFOevQ7ycwQjv1paj9wPOA5oe+QAtESW51dOrUifA8IXBoCKzhpwDPSP85qTJ4zwgwAvaFALQLIKxhYF/PlXvDCDAC9okAEwb2+VxN1is4O4SDQo+MZAosW5Vi44QqgfjOu7m5CSeHwiGh0DbA5N9JzPaThaaAr9jfTsoQIRadhE8C4ZsgLYPKFXOm89GCGPATBIK4BvG5r21QWly7lSDUEsU1mB9EJzhLXwl3k12EeYNwmOgkTBoEacGSNwKYkMHPA56VI0j2CSXIAUw2jx07ppugZycM7ty5k2UiivNdu3bp4FLpsVeiBrTqPPu+oPuooyDJrww81/zuo+yC6sD9gspQ90G8oE59UgR1AFcQKEow2dcX5MkPy+z3kRcEjiIM4MwQGgVly5bVL5aPGQFGwI4RwHtHaRnYcTe5aw6KgPquOmj3udt2iICT+FFnzuDssHPcJeMRuHfvHj377LP03sx59P2y5dSjZze6IziDE0f2U6cuPShVeCgAgSC4AiopzAoihKaAl5i3YoofJ7QLKgW60IXoNEkQuAjm4Y5wZBgkoh9ECdOEYKFZEC/SwGGin6czvTy0H300eQa9O/p/9NWiFSLcohs91vMxmjlzGtWqUc34zlioBKy2bty4kc6fPy8nRf369dM5bjxy5AjFx8fnmJQZ2jT4mHjooYdo2bJl1KxZsyIXs3XrVgoNDaVq1WwH3yJ3kjMwAowAI8AIaAqBhQsX0uTJkwlEJS8KaOrRcGNMgECfPn1kyNB58+aZoDQughGwPgK8dGv9Z6DpFuBDniDYAHcnYZKQeEtoDIhl//RUSkhMlo4JfdycKEloEZTyygyZKFwVCK2AzJCJ5YVJwuXb6UIDwYm8RDpEPSjh5Uw3BVkAEwWRTWohQNsARIKb0Cbw8XCiFBFKsbhHOt2ITaOgQPhEEHXaiIAk6Ny5M+3cuVOuekNt/c0339S1Hir18PivFZkwYQKtX79eK83hdjACjAAjwAg4AALQLoA5ApskOMDD5i4yAoyAzSPgGDrMNv+YrNsBbzHZd01LIP/QapSUmCjUCZLJ2c2TguB7QPglKCEm//eEqYEIjkB+YvJ/S0z+Q+6bGsAkoZTwW3D9XjoFiv1tQRaAIPAQrILMKwiE28KPgXCFIFTqnSg8JoVchY3DTRF20c/TRURfsK04zatXr5YPa/HixdJEYOTIkeTh4UExMTH022+/ydWUW7du0aJFi2S6SpUqUYsWLeQxriUkJFDVqlWpZcuW0uxDPfnU1FTpEO7MmTNUSkSsQJ7cVLiR7vvvv5caDPlpDUALYt++fYS2/PPPP7r2wKFg5cqVCf24ffs2Pfjgg1KlfceOHdS2bVupSg6tE/QPZimNGzemevXqZRn05ddW9A84REVFUZcuXQj9Z2EEGAFGgBFwLASUOQITBo713B2ltxjjwByPhRGwFwSYMLCXJ2nWfgjtgBQ3ck6JExP4NEoXng0z4m/TrfgMsfqfuUKQJAgDP0EcRN/XHkhNI7onzA1KgywQpIK/0ByIFY4Q3YS2QXFxfOVuOhUT6e/C34E4d0lPE6YJzsJcwVVMPjMo7s5tKu4VLHwk2BZhULduXfkkFixYQAMHDqSSJUvK80uXLtG2bdvo+vXrhAk3jpUowgDX8JE5fPgwBQYG0vbt28nHx0faeQ4aNEiew/b78uXLMis0A9zdBdOiJ0ePHqV33nmHfv31V72rOQ+vXr0q24CoFBcuXNC1ByQDCAOQCWvWrJHExKZNm6hcuXI0ZcoU2rt3LyWJsJpoG9o6ceJE6tChA3377beyEgwC82oryujfvz/t379fkgxTp06lsWPH0osvvpizgXyFEWAEGAFGwG4RUISB3XaQO+bQCAQFBUktU4cGgTtvVwgwYWBXj9P0nYE7wlRypZSEO+Tu5StMEVLE5F5s3sWko0LlvDAQmgJi8g8TBT9BAFwSTg4RPjFSRDrwEZoDgjsQK9VEZYo50dlb6eQryAKEU4SjQ09x/8adNFFLugi/iHgMruTt40XRcWmi3rsUGRkpQjuGmb5zZiixVatWNGLECDmR/uqrr+jjjz+WJgpoPybVb731Fp09e1Y3wdZvgpp0x8XFSQ2DtWvXSq/6f/31l5ygT58+XZ6DtcYqPXwP3Lx5U1dEWloaoU5fX1+qU6eO7npuB5jkY0N74Zn/5ZdfzpLsww8/pOjoaFq1apUkE4KDg6WvBDjAa9eunfSZgAzwydC9e3e6ePEiVahQgfJrKxzngSyAV/0aNWrQ0qVL6ZtvvmHCIAvyfMIIMAKMgP0jwISB/T9jR+8hu4hz9F+AffWfCQP7ep4m742T8Gjo7iJsDd28hP+CdEqMvUWevoHk6RMgtAHERF9oDxQXZMFdwQggmgIiIZyJSqMQoVkADQRoFCCKQrwgB8L8nenKnXTyEiYJ0EBwFWQBzB1iRJQEbzf4Psig6GRXobXgTDH3kqhqqDf5+vjlqnpv8o6aqEBEKnjjjTfkJPrzzz+n559/nrCS3rt373xrAEmA8HZ///03QRsBpgJY5UcYvnPnzsm8Xbt2lXt48ocjRX2ZMWMGQWsAGgxwsmOqiAkgOkAEQEAWQEAOwOwB5AC0DSAHDx6U6fJrK9JDZs+eLffQUIDPh4iICAoJCZHX+D9GgBFgBBgB+0cApmsBAQH231HuISPACDACdoCAmMqxMAL5IwA/BEI5gC6cPEQx0bcp1dWHMpJiJFkA7QBEOkgSkQ7KCo2CcyIiQpAgC+LEebrIIxQGxDFROT8nuirMEFAWiAJsxYQmAvwdQMvAOSNdhmgM8nWTvhBKiviMscnpJP7ZpAdlmA5gYgz7fsSYVwK7/9xC4YFcgBkDIlLguHbt2ioLqVB/ajKuu6F34O/vTx07dpRX4C+hsOIiYlfmZ2cHfwrZBdoIMH0YN24cffTRR1lu59dW9B1Sv359at++PT3zzDMiAsZMXf+yFMQnjAAjwAgwAnaNAPzksDAC9ogA++awx6fq2H1iwsCxn3+BvUeUhAzhzdCbkqhW7bpULKQ8OcdHUZqTB7m5CGeIQkclUZAAYYIskOETBYEANaxkQRj4iPmh9GMgyILbySRJBZgsCEUF8hVaBtAscBUaCCAd7oiFajfndEpKdxGEAUiINBGWUZgouGQQJrW2Ilh5X7duHZ0+ffr/7d0JkGR1neDxX16VR1V1dZ3d1fQFxdEcQ2tziveMCOPO7CiyMEssoSChE7rKbsQyBurOrq67s64buBpLYMgc4onKwHoMwswEtMKMAoJyCN0g3fR91X1mZVZm7e/3ul/xKjuruqryevny+yKq8uU7/u////yzKvP98n84/f2tO8VFF100l30br8AGHPz+978vNoCh/dhiLQpsEEO7mbZv7e1bfJsy0ZrxX3755c4xn/3sZ50ZDewc+0bfu9hc9taN4N3vfrd87nOfc7oTePcvtG437vfff7888sgjTp4PHjwo9s2PBSdsfAObAtLWbbBCd7Ey2VgH55133lz+bRwE+/C3WF7daR9tBgnr4rBt2zan60QqlXKT5hEBBBBAoAEErEsCN1UNUNEUEQEEAiFAwCAQ1Vi5Qtgbus1qmJ0Ny0xTm/YtGJF8JCGpVNKZAnFUBzK0YMHBMb2x15v/uAYQbJsNbDiuLQ+6U3qeDlw4pIMhWpDAWgzYPhvscEYDETa9ogUVYuFZSevAiTGNQMQ0SDAwMqnn6nU18FBPczTv3btX7Mbevu2/5ZZbnJtiazXgLhYwsJv62267zRlD4OMf/7iz66abbnJuzu2G+/bbb3fGFdi+fbuTlg0WaH39rcuBdXGwsQfe+973OoEZN133g5eNkWA3+tZFYSmLfcvf29srdn3Ls3WLsBYQNk6BXd9u7m3d7Y5gaVrLAhtDwWZIsEDDO97xDvnyl7/sDLS4WF5PO+00ueeee5wAxI033uicZ2VlQQABBBBoLAECBo1V35QWAQTqWyCk3wZba3MWBIoKZDIZufb6P5U//293yC+3PypnX7hVZsMJ2bPrFbngkrfL+tUxbSmQ1TEOUjpdYliDBBoQSFqwQFsRaAsDGxTxoE6paC0LpjQg0KEBgnF9nNFWBO163JgGF2z0xJHRSfnsf/iAfE+b73/oA/9O7vjiF0SSbfLJWz8qf/XV/yvW5L6eFmvmbzMcLNQ6wm7q7Vv7tra2eTMd2AwKra2tzrf8NoihzYLgBgOs/JZuNpt1zivXOAWWrrVwsMWcF8qzc8CJX/Zvw1ofWBmtRYQFddwuB+5xi+XVxmxI6xSdVv5ylsO9No8IIIAAAv4VsKC2BZBt4FwWBIIm8L73vU+/WEs5gzsHrWyUpzEFGPSwMet9yaW2m9WctgRondWb284OmUzntRXAjIST7fLCLx6S//2jB7R7QljC+czxWQ+0n/p0RvsX6A1lW0tSRiazzngF+bxOp9iacm4y/80t/1HefMXlTgsEPdUZAHE2O6XdD/LSrwMl2s3n2HReWpM6BoJ2U1jKDeySC1SlA92+/AtdzmYysJ/CxYIFtthNdLEb6VOlW5jeUp/bNI7LWex1YcECW+LxeNFTF8urneueX/RkNiKAAAIIBFaAFgaBrVoKpgL2ZU8yqR9iWRAIiAABg4BUZKWKYTeGcR2rIC1NMjWdk7bclET0n2A+PSJvfefVsvHcy2VTb7v0D4/pt9OrdLwDkUw2I53aneC1gRlpSTVp3/YR6Wpr1YYEeRkYm5I1nW3O4Ic2loE1b9H4gKzW1gaZkDZJ0NYGEb2mtUbYrNssWFFPXRIqVQ+kiwACCCCAQFAEdu7c6bSkC0p5KAcCCCAQZAECBkGu3TKUzQIGNgPCrDYFiOYnJZpISSiXkanxYZkMt8i5Z7bq7AYi3WtbdFpEDRbodIln9rbKa0N56eyyGRFC0rlam51rUMDGLTi9I2QxAR3Q0KZh1BCCPunWwMDLRzJ6TETatAuDXk7W6JfXQ2kdKDGbc5q88210GSqTJBBAAAEEEPCBQF9fnzz99NM+yAlZQKD8AvT2Lr8pKdZWQG/jWBBYWMD+6eX1J5pPS3x1r4zqlH0hbUawqrdPunX6xEmdMjGrrQB0+AKZ1FYBG1eFZO9IXnJ6TpNGEI5PoRhyggpNOo6BLTbwoQ2QaOf1aLBgWAMJ7vGDOnNCTE86PDDqBB+aNNKQSCQWziB7EEAAAQQQQKCuBOiSUFfVRWYRQKDBBWhh0OAvgFMV3/rRxzQYMK2tCQaPHZFN63qcwQhzB3fK8Oi4jj+gAximJySbaJF1q8LyWr8GDnIhieSmJd+UkFZtMTCcDolOgiCh8IxMRZLasuD4FIvdzRZwmJUpbW0QD81IViLOVI2x0KyEmlKS1HPTMxp80AADCwIIIIAAAggEQ8C+jLAWjCwIBFGA13YQa7Wxy0TAoLHrf0mlt24G8XBWWnWww1CyQ0L5rI5nkJaHfnS/7Hz+KRmfSEt7a0JbDBwPBET1ht9GyF+9qsUZ0NBaD0R1tIKQDog4NjYqWy64WD7y8U9oSwXrmiDSpS0Vnt+vx2hgorfVpl7UbgvaimFmRgMP+oEibAeyIIAAAggggEAgBGhhEIhqpBALCNAlYQEYNtetAAGDuq266mW8KaKj9ussCJG2tTI5PiLNyZjEmprlvEu2yFkXbJPc1LB0tbfJoLYkSOm4hdM6psHokd3Svu4MZzwCm1oxqy0Rwtq0YHRsQjrbV0lCgwM2I0JLXFsgaDeEeES7METCsk+7M4R0vIQpjT60JHWqPmuawIIAAggggAACgRGwaYNZEAiyAEGDINdu45WNgEHj1fmyS2ytBsfzce2ScFjOPGuLhKM6jV4uLetO3yKbNZjQpuMQ7BnMy+naUmBMxyNoT9gsB+fruAU6taKu57XlgQ5X4IxJYK0IOnTbgB4X11dfWo/RBghOoCFtgyvqujXlaonZ2AkaONAuCXYuCwIIIIAAAggEQ2Bqakrf73lzD0ZtUgoEEAi6gN6+sSCwsIDer2sXgbAkdfyB1lTcuZm3AQsn0xlnOsRODRbs11YBnamQjKXz0qxBgIze4dsAiK3aesAW66qgDQycpbs5JIM2yKEFESxt3WEBhCnnywbtlqCn5GdD+kFCxzvI6cwM+lyfHT+Z3wgggAACCCBQ9wI2T72NkcSCQBAFCIYFsVYbu0wEDBq7/k9ZemsRENe7drtln5EmyerYBVGdxSAUiUmv3vzvGdYZEzQwMKWzJST0uIj+jKVnnQELrWVAWrsn2GIzI9j4BEPa/cDGREjo54RxpzWCtiJwoglhZ7pFnUVR8tkJ2bHrkPS0RJzWBfzjPW7IbwQQQAABBIIgYGMYsCCAAAII1IcAAYP6qKca59ICAhEZ6T8gre0dOidiVCaO7ZUdB8cknJuSgYEBSU+ltRlBRgbHpkV0wMJ8JusMamhRABu/YK0GF0Y1QJDWwEJSgwXDOn5Bp25L6z4LIMxq94OMRguse0Mi1SznbO7V846PfZCjT0KN65/LI4AAAgggUD4BBj0snyUpIYAAApUWoD1YpYUDkH5eAwAt0aysal8r+dyMdjuYlUTHOvn5P/xYnnrsYclqv4VUPCbT1lJAuxM06TyMk+PjEm9uFhvXKJWI6EwHEQ0sDEl3T5e0dqyVf/+fPu0MiGinWMeFGZ1SMRXTrg7alcEGTczp8yENMKR0xEW7JgsCCCCAAAIIBEPABj1k6rlg1CWlOFmAlrEnm7ClvgUIGNR3/VUl93HtgpDJR2R4bESnV8xrKwGd0SDRLFde9fty6VvfJfH8hGS0u0JGAwfxcM4JIBzet0sSnadpcCGvt/45GZqckWN7d8iqzvXS2toiMe26MJXRdPQVaC0PbAyE+KoODQ7ktAtEXrsphKRHWyCEwmENOmjUgQUBBBBAAAEEAiFgN1RhfX9nQQABBBDwvwABA//XUe1zqOMVTOsohQMHdknLle+SXDglLz39uKxfv1GawlntSqCzG4SjOgViXvYPDUpmalISq7plZmpMpkLaPSHZJiltobD+7G0S15YIUQ0gPP3Ms9LVvUbS+ZA0R6blWP+w7N+7W47sflGO9A/J7h2/1i4QB+XQoSOSzZ4YCKH2EuQAAQQQQAABBEoUYAyDEgE53dcCtDDwdfWQuRUIEDBYAVqjnTKVTksyNyGdvZslOxuTDV0tcvGb3i79R/bpGAYZiSRaJBrRVgjjQyJNSQ0HRGVs6IgGA9ISb+uR0X0vaIsCHShRAwfZ6XEd4iAk4+NjcvjAfpmcmpDZ7JTMaAuGowf2yk8feliG+vvllz/bLqs7OuSKyy+VZu3awIIAAggggAACwRBgDINg1COlKC5gAQOCBsVt2FqfAgQM6rPeqprrJm01mFjdI8NDYzpQYZO2MIjLldrSIGljDujwAnkdlLBNp0a0GQ6mdeDjGR2YoEMHLxzW2RJadAYFHQJBxrT7wSo9ZjojznSM09qtwQYvsKkXx3VbZmxYfv34w/LBj3xMDmkrg9tv/6T09fVVtZxcDAEEEEAAAQQqL0CXhMobc4XaCaT1i7aJiYnaZYArI1BmATqQlRk0aMnZtwB2cx/WOZOH9u+QsLYmsFkLWk4EC+xN3wIBFiywJWfBAn0+qLMgpGyaRQ0KWLCgSdcnNDBgAxzaQIc63IG0abBgWKdZtIBEelZbIIT03PisBhwsqMBL0wGtwC+b1eLzn/880e8K2JIkAggggMCpBeiScGojjqhfgXg8TuvY+q0+cl5EgBYGRVDY9LqAvannNSiwuklnU2zvlSd++UtJ6swFOZ31IJvJSEJHLRw4dlg6OjolE2qSUHpEoq2dMj54VCI6u0G0rVubIExLPNGm3RBGpDUZ01YJYQ0mzEo+EpeZzLgGCCIyPTHsdFH43g/ukz379hIweL0Kyr5mQZ6/u+8+ufvuu+VHP/qRbN26tezXIEEEEEAAAQQWEhgbG9PWifrNAQsCCCCAgO8FCBj4vopqm0G7uWwKz0qouUPOPWOj7Nv1W2nvWifTkzptYqpFDhx6ReKr18mxwUEZP7pfWns2yvjepzTTUZmNxkWOHZXWrtNk9HcvSSy5SiaTzU4AYkwHSRw9ukdWrT1Dju55USLRpA6emJX9u1+Vyy56IwGDCla71emoflizVhxf+9rX5M4776zg1UgaAQQQQACB+QLJZFJisdj8jTxDAAEEEPClAAEDX1aLfzJlMxRk8mGJRcLy0Q/fLAPa1aBNxycY0sfuFu2KoBMYjGqXg+7msBybyDtjGYS034F1NejQqRLtOGfsAu1mkNG+CPaCs3EO2m2MAz3Gxj4Q+SMZ0fEOfvPkz+XTt98mbW1t/gEIYE6effZZ55ud1er8+OOPB7CEFAkBBBBAwM8CtC7wc+2QNwQQQGC+AB3F53vwrEDAAgYpHWSgtSkk/RPHgwBjeqNvN/w606IMT2uwQAMDw1N5adFjwieCBe0aCLBggcYZnOOmdepFS2NKAwcWXEjrYInxiA6mqGMbWMDB9oXC2s3BIhAsFRX40pe+pNNbxiWls0/MzMzI/fffX9HrkTgCCCCAAAJeAQsYMFaRV4R1BBBAwL8CtDDwb934Imd2A3/06FG594EfS7MOdGiDG4a0CUEuPSY62aI0R2dkXKMA+XxWwjqh4uhkTmdPyMuENSOQWYmF8jI1E5JVyYhMaiygRaMEeR360MZASIVzkg0nnIBEPhSVI4cPETCoQq2/+uqrsm7dOpmampIrrrjCGcvgmmuuqcKVuQQCCCCAAALHBeyzBAsCQRWw7p8sCARFgIBBUGqyQuWwgMHFl1wiO559WscyyDsj69s/wWkd8DDSlJDmeExCkajOghCRcNReThoQ0BkPorMhScTCzmwIzVENHug32RGdGsFmU5zW9VmdCmFixro7hJygwrTue9tbrpBUKlWhkpCsCfzkJz9xuiNEIhFp0pkvrr76amfGhO985ztyww03gIQAAggggEDFBayFAQGDijNzAQQQQKAsAgQMysIY3ER6e3vlS3fcEdwCNljJ7rrrLjn//PN1xopxsXmC3//+98tXv/pVefDBBwkYNNhrgeIigAACtRLI5bS5IgsCARWw7p4jIyMBLR3FakQBxjBoxFqnzA0pYAGC/v5+eec73zmv/Lfccos8//zz8sorr8zbzhMEEEAAAQQqJWAt3VgQCKKAjc/BAN5BrNnGLRMBg8ate0reYALbt293Wha4AQN3lGp73t7eLvfee2+DiVBcBBBAAIFaCFjXRrok1EKea1ZDgPELqqHMNaopQMCgmtpcC4EaCnzjG9+Qvr4+Wbt27bxc9PT0yNatW+WnP/3pvO08QQABBBBAoBICjGFQCVXS9JMAQQM/1QZ5KVWAgEGpgpyPQB0I2EwXNjvCddddN5db75vZjTfe6PS3e/nll+f2s4IAAggggEAlBJhWsRKqpIkAAghURoCAQWVcSRUBXwk8+uijTneE66+/vmi+Lr74YmeGCptFgQUBBBBAAIFKCtAloZK6pF1rAe8XMrXOC9dHoBwCBAzKoUga8wS+89g+GRzPztvGk9oK2PgEl19+ucRisbmMFL6hWdDgsccem9vPCgIIIIAAApUQoEtCJVRJEwEEEKiMANMqVsa1oVP924dfk/bmmPzhtvl95U+Fsq9/Str0vFVJXpanslru/h/84Ady4MCBRU+79dZbZcuWLYsew04EEEAAAQRKFbCANbMklKrI+X4VsNd34Zcyfs0r+UJgKQK0MFiKEscsW2Ays/w5lj/59efl09/87bKvxQmnFohGo7Jp0ybnQHdk6sI3M4IFp3bkCAQQQACB0gUK339KT5EUEEAAAQQqJUDAoFKyPk73pf1j8sUHFh/czr7tf2HfqPz8xWMLlmRiOidPvDIo2184JkOeLgh5PSMZW/78ynsPT8hYmq4MC4KXacfg4KAkEokypUYyCCCAAAIILE+ALgnL8+Lo+hKwgJj75Ux95ZzcIlBcgLbfxV0CvfWBJw7Ki3tGi5YxncnLbfpN/5Mv9Tv7Y5GwPPo/3y6xaFiyuVn5+iN7ZGJ6Rn79u2HZsWdkLo321rg89Lm3OM9nsnlJJZYXMLDgQzaXl/S0hRtYKinQ0dEh6XSa7geVRCZtBBBAAIEFBZglYUEadiCAAAK+EyBg4LsqqXyGnnp5SN71hu6iF7r5K78S+6b/k9efK+PpGbnzh6/I9t8ekyu3rpHBsWn5qwdfdc7bdk6HfOFDF8qZvS0SCYfk758+PJdeTm/8U03Le2ntH5hyzm9vfX1QvrkEV7iiAV6N8K7w5ACf5ka9d+zYEeBSUjQEEEAAAb8K8A2sX2uGfJVDwF7fdLsphyRp+EVgeXd1fsk1+VixwJHhtBw8OiFXv/H3TkrjkeePyqsHxuSuT1wk205f7ez/65/ulu3P9zsBg562hFiLgw+95wy56feP94fP6035oaEpueoNPTKjT6IaPLCWAsttYTClrRZsOfu0FufRfvVrgOKlfeOyoTMpm9ek5rbbirVI+N7j+6W9JSZ/fEmvc91J3fbgM4flZ5rf514dlmw2J/f/xRWydjXN7+fh6RPezApFeI4AAgggUE0BN3hdzWtyLQSqIUCwoBrKXKOaAgQMqqntg2vd94sDYt0H+tY2n5SbB35xSPpOa50LFtgBf3nz+TrjQdw51r6tj2jA4Fc6bsHQeEae0W4Jr+g4B+7ylgt75H994ALnaWti8ZdWZiYvn733JXlcb+7P2dgqH3zXRue8K9+wRo6NTMt/vfdF+dWOQTdp2bCmWb784a1yWkfSGVfhU3/zghOYsAN+vXtYPven58nNX3ladh8ckw4NEFz7tvVymgYaulcdz/tcQqwggAACCCCAQE0FrFscCwIIIIBAfQgsfldXH2Ugl0sUsCb69//zQbnmzeuKnmFBgN87o23evivO6Zp7bmMYpDMzzo38r3cOyZs1QPCBP9go521YJfFYWGZsv45fYEvzKcYwuPsfd8s/aTeG6965UaY1ePDdnx2f8i8Rjcg3f77XucbZG1fJVz78Bjk2Oi3/4wc75IYvPCnf/vNL5ba7n5PN2hXiKxpA+K62Mnj0N0eda771gk4nYDCr+ThrXbO2oljetI5OIg30y77dsSg43/I0UKVTVAQQQMAHAjZzD4Pv+qAiyEJFBGhhUBFWEq2hAAGDGuJX+9I7tbvB+ERGuw8Uv5E+d0OrPPzkYXn/m06Ts/WGvHDp1xt3W267bou8Z9taScVPHthw8MRsCZHQ4hNwfPsf92jXhj758JWb5UVtpXDTHU85af/Tc0ekJXF8HIO7P3aRJJrC2sIhJp+6dovc+MUn5Ge/PT4Yo7U2WKMtCW79V2dqGqc7537sD/ucIMEdP3xZ/ss3fit3/niXfOJP+pzuFM4B/EIAAQQQQACBmgswS0LNq4AMVFCAL2IqiEvSNREgYFAT9tpcdN/ApHPh7/9iv1x2ZrszIKDd4NvPG09vk1v/+Cx5cuegfPCLT8rVl/XKpWe3y+Hhaclro4F/+9b1ckjHP7DlH545Ig8/fUSGJ7IyPJaRrLYQaNOxBG6+6nR523nHWyTYWAk2vkCxxVo65PTXuE6h+KC2Mvj8t1+Us7SVwlbNw//TFhAf+9d9zmkP/eawXHTGann2tRG56+93yca1LXLpWe3Ovr/Qc/6zDsy4oSs5F7iwcQ32HJuQOz/yRn2clP/z49/JZ77+guz7o7Tc/AfHx1wolp9G2+a2LLBy08Kg0Wqf8iKAAAK1F7D3nnB48S8Wap9LcoDAygQmJibEflgQCIoAAYOg1OQSyvHmLV3O+AU/fGy/2E/h8nefuULuu/1Ncu/j++T+fzkoDz1xyDlki97IX/+W9RKNHJ9y4NnfDTmDH567uU0u0aBCz+q4dLU2yba+dmlLxbRVQNSZWWHL+tbCSzjPbSyE8zUQ8L1H9jrPr9LgxKeu2SIZHSzxh/98QC7Y1CYXb+mQv/zuS87+iJ7wrkvXym1/cra0JqPyqRvOky/ovmv/+7841+pb3yLvuXitBj1Wy+1/87x0acuDd1zYLes1mGB5eUDTJGDwelXQVO51C9YQQAABBKovQLC6+uZcsXoCqVRKkslk9S7IlRCosEBI/2nr970sjSRgsw9MpHMSi4Z1+sOITOtsAtbK4NyCG3z3lWE3+O6SzuRleDKz6MwD9u2+pdvdtvCAg5b2Du0i0aKDI1orAXexVgLNJ7o62JgJU5mcrNIgQeEyMjkjT74yIL/ZNSIv7h+TS87qkI9efbo8owMg3v3wbvnd/nFnuseNOrvCn+msDu6sD4XpNOLzgYEBue6662R4eFiefPJJHcjy5K4ljehCmRFAAAEEqiNw9dVXy5o1a+See+6pzgW5CgJVFLjqqqukp6dHvvnNb1bxqlwKgcoJnHwnVrlrkbJPBLp0loSueV/+x5zxAAqz5w0UuPtsTIG1TYtPU7ipe/4UiO653kdLuzBAYfvdYIGtx7RFQ6xIsMD2taWiztgEV25dY0/nFgsM3PVnb5x7zkpxAeKExV3YigACCCBQeQF7D6JLQuWduQICCCBQDgE6kJVDkTQQqCMBa1kQi8Wc2REIHNRRxZFVBBBAICACDHoYkIqkGEUF7PXN56uiNGysUwECBnVacWQbgZUKtLe3SyaTkU2bNkkul1tpMpyHAAIIIIDAigTsZoqR5FdEx0kIIIBA1QUIGFSdnAsiUFsB90Panj17xObCZkEAAQQQQKCaAjaC/ODgYDUvybUQqJoArQuqRs2FqiRAwKBK0FwGAT8J2JsZb2h+qhHyggACCDSOQCKRkO7u7sYpMCVtKAE+YzVUdTdEYQkYNEQ1U0gEXhewFgZuK4PXt7KGAAIIIIBA9QR4H6qeNVdCAAEEShEgYFCKHuciUKcCtC6o04oj2wgggEAABOw9iFkSAlCRFKGoQDKZlHQ6XXQfGxGoRwECBvVYa+QZgRIE+FanBDxORQABBBAoWYBZEkomJAEfC0xOTop1u2FBICgCBAyCUpOUA4FlCNDCYBlYHIoAAgggUHYBWhiUnZQEfSLAGAY+qQiyUTYBAgZloyQhBOpDgBYG9VFP5BIBBBAIqgAtDIJas5TLBPhShtdB0AQIGAStRikPAksU4A1tiVAchgACCCBQVgF7/6GFQVlJScxnAnzG8lmFkJ2SBAgYlMTHyQjUn4C1MHDfyGhtUH/1R44RQACBeheghUG91yD5X0zA/Yy12DHsQ6CeBAgY1FNtkVcEEEAAAQQQQCAAApFIJACloAgIIIBA8AUIGAS/jikhAggggAACCCDgGwH7BjaTyfgmP2QEgXIL0Mqg3KKkV0sBAga11OfaCNRAwKb76ezsrMGVuSQCCCCAAAIiU1NTMjg4CAUCgRQgWBDIam3oQhEwaOjqp/CNKNDS0iIDAwNO0a0fKQsCCCCAAALVFGhqapL169dX85JcCwEEEEBghQIEDFYIx2kI1LOAGyigD2k91yJ5RwABBOpTwL6BZZaE+qw7co0AAo0nQMCg8eqcEiOAAAIIIIAAAjUTsIABs/TUjJ8LV1hgenp6bjaqCl+K5BGoigABg6owcxEE/CVgH9boY+evOiE3CCCAQKMI0MKgUWq6McsZjUb5jNWYVR/YUhMwCGzVUjAEigu43+q4j8WPYisCCCCAAAKVESBgUBlXUvWHgL2++Yzlj7ogF+URIGBQHkdSQaCuBGhdUFfVRWYRQACBQAnYzRQ3VIGqUgqDAAIBFiBgEODKpWgIFBPwfkjzrhc7lm0IIIAAAgiUW4AWBuUWJT0/Cdjrmy9m/FQj5KVUAQIGpQpyPgJ1KMAbWR1WGllGAAEEgiJAk+2g1CTlQACBBhAgYNAAlUwREUAAAQQQQAABvwjkCRj4pSrIRwUEaGFQAVSSrKkAAYOa8nNxBKov4HZDoJVB9e25IgIIIICASCaTkT179kCBQCAF+HwVyGpt6EIRMGjo6qfwCCCAAAIIIIBAdQVs2rm+vr7qXpSrIVBFAYIGVcTmUhUXIGBQcWIugIC/BNwWBv7KFblBAAEEEGgUAbuZCof5CNoo9d2I5czlco1YbMocUIFoQMtFsRBAYAEBawq6adMmmZ6eXuAINiOAAAIIIFA5AQsYELyunC8p11Ygn88TEKttFXD1MgsQMCgzKMkh4HeBeDwuu3fvlmw26/eskj8EEEAAgYAKEDAIaMVSLKZU5DUQOAHagwWuSikQAggggAACCCDgbwG6JPi7fshdaQKMYVCaH2f7S4CAgb/qg9wgUHEBvtWpODEXQAABBBBYRKClpYUm24v4sKu+BQgW1Hf9kfuTBQgYnGzCFgQaQoDAQUNUM4VEAAEEfCVg/bvHx8cZw8BXtUJmyikwMzMjsVisnEmSFgI1FSBgUFN+Lo5A9QUsUGAf2AgYVN+eKyKAAAKNLuB++8p7UKO/EoJb/rB+zrIBplkQCIoAAYOg1CTlQGCJAvYhzf3AtsRTOAwBBBBAAIGyCLjvP4xhUBZOEkEAAQQqLkDAoOLEXAABfwm4H9b4dsdf9UJuEEAAgUYSGBgYaKTiUtYGEsjrtKEsCARJgIBBkGqTsiCwBAELFDBH8BKgOAQBBBBAoOwCbpe4rq6usqdNgggggAAC5RcgYFB+U1JEAAEEEEAAAQQQKCJAK7ciKGwKlID7Gg9UoShMQwsQMGjo6qfwjSjAGAaNWOuUGQEEEPCHgN1M2fsQ3eL8UR/korwC1oImEok4LTnLmzKpIVA7gWjtLs2VEUCgFgL2YW3z5s2SSCRqcXmuiQACCCDQwAJ2Q2ULgx428Isg4EW31zitDAJeyQ1WPAIGDVbhFBcB+5D22muvSTweBwMBBBBAAIGqCtDCoKrcXKzKAvb6tmkVWRAIkgBdEoJUm5QFgSUIOM1ATzQJXcLhHIIAAggggEDZBeiSUHZSEvSBgNOyQAMGtDDwQWWQhbIJEDAoGyUJIYAAAggggAACCCwmQAuDxXTYFwQBC4YRMAhCTVIGV4CAgSvBIwKNJKBvZny700gVTlkRQAABfwhY/+6ZmRk5cOCAPzJELhAoo4AFCuwnm82WMVWSQqC2AgQMauvP1RFAAAEEEEAAgYYRsJupplhM1q9f3zBlpqCNI2Cvb5slwX5YEAiKAAGDoNQk5UBgmQK0MFgmGIcjgAACCJQsYDdUtjBLQsmUJOBDAXt98/nKhxVDlkoSIGBQEh8nI1CfAryZ1We9kWsEEECg3gWcaRW1WxwBg3qvSfJfTGBqako2bNjAGAbFcNhWtwIEDOq26sg4AisXsIABQYOV+3EmAggggMDKBAYHByUaZVbvlelxlt8FmpqanPE53JY0fs8v+UNgKQIEDJaixDEIBFCAb3cCWKkUCQEEEPC5QEdHh+RyOYLWPq8nsrcyAQIFK3PjLH8LEDDwd/2QOwQqIkDrgoqwkigCCCCAwCkE3Bsq3odOAcXuuhSw1zdfyNRl1ZHpRQQIGCyCwy4EgirgfmALavkoFwIIIIAAAgggUAsBC4bxOasW8lyzUgIEDColS7oI+FigubnZx7kjawgggAACQRaYmZmRo0ePBrmIlK1BBSxQYAEDZ3DPBjWg2METIGAQvDqlRAicUsBG8WWO4FMycQACCCCAQJkF7IbK3n/Wrl1b5pRJDoHaC7gBg9rnhBwgUD4BAgblsyQlBOpGwPrX0X+0bqqLjCKAAAKBErD3H96DAlWlFOaEgAUMGMOAl0PQBAgYBK1GKQ8CSxTgDW2JUByGAAIIIFB2AQIGZSclQR8IWMDAFvfRB1kiCwiULMBEuCUTkgAC9SlgH9aOHTs2l/lTfXhb6n6bY7u9vd1J13uOd912ep9715ezz3tssWaA3nRtPZ1OSyKRmHdtbxq2bkvhece3Hv/t3ece6/1gUGz/QucXHus9jnUEEEAgiAL2//Kyyy4LYtEqUib3vc37PrOUdTczpzp2enpampqa3MNPutH1nm8HFXvufS8bHx8XGyep2HHuRbz7vOuF6du+4eFh5zNF4XHF0nK3WX7c4228jGj09dsdd7t7rPu42PaBgQHp7Oyc99nAPc99dA327t3rdLfxfr5yj+ERgXoVCOkfyPFQWL2WgHwjgMCyBQ4dOiRtbW1yxx13yCOPPDJ3/mL/Drz7bN3m0faOg+Dut5YLCw32491ux7tvsJYB93xbz2QyEovFbHXe9sLn3nOcgz2/Cq9lu+xDg3148H6YsO2F6Sz6vOBfZr7geWF6XidLt7DMLS0tMjExcVIeLB3vsfbcXbzbw/rByLtktXwx98NRwT73uMLyu9vt0Zv2UrdbGexDorvYB9B4PO489V5robRLae1SmKZbdzZORzKZnMuDrRQe6+zUX/bh1upgKXl1z/HWpXfd3e99zGazzut5Oel7zy9cL5aONw9WFiuT97VXmEY5n3uv7f37966X83pWLvs7dl9jS0nbm0f3eHebPZ5qKbzp8B6/lPO9x7vr7vXteWFd2T73deMe7z56z3O3FXt0j7PHUy2LHTM5OSmpVGrBJLz/awsPWihdew3b/wn3//xyzrM0vf9j7Fz3Ot6/Ddtu+bb86wH2tOhS7H+4HeimWXhSse32P9BubL3viYulUZjmYs97enqWNECkvUYLPc3DuxQ+t32tra3z/n/btsL3Fdum/yCdB/dXYVpundjYFIcPH3YPO+n/buF5dmDhNu97guVvbGzMSc8+G3iDG8XOdQ70pGn1VZi+e4z30XuMvabdPNh2bx6K1b83nfXr18uRI0ec14L385X3GNYRqDeB10Nu9ZZz8osAAisW6O3tdc79zGc+47wRv/DCCye9oXrfPN0Lebd5P5y4b6zeN1n3HHt0z3Mfvdu86+5+7w2cu999k3aPcbd7H73rxY6zFgaLffAtdr6bjvu42DG2z13c491vR2y7u827Xmybd7+tFy52jvc8d79ts5HH7QOmLd5jlrLupuM+uufYo7te+OHLthd+iNu/f79s2LDBScY9rzBNe277CuvVPd59dM8rdl13n5uW+9zO3blzp5xzzjnOJm9atl6Yln0YtQ+E3uPcNL35855XLB33HDcf7qN9O9XV1eU+nSt3sevNHaQrhfu9efEeZ+t2rHu8/T1fcMEFzt+2lcub72LnFW5z0yu23d3nTbOw/osd46ZlefSe65bJu7/wGHef+zg6Oir9/f1yxhlnOJvcNE51nh1s/6u813fTdB/dtNznbpr2d7VmzRrnXNvnbrdHW7xputucHSd+Fabr3WfrIyMjsnr16nnpe/+Wvem769482DZ3u6VXbN222eKe5zw58ctahnV0dHg3Oet27HPPPScXXnjh3D43nbkNJ1aKXdN2FW63bRZgtJtsWwq9ih3v5tm99jPPPCPbtm1zzvf+KjzXbVXmvU7hMd7z3fVix7h5cI9xH+1YC+7s2bNHzjzzzKLldY91H+0cWwrTLHZdO8493l13zbzb7e/+/PPPt0NOOt7ZuILt7nn26L2Wd93dt2vXLudvstg+N51T7StWLu85diPuvr+5111q2sWOK+Zvx1nwwxuY8OahWDrebXau/e0WO8c9jkcE6k2AFgb1VmPkFwEEEEAAAQQQQAABBHwnYAHia6+91snXo48+6rv8kSEEViLAoIcrUeMcBBBAAAEEEEAAAQQQQMAjYC0L3JYSns2sIlDXAgQM6rr6yDwCCCCAAAIIIIAAAgj4QcACBtbdhi4JfqgN8lAuAQIG5ZIkHQQQQAABBBBAAAEEEGhYge7ubvnWt74lV155ZcMaUPDgCTCGQfDqlBIhgAACCCCAAAIIIIAAAgggULIALQxKJiQBBBBAAAEEEEAAAQQQQAABBIInQMAgeHVKiRBAAAEEEEAAAQQQQAABBBAoWYCAQcmEJIAAAggggAACCCCAAAIIIIBA8AQIGASvTikRAggggAACCCCAAAIIIIAAAiULEDAomZAEEEAAAQQQQAABBBBAAAEEEAieAAGD4NUpJUIAAQQQQAABBBBAAAEEEECgZAECBiUTkgACCCCAAAIIIIAAAggggAACwRMgYBC8OqVECCCAAAIIIIAAAggggAACCJQsQMCgZEISQAABBBBAAAEEEEAAAQQQQCB4AgQMglenlAgBBBBAAAEEEEAAAQQQQACBkgUIGJRMSAIIIIAAAggggAACCCCAAAIIBE+AgEHw6pQSIYAAAggggAACCCCAAAIIIFCyAAGDkglJAAEEEEAAAQQQQAABBBBAAIHgCRAwCF6dUiIEEEAAAQQQQAABBBBAAAEEShYgYFAyIQkggAACCCCAAAIIIIAAAgggEDwBAgbBq1NKhAACCCCAAAIIIIAAAggggEDJAgQMSiYkAQQQQAABBBBAAAEEEEAAAQSCJ0DAIHh1SokQQAABBBBAAAEEEEAAAQQQKFmAgEHJhCSAAAIIIIAAAggggAACCCCAQPAECBgEr04pEQIIIIAAAggggAACCCCAAAIlCxAwKJmQBBBAAAEEEEAAAQQQQAABBBAIngABg+DVKSVCAAEEEEAAAQQQQAABBBBAoGQBAgYlE5IAAggggAACCCCAAAIIIIAAAsETIGAQvDqlRAgggAACCCCAAAIIIIAAAgiULEDAoGRCEkAAAQQQQAABBBBAAAEEEEAgeAIEDIJXp5QIAQQQQAABBBBAAAEEEEAAgZIFCBiUTEgCCCCAAAIIIIAAAggggAACCARPgIBB8OqUEiGAAAIIIIAAAggggAACCCBQsgABg5IJSQABBBBAAAEEEEAAAQQQQACB4AkQMAhenVIiBBBAAAEEEEAAAQQQQAABBEoWIGBQMiEJIIAAAggggAACCCCAAAIIIBA8AQIGwatTSoQAAggggAACCCCAAAIIIIBAyQIEDEomJAEEEEAAAQQQQAABBBBAAAEEgidAwCB4dUqJEEAAAQQQQAABBBBAAAEEEChZgIBByYQkgAACCCCAAAIIIIAAAggggEDwBAgYBK9OKRECCCCAAAIIIIAAAggggAACJQsQMCiZkAQQQAABBBBAAAEEEEAAAQQQCJ4AAYPg1SklQgABBBBAAAEEEEAAAQQQQKBkAQIGJROSAAIIIIAAAggggAACCCCAAALBEyBgELw6pUQIIIAAAggggAACCCCAAAIIlCxAwKBkQhJAAAEEEEAAAQQQQAABBBBAIHgCBAyCV6eUCAEEEEAAAQQQQAABBBBAAIGSBQgYlExIAggggAACCCCAAAIIIIAAAggET+D/A1McvcBfuPb/AAAAAElFTkSuQmCC"
|
||
}
|
||
},
|
||
"cell_type": "markdown",
|
||
"id": "16dc0e41-80bd-4453-b421-dcf315741bf4",
|
||
"metadata": {},
|
||
"source": [
|
||
"# Code Generation\n",
|
||
"\n",
|
||
"## AlphaCodium and flow engineering\n",
|
||
"\n",
|
||
"Recent works, such as AlphaCodium, have shown that code generation can be [substantially improved by using a \"flow\" paradigm](https://x.com/karpathy/status/1748043513156272416?s=20).\n",
|
||
"\n",
|
||
"Rather than a naive `prompt:answer` paradigm, a `flow` paradigm constructs an answer to a coding question iteratively.\n",
|
||
"\n",
|
||
"[AlphaCodium](https://github.com/Codium-ai/AlphaCodium) iteravely tests and improves an answer on public and AI-generated tests for a particular question. \n",
|
||
"\n",
|
||
" \n",
|
||
"\n",
|
||
"--- \n",
|
||
"\n",
|
||
"## LangGraph self-corrective code assistant\n",
|
||
"\n",
|
||
"We wanted to test the general idea of iterative code generation in LangGraph, making a few simplifications relative to the AlphaCodium work:\n",
|
||
"\n",
|
||
"1. We start with a set of documentation specified by a user\n",
|
||
"2. We use a long context LLM to ingest it, and answer a question based upon it \n",
|
||
"3. We perform two layers of checking: we check imports to see if hallucinations were introduced\n",
|
||
"4. We check code execution to determine if the code is able to be executed without error\n",
|
||
"\n",
|
||
"Checking for valid imports and execution is a reasonable stating point for code testing on open-ended questions related to a codebase.\n",
|
||
"\n",
|
||
""
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 2,
|
||
"id": "e3900420",
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"%%capture --no-stderr\n",
|
||
"%pip install -U langchain_community tiktoken langchain-openai langchainhub chromadb langchain langgraph faiss-cpu"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "38330223-d8c8-4156-82b6-93e63343bc01",
|
||
"metadata": {},
|
||
"source": [
|
||
"## Documentation\n",
|
||
"\n",
|
||
"As a test case, let's load docs related to [LangChain Expression Language](https://python.langchain.com/docs/expression_language/) (LCEL)."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 3,
|
||
"id": "c2eb35d1-4990-47dc-a5c4-208bae588a82",
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"from bs4 import BeautifulSoup as Soup\n",
|
||
"from langchain_community.document_loaders.recursive_url_loader import RecursiveUrlLoader\n",
|
||
"\n",
|
||
"# LCEL docs \n",
|
||
"url = \"https://python.langchain.com/docs/expression_language/\"\n",
|
||
"loader = RecursiveUrlLoader(\n",
|
||
" url=url, max_depth=20, extractor=lambda x: Soup(x, \"html.parser\").text\n",
|
||
")\n",
|
||
"docs = loader.load()\n",
|
||
"\n",
|
||
"# LCEL w/ PydanticOutputParser (outside the primary LCEL docs)\n",
|
||
"url = \"https://python.langchain.com/docs/modules/model_io/output_parsers/quick_start\"\n",
|
||
"loader = RecursiveUrlLoader(\n",
|
||
" url=url, max_depth=1, extractor=lambda x: Soup(x, \"html.parser\").text\n",
|
||
")\n",
|
||
"docs_pydantic = loader.load()\n",
|
||
"\n",
|
||
"# LCEL w/ Self Query (outside the primary LCEL docs)\n",
|
||
"url = \"https://python.langchain.com/docs/modules/data_connection/retrievers/self_query/\"\n",
|
||
"loader = RecursiveUrlLoader(\n",
|
||
" url=url, max_depth=1, extractor=lambda x: Soup(x, \"html.parser\").text\n",
|
||
")\n",
|
||
"docs_sq = loader.load()\n",
|
||
"\n",
|
||
"# Add \n",
|
||
"docs.extend([*docs_pydantic, *docs_sq])\n",
|
||
"\n",
|
||
"# Sort the list based on the URLs in 'metadata' -> 'source'\n",
|
||
"d_sorted = sorted(docs, key=lambda x: x.metadata[\"source\"])\n",
|
||
"d_reversed = list(reversed(d_sorted))\n",
|
||
"\n",
|
||
"# Concatenate the 'page_content' of each sorted dictionary\n",
|
||
"concatenated_content = \"\\n\\n\\n --- \\n\\n\\n\".join(\n",
|
||
" [doc.page_content for doc in d_reversed]\n",
|
||
")"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "131f2055-2f64-4d19-a3d1-2d3cb8b42894",
|
||
"metadata": {},
|
||
"source": [
|
||
"## State \n",
|
||
"\n",
|
||
"Our state is a dict that will contain keys (errors, question, code generation) relevant to code generation."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 4,
|
||
"id": "c185f1a2-e943-4bed-b833-4243c9c64092",
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"from typing import Dict, TypedDict\n",
|
||
"\n",
|
||
"\n",
|
||
"class GraphState(TypedDict):\n",
|
||
" \"\"\"\n",
|
||
" Represents the state of our graph.\n",
|
||
"\n",
|
||
" Attributes:\n",
|
||
" keys: A dictionary where each key is a string.\n",
|
||
" \"\"\"\n",
|
||
"\n",
|
||
" keys: Dict[str, any]"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "64454465-26a3-40de-ad85-bcf59a2c3086",
|
||
"metadata": {},
|
||
"source": [
|
||
"## Graph \n",
|
||
"\n",
|
||
"Our graph lays out the logical flow shown in the figure above."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 5,
|
||
"id": "b70e8301-63ae-4f7e-ad8f-c9a052fe3566",
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"from operator import itemgetter\n",
|
||
"\n",
|
||
"from langchain.output_parsers.openai_tools import PydanticToolsParser\n",
|
||
"from langchain.prompts import PromptTemplate\n",
|
||
"from langchain_core.pydantic_v1 import BaseModel, Field\n",
|
||
"from langchain_core.runnables import RunnablePassthrough\n",
|
||
"from langchain_core.utils.function_calling import convert_to_openai_tool\n",
|
||
"from langchain_openai import ChatOpenAI\n",
|
||
"\n",
|
||
"\n",
|
||
"def generate(state: GraphState):\n",
|
||
" \"\"\"\n",
|
||
" Generate a code solution based on LCEL docs and the input question \n",
|
||
" with optional feedback from code execution tests \n",
|
||
"\n",
|
||
" Args:\n",
|
||
" state (dict): The current graph state\n",
|
||
"\n",
|
||
" Returns:\n",
|
||
" state (dict): New key added to state, documents, that contains retrieved documents\n",
|
||
" \"\"\"\n",
|
||
" \n",
|
||
" ## State\n",
|
||
" state_dict = state[\"keys\"]\n",
|
||
" question = state_dict[\"question\"]\n",
|
||
" iter = state_dict[\"iterations\"]\n",
|
||
" \n",
|
||
" ## Data model\n",
|
||
" class code(BaseModel):\n",
|
||
" \"\"\"Code output\"\"\"\n",
|
||
" prefix: str = Field(description=\"Description of the problem and approach\")\n",
|
||
" imports: str = Field(description=\"Code block import statements\")\n",
|
||
" code: str = Field(description=\"Code block not including import statements\")\n",
|
||
" \n",
|
||
" ## LLM\n",
|
||
" model = ChatOpenAI(temperature=0, model=\"gpt-4-0125-preview\", streaming=True)\n",
|
||
" \n",
|
||
" # Tool\n",
|
||
" code_tool_oai = convert_to_openai_tool(code)\n",
|
||
" \n",
|
||
" # LLM with tool and enforce invocation\n",
|
||
" llm_with_tool = model.bind(\n",
|
||
" tools=[code_tool_oai],\n",
|
||
" tool_choice={\"type\": \"function\", \"function\": {\"name\": \"code\"}},\n",
|
||
" )\n",
|
||
" \n",
|
||
" # Parser\n",
|
||
" parser_tool = PydanticToolsParser(tools=[code])\n",
|
||
" \n",
|
||
" ## Prompt\n",
|
||
" template = \"\"\"You are a coding assistant with expertise in LCEL, LangChain expression language. \\n \n",
|
||
" Here is a full set of LCEL documentation: \n",
|
||
" \\n ------- \\n\n",
|
||
" {context} \n",
|
||
" \\n ------- \\n\n",
|
||
" Answer the user question based on the above provided documentation. \\n\n",
|
||
" Ensure any code you provide can be executed with all required imports and variables defined. \\n\n",
|
||
" Structure your answer with a description of the code solution. \\n\n",
|
||
" Then list the imports. And finally list the functioning code block. \\n\n",
|
||
" Here is the user question: \\n --- --- --- \\n {question}\"\"\"\n",
|
||
"\n",
|
||
" ## Generation\n",
|
||
" if \"error\" in state_dict:\n",
|
||
" print(\"---RE-GENERATE SOLUTION w/ ERROR FEEDBACK---\")\n",
|
||
" \n",
|
||
" error = state_dict[\"error\"]\n",
|
||
" code_solution = state_dict[\"generation\"]\n",
|
||
" \n",
|
||
" # Udpate prompt \n",
|
||
" addendum = \"\"\" \\n --- --- --- \\n You previously tried to solve this problem. \\n Here is your solution: \n",
|
||
" \\n --- --- --- \\n {generation} \\n --- --- --- \\n Here is the resulting error from code \n",
|
||
" execution: \\n --- --- --- \\n {error} \\n --- --- --- \\n Please re-try to answer this. \n",
|
||
" Structure your answer with a description of the code solution. \\n Then list the imports. \n",
|
||
" And finally list the functioning code block. Structure your answer with a description of \n",
|
||
" the code solution. \\n Then list the imports. And finally list the functioning code block. \n",
|
||
" \\n Here is the user question: \\n --- --- --- \\n {question}\"\"\"\n",
|
||
" template = template + addendum\n",
|
||
"\n",
|
||
" # Prompt \n",
|
||
" prompt = PromptTemplate(\n",
|
||
" template=template,\n",
|
||
" input_variables=[\"context\", \"question\", \"generation\", \"error\"],\n",
|
||
" )\n",
|
||
" \n",
|
||
" # Chain\n",
|
||
" chain = (\n",
|
||
" {\n",
|
||
" \"context\": lambda _: concatenated_content,\n",
|
||
" \"question\": itemgetter(\"question\"),\n",
|
||
" \"generation\": itemgetter(\"generation\"),\n",
|
||
" \"error\": itemgetter(\"error\"),\n",
|
||
" }\n",
|
||
" | prompt\n",
|
||
" | llm_with_tool \n",
|
||
" | parser_tool\n",
|
||
" )\n",
|
||
"\n",
|
||
" code_solution = chain.invoke({\"question\":question,\n",
|
||
" \"generation\":str(code_solution[0]),\n",
|
||
" \"error\":error})\n",
|
||
" \n",
|
||
" else:\n",
|
||
" print(\"---GENERATE SOLUTION---\")\n",
|
||
" \n",
|
||
" # Prompt \n",
|
||
" prompt = PromptTemplate(\n",
|
||
" template=template,\n",
|
||
" input_variables=[\"context\", \"question\"],\n",
|
||
" )\n",
|
||
"\n",
|
||
" # Chain\n",
|
||
" chain = (\n",
|
||
" {\n",
|
||
" \"context\": lambda _: concatenated_content,\n",
|
||
" \"question\": itemgetter(\"question\"),\n",
|
||
" }\n",
|
||
" | prompt\n",
|
||
" | llm_with_tool \n",
|
||
" | parser_tool\n",
|
||
" )\n",
|
||
"\n",
|
||
" code_solution = chain.invoke({\"question\":question})\n",
|
||
"\n",
|
||
" iter = iter+1 \n",
|
||
" return {\"keys\": {\"generation\": code_solution, \"question\": question, \"iterations\":iter}}\n",
|
||
"\n",
|
||
"def check_code_imports(state: GraphState):\n",
|
||
" \"\"\"\n",
|
||
" Check imports\n",
|
||
"\n",
|
||
" Args:\n",
|
||
" state (dict): The current graph state\n",
|
||
"\n",
|
||
" Returns:\n",
|
||
" state (dict): New key added to state, error\n",
|
||
" \"\"\"\n",
|
||
" \n",
|
||
" ## State\n",
|
||
" print(\"---CHECKING CODE IMPORTS---\")\n",
|
||
" state_dict = state[\"keys\"]\n",
|
||
" question = state_dict[\"question\"]\n",
|
||
" code_solution = state_dict[\"generation\"]\n",
|
||
" imports = code_solution[0].imports\n",
|
||
" iter = state_dict[\"iterations\"]\n",
|
||
"\n",
|
||
" try: \n",
|
||
" # Attempt to execute the imports\n",
|
||
" exec(imports)\n",
|
||
" except Exception as e:\n",
|
||
" print(\"---CODE IMPORT CHECK: FAILED---\")\n",
|
||
" # Catch any error during execution (e.g., ImportError, SyntaxError)\n",
|
||
" error = f\"Execution error: {e}\"\n",
|
||
" if \"error\" in state_dict:\n",
|
||
" error_prev_runs = state_dict[\"error\"]\n",
|
||
" error = error_prev_runs + \"\\n --- Most recent run error --- \\n\" + error \n",
|
||
" else:\n",
|
||
" print(\"---CODE IMPORT CHECK: SUCCESS---\")\n",
|
||
" # No errors occurred\n",
|
||
" error = \"None\"\n",
|
||
"\n",
|
||
" return {\"keys\": {\"generation\": code_solution, \"question\": question, \"error\": error, \"iterations\":iter}}\n",
|
||
"\n",
|
||
"def check_code_execution(state: GraphState):\n",
|
||
" \"\"\"\n",
|
||
" Check code block execution\n",
|
||
"\n",
|
||
" Args:\n",
|
||
" state (dict): The current graph state\n",
|
||
"\n",
|
||
" Returns:\n",
|
||
" state (dict): New key added to state, error\n",
|
||
" \"\"\"\n",
|
||
" \n",
|
||
" ## State\n",
|
||
" print(\"---CHECKING CODE EXECUTION---\")\n",
|
||
" state_dict = state[\"keys\"]\n",
|
||
" question = state_dict[\"question\"]\n",
|
||
" code_solution = state_dict[\"generation\"]\n",
|
||
" prefix = code_solution[0].prefix\n",
|
||
" imports = code_solution[0].imports\n",
|
||
" code = code_solution[0].code\n",
|
||
" code_block = imports +\"\\n\"+ code\n",
|
||
" iter = state_dict[\"iterations\"]\n",
|
||
"\n",
|
||
" try: \n",
|
||
" # Attempt to execute the code block\n",
|
||
" exec(code_block)\n",
|
||
" except Exception as e:\n",
|
||
" print(\"---CODE BLOCK CHECK: FAILED---\")\n",
|
||
" # Catch any error during execution (e.g., ImportError, SyntaxError)\n",
|
||
" error = f\"Execution error: {e}\"\n",
|
||
" if \"error\" in state_dict:\n",
|
||
" error_prev_runs = state_dict[\"error\"]\n",
|
||
" error = error_prev_runs + \"\\n --- Most recent run error --- \\n\" + error \n",
|
||
" else:\n",
|
||
" print(\"---CODE BLOCK CHECK: SUCCESS---\")\n",
|
||
" # No errors occurred\n",
|
||
" error = \"None\"\n",
|
||
"\n",
|
||
" return {\"keys\": {\"generation\": code_solution, \n",
|
||
" \"question\": question, \n",
|
||
" \"error\": error, \n",
|
||
" \"prefix\":prefix,\n",
|
||
" \"imports\":imports,\n",
|
||
" \"iterations\":iter,\n",
|
||
" \"code\":code}}\n",
|
||
"\n",
|
||
"### Edges\n",
|
||
"\n",
|
||
"def decide_to_check_code_exec(state: GraphState):\n",
|
||
" \"\"\"\n",
|
||
" Determines whether to test code execution, or re-try answer generation.\n",
|
||
"\n",
|
||
" Args:\n",
|
||
" state (dict): The current graph state\n",
|
||
"\n",
|
||
" Returns:\n",
|
||
" str: Next node to call\n",
|
||
" \"\"\"\n",
|
||
"\n",
|
||
" print(\"---DECIDE TO TEST CODE EXECUTION---\")\n",
|
||
" state_dict = state[\"keys\"]\n",
|
||
" error = state_dict[\"error\"]\n",
|
||
"\n",
|
||
" if error == \"None\":\n",
|
||
" # All documents have been filtered check_relevance\n",
|
||
" # We will re-generate a new query\n",
|
||
" print(\"---DECISION: TEST CODE EXECUTION---\")\n",
|
||
" return \"check_code_execution\"\n",
|
||
" else:\n",
|
||
" # We have relevant documents, so generate answer\n",
|
||
" print(\"---DECISION: RE-TRY SOLUTION---\")\n",
|
||
" return \"generate\"\n",
|
||
"\n",
|
||
"def decide_to_finish(state: GraphState):\n",
|
||
" \"\"\"\n",
|
||
" Determines whether to finish (re-try code 3 times.\n",
|
||
"\n",
|
||
" Args:\n",
|
||
" state (dict): The current graph state\n",
|
||
"\n",
|
||
" Returns:\n",
|
||
" str: Next node to call\n",
|
||
" \"\"\"\n",
|
||
"\n",
|
||
" print(\"---DECIDE TO TEST CODE EXECUTION---\")\n",
|
||
" state_dict = state[\"keys\"]\n",
|
||
" error = state_dict[\"error\"]\n",
|
||
" iter = state_dict[\"iterations\"]\n",
|
||
"\n",
|
||
" if error == \"None\" or iter == 3:\n",
|
||
" # All documents have been filtered check_relevance\n",
|
||
" # We will re-generate a new query\n",
|
||
" print(\"---DECISION: TEST CODE EXECUTION---\")\n",
|
||
" return \"end\"\n",
|
||
" else:\n",
|
||
" # We have relevant documents, so generate answer\n",
|
||
" print(\"---DECISION: RE-TRY SOLUTION---\")\n",
|
||
" return \"generate\""
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 6,
|
||
"id": "f66b4e00-4731-42c8-bc38-72dd0ff7c92c",
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"from langgraph.graph import END, StateGraph\n",
|
||
"\n",
|
||
"workflow = StateGraph(GraphState)\n",
|
||
"\n",
|
||
"# Define the nodes\n",
|
||
"workflow.add_node(\"generate\", generate) # generation solution\n",
|
||
"workflow.add_node(\"check_code_imports\", check_code_imports) # check imports\n",
|
||
"workflow.add_node(\"check_code_execution\", check_code_execution) # check execution\n",
|
||
"\n",
|
||
"# Build graph\n",
|
||
"workflow.set_entry_point(\"generate\")\n",
|
||
"workflow.add_edge(\"generate\", \"check_code_imports\")\n",
|
||
"workflow.add_conditional_edges(\n",
|
||
" \"check_code_imports\",\n",
|
||
" decide_to_check_code_exec,\n",
|
||
" {\n",
|
||
" \"check_code_execution\": \"check_code_execution\",\n",
|
||
" \"generate\": \"generate\",\n",
|
||
" },\n",
|
||
")\n",
|
||
"workflow.add_conditional_edges(\n",
|
||
" \"check_code_execution\",\n",
|
||
" decide_to_finish,\n",
|
||
" {\n",
|
||
" \"end\": END,\n",
|
||
" \"generate\": \"generate\",\n",
|
||
" },\n",
|
||
")\n",
|
||
"\n",
|
||
"# Compile\n",
|
||
"app = workflow.compile()"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "744f48a5-9ad3-4342-899f-7dd4266a9a15",
|
||
"metadata": {},
|
||
"source": [
|
||
"## Eval\n",
|
||
"\n",
|
||
"[Here](https://smith.langchain.com/public/326674a6-62bd-462d-88ae-eea49d503f9d/d) is a public dataset of LCEL questions. \n",
|
||
" \n",
|
||
"Let's create a custom LangSmith evaluator [here](https://docs.smith.langchain.com/evaluation/faq/custom-evaluators) to test them with:\n",
|
||
"\n",
|
||
"* Base case: context stuffing chain without LangGraph\n",
|
||
"* Our self-corrective coding assistant"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 8,
|
||
"id": "dcaec0f7",
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"import langsmith\n",
|
||
"\n",
|
||
"client = langsmith.Client()\n",
|
||
"\n",
|
||
"public_dataset = \"https://smith.langchain.com/public/326674a6-62bd-462d-88ae-eea49d503f9d/d\"\n",
|
||
"# Clone the dataset to your tenant to use it\n",
|
||
"client.clone_public_dataset(public_dataset)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "86411645-98f8-4d19-889f-c78f3c026380",
|
||
"metadata": {},
|
||
"source": [
|
||
"### Base Case\n",
|
||
"\n",
|
||
"Here is context stuffing without LangGraph."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 9,
|
||
"id": "d73dfd70-d266-4be7-9fd7-ed1f5cd432c6",
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"from langchain_core.runnables import RunnableLambda\n",
|
||
"\n",
|
||
"\n",
|
||
"## Data model\n",
|
||
"class code(BaseModel):\n",
|
||
" \"\"\"Code output\"\"\"\n",
|
||
" prefix: str = Field(description=\"Description of the problem and approach\")\n",
|
||
" imports: str = Field(description=\"Code block import statements\")\n",
|
||
" code: str = Field(description=\"Code block not including import statements\")\n",
|
||
"\n",
|
||
"## LLM\n",
|
||
"model = ChatOpenAI(temperature=0, model=\"gpt-4-0125-preview\", streaming=True)\n",
|
||
"\n",
|
||
"# Tool\n",
|
||
"code_tool_oai = convert_to_openai_tool(code)\n",
|
||
"\n",
|
||
"# LLM with tool and enforce invocation\n",
|
||
"llm_with_tool = model.bind(\n",
|
||
" tools=[convert_to_openai_tool(code_tool_oai)],\n",
|
||
" tool_choice={\"type\": \"function\", \"function\": {\"name\": \"code\"}},\n",
|
||
")\n",
|
||
"\n",
|
||
"# Parser\n",
|
||
"parser_tool = PydanticToolsParser(tools=[code])\n",
|
||
"\n",
|
||
"# Create a prompt template with format instructions and the query\n",
|
||
"prompt = PromptTemplate(\n",
|
||
" template = \"\"\"You are a coding assistant with expertise in LCEL, LangChain expression language. \\n \n",
|
||
" Here is a full set of LCEL documentation: \n",
|
||
" \\n ------- \\n\n",
|
||
" {context} \n",
|
||
" \\n ------- \\n\n",
|
||
" Answer the user question based on the above provided documentation. \\n\n",
|
||
" Ensure any code you provide can be executed with all required imports and variables defined. \\n\n",
|
||
" Structure your answer with a description of the code solution. \\n\n",
|
||
" Then list the imports. And finally list the functioning code block. \\n\n",
|
||
" Here is the user question: \\n --- --- --- \\n {question}\"\"\",\n",
|
||
" input_variables=[\"question\",\"context\"])\n",
|
||
"\n",
|
||
"def parse_answer_to_dict(x):\n",
|
||
" return x[0].dict()\n",
|
||
"\n",
|
||
"chain_base_case = (\n",
|
||
" {\n",
|
||
" \"context\": lambda _: concatenated_content,\n",
|
||
" \"question\": RunnablePassthrough(),\n",
|
||
" }\n",
|
||
" | prompt\n",
|
||
" | llm_with_tool\n",
|
||
" | parser_tool\n",
|
||
" | RunnableLambda(parse_answer_to_dict)\n",
|
||
")"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 10,
|
||
"id": "a980b398-ad4c-4b21-8e6d-77ab03130526",
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"answer = chain_base_case.invoke(\"How can I write a RAG chain?\")\n",
|
||
"answer"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "2901bdef-a78c-4831-81f2-927c35503fd9",
|
||
"metadata": {},
|
||
"source": [
|
||
"### Eval w/o LangGraph"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 11,
|
||
"id": "ebcebf05-d455-4057-bf4c-6cc134bf62c9",
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"### No LangGraph\n",
|
||
"\n",
|
||
"import uuid\n",
|
||
"from typing import Union\n",
|
||
"\n",
|
||
"from langchain.smith import RunEvalConfig\n",
|
||
"from langsmith import Client\n",
|
||
"from langsmith.evaluation import EvaluationResult\n",
|
||
"from langsmith.schemas import Example, Run\n",
|
||
"\n",
|
||
"\n",
|
||
"def check_import(run: Run, example: Union[Example, None] = None):\n",
|
||
" model_outputs = run.outputs\n",
|
||
" imports = model_outputs['imports']\n",
|
||
" try:\n",
|
||
" exec(imports)\n",
|
||
" score = 1\n",
|
||
" except:\n",
|
||
" score = 0\n",
|
||
" return EvaluationResult(key=\"check_import\", score=score)\n",
|
||
"\n",
|
||
"def check_execution(run: Run, example: Union[Example, None] = None):\n",
|
||
" model_outputs = run.outputs\n",
|
||
" imports = model_outputs['imports']\n",
|
||
" code = model_outputs['code']\n",
|
||
" code_to_execute = imports +\"\\n\"+ code\n",
|
||
" try:\n",
|
||
" exec(code_to_execute)\n",
|
||
" score = 1\n",
|
||
" except:\n",
|
||
" score = 0\n",
|
||
" return EvaluationResult(key=\"check_execution\", score=score)\n",
|
||
"\n",
|
||
"# Config\n",
|
||
"evaluation_config = RunEvalConfig(\n",
|
||
" evaluators = [check_import,check_execution],\n",
|
||
")\n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 12,
|
||
"id": "9f81e316-94f1-47cc-93f2-bd6fa2d55870",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"View the evaluation results for project '4326-context-stuffing-no-langgraph' at:\n",
|
||
"https://smith.langchain.com/o/30239cd8-922f-4722-808d-897e1e722845/datasets/9a1128ed-d4c4-425c-a81e-8a01b20e09d6/compare?selectedSessions=33b5992f-bb77-4ea4-a478-3928f278e05c\n",
|
||
"\n",
|
||
"View all tests for Dataset lcel-teacher-eval at:\n",
|
||
"https://smith.langchain.com/o/30239cd8-922f-4722-808d-897e1e722845/datasets/9a1128ed-d4c4-425c-a81e-8a01b20e09d6\n",
|
||
"[----> ] 2/20content=\"Why did the bear break up with his girlfriend? \\n\\nHe couldn't bear the relationship any longer!\"\n",
|
||
"[-------> ] 3/20{'joke': \"Why don't bears wear socks?\\n\\nBecause they have bear feet!\", 'fact': 'Bears have an incredibly powerful sense of smell, which is seven times better than that of a bloodhound. This keen sense helps them detect food sources from miles away.'}\n",
|
||
"[---------> ] 4/20Why don't bears like fast food? Because they can't catch it!\n",
|
||
"[-----------> ] 5/20{'title': 'PromptInput', 'type': 'object', 'properties': {'topic': {'title': 'Topic', 'type': 'string'}}}\n",
|
||
"[---------------------------> ] 11/20content='' additional_kwargs={'function_call': {'arguments': '{\"setup\":\"Why don\\'t bears like fast food?\",\"punchline\":\"Because they can\\'t catch it!\"}', 'name': 'joke'}}\n",
|
||
"[-----------------------------> ] 12/20{'output': {'num': 1, 'num2': 2}}\n",
|
||
"[-------------------------------> ] 13/20content='To use Anthropic, you can follow these steps:\\n\\n1. Visit the Anthropic website or download the Anthropic app from the app store.\\n2. Create an account by signing up with your email address and creating a password.\\n3. Once logged in, you can start using Anthropic by exploring the features and tools available.\\n4. You can use Anthropic to track your daily activities, set goals, and monitor your progress towards achieving them.\\n5. You can also use Anthropic to connect with friends and family members to share your progress and support each other in your wellness journey.\\n6. Make sure to regularly log your activities and update your goals to stay on track and motivated.\\n\\nOverall, Anthropic is designed to help you live a healthier and more mindful lifestyle by tracking your activities and providing you with the tools and support you need to reach your wellness goals.'\n",
|
||
"[---------------------------------------> ] 16/20content='Why did the bear dissolve in water?\\n\\nBecause it was polar!'\n",
|
||
"[-----------------------------------------> ] 17/20{'a': 1, 'b': 2, 'c': 3}\n",
|
||
"[------------------------------------------------->] 20/20"
|
||
]
|
||
},
|
||
{
|
||
"data": {
|
||
"text/plain": [
|
||
"{'project_name': '4326-context-stuffing-no-langgraph',\n",
|
||
" 'results': {'e0d3faf2-137e-4a6f-8559-2e4c3e37723d': {'input': {'question': 'How can I run two LCEL chains in parallel and write their output to a map?'},\n",
|
||
" 'feedback': [EvaluationResult(key='check_import', score=1, value=None, comment=None, correction=None, evaluator_info={}, source_run_id=None, target_run_id=None),\n",
|
||
" EvaluationResult(key='check_execution', score=1, value=None, comment=None, correction=None, evaluator_info={}, source_run_id=None, target_run_id=None)],\n",
|
||
" 'execution_time': 35.432823,\n",
|
||
" 'run_id': '159e63cf-fda8-41d2-ab0d-8d170af32891',\n",
|
||
" 'output': {'prefix': \"To run two LCEL chains in parallel and write their output to a map, you can use the `RunnableParallel` component from the LangChain Expression Language (LCEL). This component allows you to execute multiple chains concurrently and collect their outputs in a dictionary format. Here's how you can achieve this:\\n\\n\",\n",
|
||
" 'imports': 'from langchain_core.runnables import RunnableParallel\\nfrom langchain_core.prompts import ChatPromptTemplate\\nfrom langchain_openai import ChatOpenAI\\nfrom langchain_core.output_parsers import StrOutputParser',\n",
|
||
" 'code': '# Define the first chain (e.g., a joke chain)\\nprompt1 = ChatPromptTemplate.from_template(\"tell me a joke about {topic}\")\\nmodel1 = ChatOpenAI()\\nchain1 = prompt1 | model1 | StrOutputParser()\\n\\n# Define the second chain (e.g., a fact chain)\\nprompt2 = ChatPromptTemplate.from_template(\"tell me a fact about {topic}\")\\nmodel2 = ChatOpenAI()\\nchain2 = prompt2 | model2 | StrOutputParser()\\n\\n# Use RunnableParallel to run chains in parallel and collect outputs\\nparallel_chain = RunnableParallel(joke=chain1, fact=chain2)\\n\\n# Invoke the parallel chain with a topic\\nresult = parallel_chain.invoke({\"topic\": \"bears\"})\\n\\n# The result is a dictionary with keys \\'joke\\' and \\'fact\\' containing the outputs of the respective chains\\nprint(result)'},\n",
|
||
" 'reference': {'answer': \"We can use RunnableParallel: from langchain_core.prompts import ChatPromptTemplate; from langchain_core.runnables import RunnableParallel; from langchain_openai import ChatOpenAI; model = ChatOpenAI(); joke_chain = ChatPromptTemplate.from_template('tell me a joke about {topic}') | model; poem_chain = (ChatPromptTemplate.from_template('write a 2-line poem about {topic}') | model); map_chain = RunnableParallel(joke=joke_chain, poem=poem_chain); map_chain.invoke({'topic': 'bear'})\"}},\n",
|
||
" 'e1b141d9-2f30-419e-8f11-08b20482a24e': {'input': {'question': 'How can I use a prompt and model to create a chain in LCEL that returns raw ChatMessages?'},\n",
|
||
" 'feedback': [EvaluationResult(key='check_import', score=1, value=None, comment=None, correction=None, evaluator_info={}, source_run_id=None, target_run_id=None),\n",
|
||
" EvaluationResult(key='check_execution', score=1, value=None, comment=None, correction=None, evaluator_info={}, source_run_id=None, target_run_id=None)],\n",
|
||
" 'execution_time': 31.842585,\n",
|
||
" 'run_id': '990eb7e3-d66f-409d-9540-905b29c7bc6f',\n",
|
||
" 'output': {'prefix': 'To create a chain in LCEL that uses a prompt and model to return raw ChatMessages, you can follow the structure outlined below. This approach involves using a ChatPromptTemplate to define your prompt and a ChatModel (such as ChatOpenAI) to process the prompt and generate a response. The chain is constructed by piping the prompt to the model, which then returns the raw ChatMessages.\\n\\nFirst, ensure you have the necessary imports:\\n\\n',\n",
|
||
" 'imports': 'from langchain_core.prompts import ChatPromptTemplate\\nfrom langchain_openai import ChatOpenAI',\n",
|
||
" 'code': '# Define the prompt template\\nprompt = ChatPromptTemplate.from_template(\"tell me a joke about {topic}\")\\n\\n# Initialize the model\\nmodel = ChatOpenAI()\\n\\n# Create the chain by piping the prompt to the model\\nchain = prompt | model\\n\\n# Invoke the chain with a specific topic\\ntopic = \"bears\"\\nresponse = chain.invoke({\"topic\": topic})\\n\\n# The response is a raw ChatMessage\\nprint(response)'},\n",
|
||
" 'reference': {'answer': 'Here is an example of a prompt and LLM chain using LCEL without any output parsing to return ChatMessages: \\\\nfrom langchain.chat_models import ChatOpenAI\\\\nfrom langchain.prompts import ChatPromptTemplate\\\\n\\\\nprompt = ChatPromptTemplate.from_template(\\\\tell me a joke about {foo}\\\\\")\\\\nmodel = ChatOpenAI()\\\\nchain = prompt | model\\\\n\\\\nchain.invoke({\\\\\"foo\\\\\": \\\\\"bears\\\\\"})\"'}},\n",
|
||
" '065a041e-a1e2-4ea0-b59a-62511aa89ec7': {'input': {'question': 'How can I apply a custom function to one of the inputs of an LCEL chain?'},\n",
|
||
" 'feedback': [EvaluationResult(key='check_import', score=1, value=None, comment=None, correction=None, evaluator_info={}, source_run_id=None, target_run_id=None),\n",
|
||
" EvaluationResult(key='check_execution', score=0, value=None, comment=None, correction=None, evaluator_info={}, source_run_id=None, target_run_id=None)],\n",
|
||
" 'execution_time': 26.555525,\n",
|
||
" 'run_id': '1428eb15-8d02-4db1-b9e5-0c858edb4215',\n",
|
||
" 'output': {'prefix': \"To apply a custom function to one of the inputs of an LCEL chain, you can use the `RunnableLambda` component from the LangChain Expression Language (LCEL). This component allows you to define a custom function that can be integrated into your LCEL chain. The custom function can modify or process the input data before it's passed to the next component in the chain.\\n\\nHere's how you can do it:\\n\\n\",\n",
|
||
" 'imports': 'from langchain_core.runnables import RunnableLambda\\nfrom langchain_core.prompts import ChatPromptTemplate\\nfrom langchain_openai import ChatOpenAI\\nfrom langchain_core.output_parsers import StrOutputParser',\n",
|
||
" 'code': '# Define your custom function\\ndef custom_function(input_data):\\n # Process the input data\\n processed_data = input_data.upper() # Example: Convert input to uppercase\\n return processed_data\\n\\n# Create a RunnableLambda with your custom function\\nrunnable_custom_function = RunnableLambda(custom_function)\\n\\n# Define other components of your LCEL chain\\nprompt = ChatPromptTemplate.from_template(\"Tell me a joke about {topic}\")\\nmodel = ChatOpenAI()\\noutput_parser = StrOutputParser()\\n\\n# Build the LCEL chain\\nchain = (\\n {\"topic\": runnable_custom_function} | # Apply custom function to the \\'topic\\' input\\n prompt |\\n model |\\n output_parser\\n)\\n\\n# Invoke the chain with an input\\ntopic_input = \"bears\"\\nresult = chain.invoke({\"topic\": topic_input})\\nprint(result)'},\n",
|
||
" 'reference': {'answer': \"Use RunnableLambda with itemgetter to extract the relevant key. from operator import itemgetter; from langchain_core.prompts import ChatPromptTemplate; from langchain_core.runnables import RunnableLambda; from langchain_openai import ChatOpenAI; def length_function(text): return len(text); chain = ({'prompt_input': itemgetter('foo') | RunnableLambda(length_function),} | prompt | model); chain.invoke({'foo':'hello world'})\"}},\n",
|
||
" '53c28a9f-4f8d-4f75-9b5b-76eddf2f8756': {'input': {'question': 'How can I add memory to an arbitrary chain using LCEL?'},\n",
|
||
" 'feedback': [EvaluationResult(key='check_import', score=1, value=None, comment=None, correction=None, evaluator_info={}, source_run_id=None, target_run_id=None),\n",
|
||
" EvaluationResult(key='check_execution', score=1, value=None, comment=None, correction=None, evaluator_info={}, source_run_id=None, target_run_id=None)],\n",
|
||
" 'execution_time': 22.832538,\n",
|
||
" 'run_id': '482a47b1-75b9-4cd6-b2e7-b473bee6e548',\n",
|
||
" 'output': {'prefix': \"Adding memory to an arbitrary chain using LCEL allows you to maintain a context or state across multiple invocations of the chain. This is particularly useful for applications like chatbots, where you want to remember previous interactions. Here's how you can implement memory in an LCEL chain:\\n\\n\",\n",
|
||
" 'imports': 'from operator import itemgetter\\nfrom langchain.memory import ConversationBufferMemory\\nfrom langchain_core.prompts import ChatPromptTemplate, MessagesPlaceholder\\nfrom langchain_core.runnables import RunnableLambda, RunnablePassthrough\\nfrom langchain_openai import ChatOpenAI',\n",
|
||
" 'code': 'model = ChatOpenAI()\\nprompt = ChatPromptTemplate.from_messages([\\n (\"system\", \"You are a helpful chatbot\"),\\n MessagesPlaceholder(variable_name=\"history\"),\\n (\"human\", \"{input}\"),\\n])\\n\\nmemory = ConversationBufferMemory(return_messages=True)\\n\\nchain = (\\n RunnablePassthrough.assign(\\n history=RunnableLambda(memory.load_memory_variables) | itemgetter(\"history\")\\n )\\n | prompt\\n | model\\n)\\n\\ninputs = {\"input\": \"hi im bob\"}\\nresponse = chain.invoke(inputs)\\nresponse_content = response.content\\n\\nmemory.save_context(inputs, {\"output\": response_content})\\n\\n# To retrieve the memory for the next invocation\\nmemory_variables = memory.load_memory_variables({})'},\n",
|
||
" 'reference': {'answer': 'Here is an example adding memory to a chain: \\\\nfrom operator import itemgetter\\\\n\\\\nfrom langchain.chat_models import ChatOpenAI\\\\nfrom langchain.memory import ConversationBufferMemory\\\\nfrom langchain.prompts import ChatPromptTemplate, MessagesPlaceholder\\\\nfrom langchain_core.runnables import RunnableLambda, RunnablePassthrough\\\\n\\\\nmodel = ChatOpenAI()\\\\nprompt = ChatPromptTemplate.from_messages(\\\\n [\\\\n (\\\\system\\\\\"'}},\n",
|
||
" '5b483c9b-07ce-4948-a723-ceba618a6be3': {'input': {'question': 'How do I set up a retrieval-augmented generation chain using LCEL that accepts a string as input?'},\n",
|
||
" 'feedback': [EvaluationResult(key='check_import', score=1, value=None, comment=None, correction=None, evaluator_info={}, source_run_id=None, target_run_id=None),\n",
|
||
" EvaluationResult(key='check_execution', score=0, value=None, comment=None, correction=None, evaluator_info={}, source_run_id=None, target_run_id=None)],\n",
|
||
" 'execution_time': 52.1718,\n",
|
||
" 'run_id': '7683e0cd-20c2-49f2-ac02-e950e71b07db',\n",
|
||
" 'output': {'prefix': \"To set up a retrieval-augmented generation (RAG) chain using LangChain Expression Language (LCEL), you'll need to follow a few steps. This chain will accept a string as input, retrieve relevant documents based on that input, and then generate a response based on both the input and the retrieved documents. Here's how you can do it:\\n\\n\",\n",
|
||
" 'imports': 'from langchain_core.prompts import ChatPromptTemplate\\nfrom langchain_openai import ChatOpenAI\\nfrom langchain_community.vectorstores import FAISS\\nfrom langchain_core.output_parsers import StrOutputParser\\nfrom langchain_core.runnables import RunnablePassthrough\\nfrom langchain_openai.embeddings import OpenAIEmbeddings\\n\\n# Assuming you have a list of documents to index\\nfrom langchain_core.documents import Document',\n",
|
||
" 'code': '# Initialize the vector store with documents\\nvectorstore = FAISS.from_documents(\\n [\\n Document(page_content=\"Document 1 content\", metadata={}),\\n Document(page_content=\"Document 2 content\", metadata={}),\\n # Add more documents as needed\\n ],\\n OpenAIEmbeddings()\\n)\\n\\n# Create a retriever from the vector store\\nretriever = vectorstore.as_retriever()\\n\\n# Define the prompt template\\nprompt_template = \"\"\"Answer the question based only on the following context:{context}\\\\nQuestion: {question}\"\"\"\\nprompt = ChatPromptTemplate.from_template(prompt_template)\\n\\n# Initialize the model\\nmodel = ChatOpenAI()\\n\\n# Define the RAG chain\\nrag_chain = (\\n {\"context\": retriever, \"question\": RunnablePassthrough()} | prompt | model | StrOutputParser()\\n)\\n\\n# Example usage\\ninput_question = \"What is the capital of France?\"\\nresponse = rag_chain.invoke({\"question\": input_question})\\nprint(response)'},\n",
|
||
" 'reference': {'answer': \"Use RunnablePassthrough to pass the input to the retriever and build a prompt to pass to the LLM: ! pip install langchain langchain-openai faiss-cpu; from operator import itemgetter; from langchain_community.vectorstores import FAISS; from langchain_core.output_parsers import StrOutputParser; from langchain_core.prompts import ChatPromptTemplate; from langchain_core.runnables import RunnablePassthrough; from langchain_openai import ChatOpenAI, OpenAIEmbeddings; vectorstore = FAISS.from_texts(['harrison worked at kensho'], embedding=OpenAIEmbeddings()); retriever = vectorstore.as_retriever(); template = 'Answer the question based only on the following context:{context}Question: {question}'; prompt = ChatPromptTemplate.from_template(template); model = ChatOpenAI(); chain = ({'context': retriever, 'question': RunnablePassthrough()} | prompt | model | StrOutputParser()); response = chain.invoke('where did harrison work?'); print(response)\"}},\n",
|
||
" '861ef45e-5c52-446b-bd86-bc29bb339264': {'input': {'question': 'How can I use a custom function to route between 2 chains in LCEL?'},\n",
|
||
" 'feedback': [EvaluationResult(key='check_import', score=1, value=None, comment=None, correction=None, evaluator_info={}, source_run_id=None, target_run_id=None),\n",
|
||
" EvaluationResult(key='check_execution', score=0, value=None, comment=None, correction=None, evaluator_info={}, source_run_id=None, target_run_id=None)],\n",
|
||
" 'execution_time': 29.136071,\n",
|
||
" 'run_id': '35784de4-73c9-44ac-b7ce-b9bfa641df6b',\n",
|
||
" 'output': {'prefix': \"To route between two chains in LCEL based on a custom function, you can utilize the RunnableLambda component. This component allows you to define a function that dynamically decides which chain to execute based on the input. Here's a step-by-step guide to achieve this:\\n\\n1. Define your two chains that you want to route between. For simplicity, let's assume these chains are `chain1` and `chain2`.\\n2. Create a custom function that takes an input and returns one of the chains based on some condition.\\n3. Use `RunnableLambda` to wrap this custom function, making it a part of your LCEL chain.\\n4. Invoke the resulting chain with your input.\\n\\nHere's how you can implement this approach:\",\n",
|
||
" 'imports': 'from langchain_core.runnables import RunnableLambda\\nfrom langchain_core.prompts import ChatPromptTemplate\\nfrom langchain_openai import ChatOpenAI',\n",
|
||
" 'code': '# Define your two chains\\nprompt1 = ChatPromptTemplate.from_template(\"Tell me a joke about {topic}\")\\nmodel1 = ChatOpenAI()\\nchain1 = prompt1 | model1\\n\\nprompt2 = ChatPromptTemplate.from_template(\"Give me a fact about {topic}\")\\nmodel2 = ChatOpenAI()\\nchain2 = prompt2 | model2\\n\\n# Custom function to decide which chain to use based on the input\\ndef route(input):\\n if input[\"topic\"] == \"math\":\\n return chain2\\n else:\\n return chain1\\n\\n# Wrap the custom function with RunnableLambda\\nrouter = RunnableLambda(route)\\n\\n# Example input\\ntopic_input = {\"topic\": \"math\"}\\n\\n# Invoke the router with the input\\ndef routed_chain(input):\\n return router.invoke(input)\\n\\n# Execute the routed chain\\nresult = routed_chain(topic_input)\\nprint(result)'},\n",
|
||
" 'reference': {'answer': 'Use a RunnableLambda with custom routing logic. from langchain.prompts import PromptTemplate; from langchain_community.chat_models import ChatAnthropic; from langchain_core.output_parsers import StrOutputParser; chain = (PromptTemplate.from_template(\\'Given the user question below, classify it as either being about `LangChain`, `Anthropic`, or `Other`. Do not respond with more than one word. <question> {question} </question> Classification:\\') | ChatAnthropic() | StrOutputParser()); def route(info): if \\'anthropic\\' in info[\\'topic\\'].lower(): return anthropic_chain; elif \\'langchain\\' in info[\\'topic\\'].lower(): return langchain_chain; langchain_chain = (PromptTemplate.from_template(\\'You are an expert in langchain. Always answer questions starting with As Harrison Chase told me\". Respond to the following question: Question: {question} Answer:\\') | ChatAnthropic()); anthropic_chain = (PromptTemplate.from_template(\\'You are an expert in anthropic. Always answer questions starting with \"As Dario Amodei told me\". Respond to the following question: Question: {question} Answer:\\') | ChatAnthropic()); from langchain_core.runnables import RunnableLambda; full_chain = {\\'topic\\': chain'}},\n",
|
||
" '0a08d656-3938-47cb-a77f-affc9f82fa47': {'input': {'question': 'How can I make the output of my LCEL chain a string?'},\n",
|
||
" 'feedback': [EvaluationResult(key='check_import', score=1, value=None, comment=None, correction=None, evaluator_info={}, source_run_id=None, target_run_id=None),\n",
|
||
" EvaluationResult(key='check_execution', score=1, value=None, comment=None, correction=None, evaluator_info={}, source_run_id=None, target_run_id=None)],\n",
|
||
" 'execution_time': 13.621236,\n",
|
||
" 'run_id': '6101b609-7ca7-462f-9e3d-d96977ce3e7d',\n",
|
||
" 'output': {'prefix': \"To make the output of an LCEL chain a string, you can utilize the StrOutputParser component from the langchain_core.output_parsers module. This component is designed to take the output from a model or any other component in the chain and convert it into a string format. Here's how you can integrate the StrOutputParser into your LCEL chain to ensure the final output is a string.\\n\\n\",\n",
|
||
" 'imports': 'from langchain_core.output_parsers import StrOutputParser\\nfrom langchain_core.prompts import ChatPromptTemplate\\nfrom langchain_openai import ChatOpenAI\\n',\n",
|
||
" 'code': '# Define your prompt template\\nprompt = ChatPromptTemplate.from_template(\"Tell me a joke about {topic}\")\\n\\n# Initialize the model\\nmodel = ChatOpenAI()\\n\\n# Define the output parser to convert output to string\\noutput_parser = StrOutputParser()\\n\\n# Construct the chain\\nchain = prompt | model | output_parser\\n\\n# Invoke the chain with a specific topic\\nfinal_output = chain.invoke({\"topic\": \"bears\"})\\n\\n# The final_output will be a string containing the joke\\nprint(final_output)'},\n",
|
||
" 'reference': {'answer': \"Use StrOutputParser. from langchain_openai import ChatOpenAI; from langchain_core.prompts import ChatPromptTemplate; from langchain_core.output_parsers import StrOutputParser; prompt = ChatPromptTemplate.from_template('Tell me a short joke about {topic}'); model = ChatOpenAI(model='gpt-3.5-turbo') #gpt-4 or other LLMs can be used here; output_parser = StrOutputParser(); chain = prompt | model | output_parser\"}},\n",
|
||
" '014b3a4a-3ece-4cd7-b5c6-f99da90bee00': {'input': {'question': \"I've defined a LCEL runnable chain = prompt | model. How can I look at the input schema?\"},\n",
|
||
" 'feedback': [EvaluationResult(key='check_import', score=1, value=None, comment=None, correction=None, evaluator_info={}, source_run_id=None, target_run_id=None),\n",
|
||
" EvaluationResult(key='check_execution', score=1, value=None, comment=None, correction=None, evaluator_info={}, source_run_id=None, target_run_id=None)],\n",
|
||
" 'execution_time': 16.750804,\n",
|
||
" 'run_id': '8a2222ef-9ef6-4b71-bba2-2964213914ad',\n",
|
||
" 'output': {'prefix': \"To inspect the input schema of a LCEL runnable chain, you can use the `input_schema` attribute of the chain. This attribute provides access to the Pydantic model that describes the expected structure of the input data for the chain. Here's how you can do it:\",\n",
|
||
" 'imports': 'from langchain_core.prompts import ChatPromptTemplate\\nfrom langchain_openai import ChatOpenAI',\n",
|
||
" 'code': '# Assuming you have already defined your chain as `chain = prompt | model`\\n\\n# Define the prompt\\nprompt = ChatPromptTemplate.from_template(\"tell me a joke about {topic}\")\\n\\n# Define the model\\nmodel = ChatOpenAI()\\n\\n# Create the chain\\nchain = prompt | model\\n\\n# Inspect the input schema\\nprint(chain.input_schema.schema())'},\n",
|
||
" 'reference': {'answer': 'All runnables expose input and output schemas to inspect the inputs and outputs. input_schema is an input Pydantic model auto-generated from the structure of the Runnable. You can call .schema() on it to obtain a JSONSchema representation of any runnable: # The input schema of the chain is the input schema of its first part, the prompt. chain.input_schema.schema()'}},\n",
|
||
" 'f70fca40-b67f-4e71-8efd-4c49169b5a98': {'input': {'question': \"My LCEL map contains the key 'question'. What is the difference between using itemgetter('question'), lambda x: x['question'], and x.get('question')?\"},\n",
|
||
" 'feedback': [EvaluationResult(key='check_import', score=1, value=None, comment=None, correction=None, evaluator_info={}, source_run_id=None, target_run_id=None),\n",
|
||
" EvaluationResult(key='check_execution', score=0, value=None, comment=None, correction=None, evaluator_info={}, source_run_id=None, target_run_id=None)],\n",
|
||
" 'execution_time': 33.721019,\n",
|
||
" 'run_id': 'f8989ca4-f361-4909-b98c-e4fe733f3bd3',\n",
|
||
" 'output': {'prefix': \"The user is asking about the differences between using `itemgetter('question')`, `lambda x: x['question']`, and `x.get('question')` in the context of accessing a value from a dictionary in Python, specifically within an LCEL map where the key is 'question'.\\n\\n\",\n",
|
||
" 'imports': 'from operator import itemgetter',\n",
|
||
" 'code': \"# Example dictionary representing an LCEL map\\ndata = {'question': 'What is LCEL?'}\\n\\n# Using itemgetter\\nget_question_itemgetter = itemgetter('question')\\nquestion_itemgetter = get_question_itemgetter(data)\\n\\n# Using lambda\\nget_question_lambda = lambda x: x['question']\\nquestion_lambda = get_question_lambda(data)\\n\\n# Using .get method\\nquestion_get = data.get('question')\\n\\n# Printing the results\\neach method to see the output\\nprint('Using itemgetter:', question_itemgetter)\\nprint('Using lambda:', question_lambda)\\nprint('Using .get:', question_get)\"},\n",
|
||
" 'reference': {'answer': \"Itemgetter can be used as shorthand to extract specific keys from the map. In the context of a map operation, the lambda function is applied to each element in the input map and the function returns the value associated with the key 'question'. (get) is safer for accessing values in a dictionary because it handles the case where the key might not exist.\"}},\n",
|
||
" '66040817-c67a-4377-ab2b-8e90f76e1db2': {'input': {'question': 'How to structure output of an LCEL chain as a Pydantic object with prefix and code_block?'},\n",
|
||
" 'feedback': [EvaluationResult(key='check_import', score=1, value=None, comment=None, correction=None, evaluator_info={}, source_run_id=None, target_run_id=None),\n",
|
||
" EvaluationResult(key='check_execution', score=0, value=None, comment=None, correction=None, evaluator_info={}, source_run_id=None, target_run_id=None)],\n",
|
||
" 'execution_time': 21.099357,\n",
|
||
" 'run_id': '64b0fc82-cc0b-44b1-a467-47413b56d76a',\n",
|
||
" 'output': {'prefix': \"To structure the output of an LCEL chain as a Pydantic object with a prefix and code block, you can follow these steps:\\n\\n1. Define a Pydantic model that represents the structure of the output you expect from the LCEL chain. This model should include fields for the prefix and the code block.\\n2. After executing the LCEL chain and obtaining the output, instantiate the Pydantic model with the output data.\\n3. You can then use this Pydantic object in your application as needed, ensuring that the output is structured according to the defined model.\\n\\nHere's an example implementation:\\n\",\n",
|
||
" 'imports': 'from pydantic import BaseModel, Field\\nfrom typing import Any, Dict\\n\\n# Define the Pydantic model\\nclass LCELChainOutput(BaseModel):\\n prefix: str = Field(..., description=\"The prefix of the output\")\\n code_block: str = Field(..., description=\"The code block of the output\")\\n\\n# Example function to execute an LCEL chain and structure its output\\ndef execute_lcel_chain_and_structure_output(chain: Any, input_data: Dict) -> LCELChainOutput:\\n # Execute the LCEL chain with the given input data\\n raw_output = chain.invoke(input_data)\\n \\n # Structure the output as a Pydantic object\\n structured_output = LCELChainOutput(prefix=\"Output Prefix\", code_block=raw_output)\\n \\n return structured_output',\n",
|
||
" 'code': \"# Assuming `chain` is your LCEL chain and `input_data` is the input to the chain\\n# Execute the chain and get the structured output\\nstructured_output = execute_lcel_chain_and_structure_output(chain, {'input_key': 'input_value'})\\n\\n# Use the structured output as needed\\nprint(structured_output.prefix)\\nprint(structured_output.code_block)\"},\n",
|
||
" 'reference': {'answer': \"We can use PydanticOutputParser. from langchain.output_parsers import PydanticOutputParser; from langchain.prompts import PromptTemplate; from langchain.pydantic_v1 import BaseModel, Field; class FunctionOutput(BaseModel): prefix: str = Field(description='The prefix of the output'); code_block: str = Field(description='The code block of the output'); parser = PydanticOutputParser(pydantic_object=FunctionOutput); format_instructions = parser.get_format_instructions(); prompt = PromptTemplate(template='Output format instructions:\\\\n{format_instructions}\\\\n\\\\nQuery: {query}\\\\n', input_variables=['query'], partial_variables={'format_instructions': format_instructions}); model = ChatOpenAI(model_name='gpt-4'); prompt_and_model = prompt | model; output = prompt_and_model.invoke({'query': 'Give me a function that will add two numbers:'}); parsed_output = parser.invoke(output); prefix = parsed_output.prefix; code_block = parsed_output.code_block\"}},\n",
|
||
" 'af319ff2-0d7f-4454-b79f-7e8c3a122bf9': {'input': {'question': \"I have a LCEL runnable, chain, and am passing in a map w/ {'question' 'where did harrison work', 'language': 'italian'}. How can I extract the value of 'language' to pass to my prompt?\"},\n",
|
||
" 'feedback': [EvaluationResult(key='check_import', score=1, value=None, comment=None, correction=None, evaluator_info={}, source_run_id=None, target_run_id=None),\n",
|
||
" EvaluationResult(key='check_execution', score=0, value=None, comment=None, correction=None, evaluator_info={}, source_run_id=None, target_run_id=None)],\n",
|
||
" 'execution_time': 18.49063,\n",
|
||
" 'run_id': '51f43c0d-6e6d-42f3-aec7-41f976bcb3ea',\n",
|
||
" 'output': {'prefix': \"To extract the value of 'language' from the input map and pass it to your prompt in a LangChain Expression Language (LCEL) runnable, you can use the itemgetter function from the operator module. This function allows you to fetch the value associated with a specific key in a dictionary. In this case, you want to extract the 'language' key from the input map and pass its value to the prompt. Here's how you can do it:\",\n",
|
||
" 'imports': 'from operator import itemgetter\\nfrom langchain_core.prompts import ChatPromptTemplate\\nfrom langchain_openai import ChatOpenAI',\n",
|
||
" 'code': '# Define your prompt template with a placeholder for the language\\nprompt_template = \"\"\"Answer the question based only on the following context:{context}\\\\nQuestion: {question}\\\\nAnswer in the following language: {language}\"\"\"\\n\\n# Create a ChatPromptTemplate instance with the defined template\\nprompt = ChatPromptTemplate.from_template(prompt_template)\\n\\n# Create a ChatOpenAI model instance\\nmodel = ChatOpenAI()\\n\\n# Use itemgetter to extract the \\'language\\' value from the input map\\nlanguage_extractor = itemgetter(\\'language\\')\\n\\n# Now, you can use the extracted \\'language\\' value in your chain\\n# Assuming you have a chain setup like this:\\nchain = (\\n { \\n \"context\": itemgetter(\"question\") | retriever, # Assuming you have a retriever defined\\n \"question\": itemgetter(\"question\"),\\n \"language\": language_extractor,\\n }\\n | prompt\\n | model\\n)'},\n",
|
||
" 'reference': {'answer': \"For this example, we can use itemgetter to extract specific values from the map. Here is an example: from operator import itemgetter from langchain.chat_models import ChatOpenAI from langchain.embeddings import OpenAIEmbeddings from langchain.prompts import ChatPromptTemplate from langchain.vectorstores import FAISS from langchain_core.output_parsers import StrOutputParser from langchain_core.runnables import RunnablePassthrough vectorstore = FAISS.from_texts(['harrison worked at kensho'], embedding=OpenAIEmbeddings()) retriever = vectorstore.as_retriever() template = 'Answer the question based only on the following context: {context} Question: {question} Answer in the following language: {language}' prompt = ChatPromptTemplate.from_template(template) chain = ( { 'context': itemgetter('question') | retriever, 'question': itemgetter('question'), 'language': itemgetter('language'), } | prompt | model | StrOutputParser() ) chain.invoke({'question': 'where did harrison work', 'language': 'italian'})\"}},\n",
|
||
" '5c91aa98-2431-4790-880a-7db2430d236e': {'input': {'question': 'How can we apply a function call to an LLM in an LCEL chain?'},\n",
|
||
" 'feedback': [EvaluationResult(key='check_import', score=1, value=None, comment=None, correction=None, evaluator_info={}, source_run_id=None, target_run_id=None),\n",
|
||
" EvaluationResult(key='check_execution', score=1, value=None, comment=None, correction=None, evaluator_info={}, source_run_id=None, target_run_id=None)],\n",
|
||
" 'execution_time': 17.366839,\n",
|
||
" 'run_id': '8e021847-a834-42e9-8b46-33eca556b36f',\n",
|
||
" 'output': {'prefix': \"To apply a function call to an LLM in an LCEL chain, you can use the `bind` method on the LLM component. This method allows you to specify function calls that the LLM should execute. Here's an example of how to do this:\",\n",
|
||
" 'imports': 'from langchain_core.prompts import ChatPromptTemplate\\nfrom langchain_openai import ChatOpenAI',\n",
|
||
" 'code': '# Define the prompt template\\nprompt = ChatPromptTemplate.from_template(\"Tell me a joke about {foo}\")\\n\\n# Initialize the LLM component\\nmodel = ChatOpenAI()\\n\\n# Define the function and its parameters\\nfunctions = [\\n {\\n \"name\": \"joke\",\\n \"description\": \"A joke\",\\n \"parameters\": {\\n \"type\": \"object\",\\n \"properties\": {\\n \"setup\": {\"type\": \"string\", \"description\": \"The setup for the joke\"},\\n \"punchline\": {\\n \"type\": \"string\",\\n \"description\": \"The punchline for the joke\",\\n },\\n },\\n \"required\": [\"setup\", \"punchline\"],\\n },\\n }\\n]\\n\\n# Attach the function call information to the model\\nchain = prompt | model.bind(function_call={\"name\": \"joke\"}, functions=functions)\\n\\n# Invoke the chain with input\\nresult = chain.invoke({\"foo\": \"bears\"})\\n\\n# Print the result\\nprint(result)'},\n",
|
||
" 'reference': {'answer': \"We can attach a function call to the model using bind: functions = [{'name': 'joke', 'description': 'A joke', 'parameters': {'type': 'object', 'properties': {'setup': {'type': 'string', 'description': 'The setup for the joke'}, 'punchline': {'type': 'string', 'description': 'The punchline for the joke'}}, 'required': ['setup', 'punchline']}]; chain = prompt | model.bind(function_call={'name': 'joke'}, functions=functions)\"}},\n",
|
||
" 'c2d50a07-9c5b-46c2-9d8d-05a9503280c6': {'input': {'question': 'How can I directly pass a string to a runnable and use it to construct the input needed for my prompt?'},\n",
|
||
" 'feedback': [EvaluationResult(key='check_import', score=1, value=None, comment=None, correction=None, evaluator_info={}, source_run_id=None, target_run_id=None),\n",
|
||
" EvaluationResult(key='check_execution', score=0, value=None, comment=None, correction=None, evaluator_info={}, source_run_id=None, target_run_id=None)],\n",
|
||
" 'execution_time': 33.360105,\n",
|
||
" 'run_id': 'c404a2bb-77a7-4e4a-ac14-beeeca254fe8',\n",
|
||
" 'output': {'prefix': \"To directly pass a string to a runnable and use it to construct the input needed for your prompt, you can utilize the `RunnablePassthrough` class from the LangChain Expression Language (LCEL). This class allows you to pass inputs unchanged or with the addition of extra keys, which is useful for constructing the input dictionary expected by your prompt template. \\n\\nHere's how you can achieve this:\\n\\n\",\n",
|
||
" 'imports': 'from langchain_core.runnables import RunnablePassthrough\\nfrom langchain_core.prompts import ChatPromptTemplate\\nfrom langchain_openai import ChatOpenAI',\n",
|
||
" 'code': '# Define your prompt template\\nprompt_template = \"Tell me a joke about {topic}\"\\nprompt = ChatPromptTemplate.from_template(prompt_template)\\n\\n# Define your model\\nmodel = ChatOpenAI()\\n\\n# Use RunnablePassthrough to directly pass a string and construct the input dictionary\\n# Assume the string you want to pass is \\'bears\\'\\ninput_string = \\'bears\\'\\nchain = RunnablePassthrough.assign(topic=lambda _: input_string) | prompt | model\\n\\n# Invoke the chain\\nresult = chain.invoke({})\\nprint(result)'},\n",
|
||
" 'reference': {'answer': \"Use RunnablePassthrough. from langchain_core.runnables import RunnableParallel, RunnablePassthrough; from langchain_core.prompts import ChatPromptTemplate; from langchain_openai import ChatOpenAI; prompt = ChatPromptTemplate.from_template('Tell a joke about: {input}'); model = ChatOpenAI(); runnable = ({'input' : RunnablePassthrough()} | prompt | model); runnable.invoke('flowers')\"}},\n",
|
||
" '578b518b-0e61-4d1b-8a79-a6e0ea802846': {'input': {'question': \"I'm invoking a LCEL chain with a map that contain {'question': 'how do I use Anthropic?'}. The full chain definition is full_chain = {'question': lambda x: x['question']} | sub_chain. Why is a lambda used?\"},\n",
|
||
" 'feedback': [EvaluationResult(key='check_import', score=1, value=None, comment=None, correction=None, evaluator_info={}, source_run_id=None, target_run_id=None),\n",
|
||
" EvaluationResult(key='check_execution', score=1, value=None, comment=None, correction=None, evaluator_info={}, source_run_id=None, target_run_id=None)],\n",
|
||
" 'execution_time': 17.498515,\n",
|
||
" 'run_id': '7412ae2a-b716-4b57-9ab7-71549c2674f9',\n",
|
||
" 'output': {'prefix': \"In the provided LCEL chain example, a lambda function is used within a map to dynamically extract the 'question' value from the input dictionary and pass it to the subsequent chain (sub_chain). This approach allows for flexible data manipulation and ensures that the specific piece of data ('question' in this case) is correctly forwarded to the next part of the chain for processing. The lambda function acts as a lightweight, anonymous function that takes the input dictionary (x) and returns the value associated with the 'question' key. This is particularly useful in scenarios where the input to the chain might contain more data than needed, or when the data needs to be transformed or filtered before being passed on.\\n\\nHere's a breakdown of how to implement this approach, including the necessary imports and the functioning code block:\\n\\n\",\n",
|
||
" 'imports': 'from langchain_core.runnables import RunnableLambda, RunnablePassthrough\\nfrom langchain_core.prompts import ChatPromptTemplate\\nfrom langchain_openai import ChatOpenAI\\n\\n# Assuming sub_chain is already defined and implemented elsewhere in your code.',\n",
|
||
" 'code': '# Define the sub_chain (for demonstration purposes, let\\'s assume it\\'s a simple prompt and model chain)\\nsub_chain = ChatPromptTemplate.from_template(\"{question}\") | ChatOpenAI()\\n\\n# Define the full chain with a lambda to extract \\'question\\'\\nfull_chain = {\"question\": RunnablePassthrough().assign(question=lambda x: x[\\'question\\'])} | sub_chain\\n\\n# Example invocation\\nresult = full_chain.invoke({\"question\": \"how do I use Anthropic?\"})\\nprint(result)'},\n",
|
||
" 'reference': {'answer': \"The lambda function is an anonymous function that takes one argument, x, and returns x['question']. In the context of a map operation, this function is applied to each element in the input iterable. If the input is a dictionary (map), as in this case, x would be this map, and the function returns the value associated with the key 'question'.\"}},\n",
|
||
" '62eed8c3-920f-455a-ac77-dc8ace04e4ac': {'input': {'question': \"I am passing text key 'foo' to my prompt and want to process it with a function, process_text(...), prior to the prompt. How can I do this using LCEL?\"},\n",
|
||
" 'feedback': [EvaluationResult(key='check_import', score=1, value=None, comment=None, correction=None, evaluator_info={}, source_run_id=None, target_run_id=None),\n",
|
||
" EvaluationResult(key='check_execution', score=0, value=None, comment=None, correction=None, evaluator_info={}, source_run_id=None, target_run_id=None)],\n",
|
||
" 'execution_time': 16.07706,\n",
|
||
" 'run_id': '8c310df2-fe90-458a-a61a-a67b55c2277a',\n",
|
||
" 'output': {'prefix': \"To process a text key 'foo' with a function before passing it to a prompt using LangChain Expression Language (LCEL), you can utilize the RunnableLambda component. This component allows you to define a custom function that can be integrated into your LCEL chain. The process_text function will take the input text, perform the desired processing, and then the processed text will be passed to the prompt template for further action. Here's how you can achieve this:\",\n",
|
||
" 'imports': 'from langchain_core.runnables import RunnableLambda\\nfrom langchain_core.prompts import ChatPromptTemplate\\nfrom langchain_openai import ChatOpenAI',\n",
|
||
" 'code': '# Define your text processing function\\ndef process_text(text):\\n # Implement your text processing logic here\\n processed_text = text.upper() # Example: converting text to uppercase\\n return processed_text\\n\\n# Create a RunnableLambda with your processing function\\nprocess_text_runnable = RunnableLambda(process_text)\\n\\n# Define your prompt template\\nprompt_template = ChatPromptTemplate.from_template(\"Tell me something about {foo}\")\\n\\n# Define your model\\nmodel = ChatOpenAI()\\n\\n# Create the LCEL chain\\nchain = process_text_runnable | {\"foo\": RunnableLambda(lambda x: x)} | prompt_template | model\\n\\n# Example invocation\\nresult = chain.invoke({\"foo\": \"bar\"})\\nprint(result)'},\n",
|
||
" 'reference': {'answer': \"You can use a RunnableLambda to apply a function to the value of foo: chain = ( { 'a': itemgetter('foo') | RunnableLambda(process_text), | RunnableLambda(multiple_length_function), } | prompt | model )\"}},\n",
|
||
" 'b6f4ad7f-4ad8-4b9a-b355-afe72c26218a': {'input': {'question': \"I am passing a map with {'num': 1} to a LCEL chain. How can I add an extra key num2 to this map that adds 1 to the value of num. Then I want to assign this new map to a new key named output?\"},\n",
|
||
" 'feedback': [EvaluationResult(key='check_import', score=1, value=None, comment=None, correction=None, evaluator_info={}, source_run_id=None, target_run_id=None),\n",
|
||
" EvaluationResult(key='check_execution', score=1, value=None, comment=None, correction=None, evaluator_info={}, source_run_id=None, target_run_id=None)],\n",
|
||
" 'execution_time': 12.846802,\n",
|
||
" 'run_id': '7e39466d-6be8-49a1-9d23-75126aa0489a',\n",
|
||
" 'output': {'prefix': \"To add an extra key `num2` to a map that adds 1 to the value of `num` and then assign this new map to a new key named `output`, you can use the `RunnablePassthrough.assign` method in LangChain Expression Language (LCEL). This method allows you to modify the input map by adding or modifying keys based on the input values. Here's how you can achieve this:\\n\\n\",\n",
|
||
" 'imports': 'from langchain_core.runnables import RunnablePassthrough',\n",
|
||
" 'code': \"# Define the initial input map\\ninput_map = {'num': 1}\\n\\n# Use RunnablePassthrough.assign to add the 'num2' key\\n# The lambda function takes the input map and returns a new map with 'num2' added\\nmodified_map = RunnablePassthrough.assign(num2=lambda x: x['num'] + 1).invoke(input_map)\\n\\n# Assign the modified map to a new key named 'output'\\noutput = {'output': modified_map}\\n\\n# Print the result to verify\\nprint(output)\"},\n",
|
||
" 'reference': {'answer': \"We can use RunnablePassthrough with a lambda function. from langchain_core.runnables import RunnableParallel, RunnablePassthrough; runnable = RunnableParallel(output=RunnablePassthrough.assign(num2=lambda x: x['num'] + 1),); runnable.invoke({'num': 1})\"}},\n",
|
||
" '129823fb-0ea1-4f16-a254-c2e4e40683a9': {'input': {'question': 'How can I create a LCEL chain that queries a SQL database?'},\n",
|
||
" 'feedback': [EvaluationResult(key='check_import', score=1, value=None, comment=None, correction=None, evaluator_info={}, source_run_id=None, target_run_id=None),\n",
|
||
" EvaluationResult(key='check_execution', score=0, value=None, comment=None, correction=None, evaluator_info={}, source_run_id=None, target_run_id=None)],\n",
|
||
" 'execution_time': 45.628022,\n",
|
||
" 'run_id': '45423efb-d340-4e11-acc7-cc68918b15c2',\n",
|
||
" 'output': {'prefix': \"To create a LCEL chain that queries a SQL database, you can follow these steps:\\n\\n1. **Define a SQL Database Retrieval Function**: First, you need to define a function that can query your SQL database based on a given input. This function will be used as a part of your LCEL chain to retrieve data from the database.\\n\\n2. **Create a Prompt Template**: Define a prompt template that formats the user's query into a suitable format for querying the database.\\n\\n3. **Compose the LCEL Chain**: Use the `RunnableLambda` to wrap your SQL query function, and then chain it with other components like prompt templates and output parsers as needed.\\n\\nHere's how you can implement this in code:\",\n",
|
||
" 'imports': 'from langchain_core.runnables import RunnableLambda\\nfrom langchain_core.prompts import PromptTemplate\\nfrom langchain_core.output_parsers import StrOutputParser\\nimport sqlite3',\n",
|
||
" 'code': '# Define the SQL query function\\ndef query_database(query):\\n # Connect to your SQLite database\\n conn = sqlite3.connect(\\'your_database.db\\')\\n cursor = conn.cursor()\\n # Execute the query\\n cursor.execute(query)\\n # Fetch the results\\n results = cursor.fetchall()\\n conn.close()\\n return results\\n\\n# Create a prompt template\\ndef format_query(input):\\n return f\"SELECT * FROM your_table WHERE your_column = \\'{input[\\'query\\']}\\'\"\\n\\n# Wrap the SQL query function in a RunnableLambda\\nquery_db_runnable = RunnableLambda(query_database)\\n\\n# Define the LCEL chain\\nchain = PromptTemplate.from_lambda(format_query) | query_db_runnable | StrOutputParser()\\n\\n# Example usage\\ninput = {\\'query\\': \\'example_query\\'}\\nresults = chain.invoke(input)\\nprint(results)'},\n",
|
||
" 'reference': {'answer': \"Follow these steps to create an LCEL chain that can query a SQL DB: from langchain_core.prompts import ChatPromptTemplate; template = 'Based on the table schema below, write a SQL query that would answer the user's question: {schema} Question: {question} SQL Query:'; prompt = ChatPromptTemplate.from_template(template); from langchain_community.utilities import SQLDatabase; db = SQLDatabase.from_uri('sqlite:///./Chinook.db'); def get_schema(_): return db.get_table_info(); def run_query(query): return db.run(query); from langchain_core.output_parsers import StrOutputParser; from langchain_core.runnables import RunnablePassthrough; from langchain_openai import ChatOpenAI; model = ChatOpenAI(); sql_response = (RunnablePassthrough.assign(schema=get_schema) | prompt | model.bind(stop=['\\\\nSQLResult:']) | StrOutputParser()); template = 'Based on the table schema below, question, sql query, and sql response, write a natural language response: {schema} Question: {question} SQL Query: {query} SQL Response: {response}'; prompt_response = ChatPromptTemplate.from_template(template); full_chain = (RunnablePassthrough.assign(query=sql_response).assign(schema=get_schema, response=lambda x: db.run(x['query']), ) | prompt_response | model); full_chain.invoke({'question': 'How many employees are there?'})\"}},\n",
|
||
" '7e74c8da-4a41-4ee3-81ea-4802d4b18746': {'input': {'question': 'How can I configure the temperature of an LLM when invoking the LCEL chain?'},\n",
|
||
" 'feedback': [EvaluationResult(key='check_import', score=1, value=None, comment=None, correction=None, evaluator_info={}, source_run_id=None, target_run_id=None),\n",
|
||
" EvaluationResult(key='check_execution', score=1, value=None, comment=None, correction=None, evaluator_info={}, source_run_id=None, target_run_id=None)],\n",
|
||
" 'execution_time': 12.955615,\n",
|
||
" 'run_id': 'c553ebba-aa85-4c32-a4a9-fee04444e303',\n",
|
||
" 'output': {'prefix': \"To configure the temperature of an LLM when invoking an LCEL chain, you can use the `bind` method to attach specific arguments, such as temperature, to the LLM component of your chain. This allows you to dynamically adjust the behavior of the LLM based on your requirements. Here's how you can do it:\",\n",
|
||
" 'imports': 'from langchain_core.prompts import ChatPromptTemplate\\nfrom langchain_openai import ChatOpenAI\\nfrom langchain_core.runnables import RunnablePassthrough',\n",
|
||
" 'code': '# Define your prompt template\\nprompt = ChatPromptTemplate.from_template(\"Tell me a joke about {topic}\")\\n\\n# Initialize your LLM with a specific temperature\\nmodel = ChatOpenAI()\\n\\n# Bind the temperature argument to the model\\nmodel_with_temp = model.bind(temperature=0.5)\\n\\n# Define your LCEL chain\\nchain = prompt | model_with_temp\\n\\n# Invoke the chain with a specific topic\\nresult = chain.invoke({\"topic\": \"bears\"})\\n\\n# Print the result\\nprint(result)'},\n",
|
||
" 'reference': {'answer': \"Use configuration fields. from langchain.prompts import PromptTemplate; from langchain_core.runnables import ConfigurableField; from langchain_openai import ChatOpenAI; model = ChatOpenAI(temperature=0).configurable_fields(temperature=ConfigurableField(id='llm_temperature', name='LLM Temperature', description='The temperature of the LLM', )); model.with_config(configurable={'llm_temperature': 0.9}).invoke('pick a random number')\"}},\n",
|
||
" '67ce87ac-6714-440c-8fde-bdfa1b0333f7': {'input': {'question': \"With a RAG chain in LCEL, why are documents retrieved automatically when we construct the prompt like {'context': retriever, 'question': RunnablePassthrough()} and invoke it using chain.invoke('where did harrison work?')\"},\n",
|
||
" 'feedback': [EvaluationResult(key='check_import', score=1, value=None, comment=None, correction=None, evaluator_info={}, source_run_id=None, target_run_id=None),\n",
|
||
" EvaluationResult(key='check_execution', score=0, value=None, comment=None, correction=None, evaluator_info={}, source_run_id=None, target_run_id=None)],\n",
|
||
" 'execution_time': 27.577848,\n",
|
||
" 'run_id': 'cb910e87-b5ef-4f3f-b90b-0595fdc5a36c',\n",
|
||
" 'output': {'prefix': \"In a Retrieval-Augmented Generation (RAG) chain within the LangChain Expression Language (LCEL), documents are retrieved automatically as part of the chain's execution process. This is achieved by constructing the chain with specific components that handle the retrieval and passing of context to the language model. The key to this functionality lies in how the chain is constructed and the roles of the components involved.\\n\\nThe chain is constructed using a combination of `RunnableParallel`, `retriever`, and `RunnablePassthrough` components. The `RunnableParallel` component allows for parallel execution of different tasks, where one of the tasks involves retrieving relevant documents based on the user's query. This is where the `retriever` component comes into play. The `retriever` is responsible for fetching relevant documents from a document store or database based on the input query. Once the documents are retrieved, they are passed as 'context' to the next component in the chain.\\n\\nThe `RunnablePassthrough` component is used to pass the user's original query ('question') unchanged to the next component in the chain. This allows the original query to be combined with the retrieved documents ('context') to form a complete prompt for the language model.\\n\\nWhen the chain is invoked with a specific query, such as 'where did harrison work?', the `retriever` component automatically fetches relevant documents based on this query. These documents are then passed as 'context' along with the original query ('question') to the language model. The language model uses this combined information to generate a response.\\n\\nHere's a simplified code example to illustrate how a RAG chain is constructed and invoked in LCEL:\",\n",
|
||
" 'imports': 'from langchain_core.runnables import RunnableParallel, RunnablePassthrough\\nfrom langchain_core.prompts import ChatPromptTemplate\\nfrom langchain_openai import ChatOpenAI\\nfrom langchain_community.vectorstores import FAISS\\nfrom langchain_openai.embeddings import OpenAIEmbeddings',\n",
|
||
" 'code': '# Assuming `retriever` is already initialized with a document store or database\\n\\n# Construct the RAG chain\\nchain = RunnableParallel(\\n context=retriever, # Retrieves documents based on the query\\n question=RunnablePassthrough() # Passes the original query unchanged\\n) | ChatPromptTemplate.from_template(\\n \"Answer the question based only on the following context:{context}Question: {question}\")\\n| ChatOpenAI() # The language model that generates the response\\n\\n# Invoke the chain with a specific query\\nresponse = chain.invoke(\"where did harrison work?\")\\nprint(response)'},\n",
|
||
" 'reference': {'answer': \"When we create the chain, get_relevant_documents is invoked automatically. vectorstore = FAISS.from_texts(['harrison worked at kensho'], embedding=OpenAIEmbeddings()); retriever = vectorstore.as_retriever(); chain = ({'context': retriever, 'question': RunnablePassthrough()} | prompt | model | StrOutputParser()); chain.invoke('where did harrison work?')\"}},\n",
|
||
" 'b1631c37-266d-4aea-bf45-f9a30b667de4': {'input': {'question': \"I’m passing {'a':1} and want to create an output map of {'a':1,'b':2, 'c':3}. How can I do this in LCEL?\"},\n",
|
||
" 'feedback': [EvaluationResult(key='check_import', score=1, value=None, comment=None, correction=None, evaluator_info={}, source_run_id=None, target_run_id=None),\n",
|
||
" EvaluationResult(key='check_execution', score=1, value=None, comment=None, correction=None, evaluator_info={}, source_run_id=None, target_run_id=None)],\n",
|
||
" 'execution_time': 16.760446,\n",
|
||
" 'run_id': '3cbc2dec-7032-42f6-abf7-973951987fd1',\n",
|
||
" 'output': {'prefix': \"To achieve the desired output map of {'a':1,'b':2, 'c':3} from the input {'a':1} using LangChain Expression Language (LCEL), you can use the RunnablePassthrough.assign() method. This method allows you to pass the input unchanged while adding extra keys to the output map. Here's how you can do it:\",\n",
|
||
" 'imports': 'from langchain_core.runnables import RunnablePassthrough',\n",
|
||
" 'code': \"# Define the input map\\ninput_map = {'a': 1}\\n\\n# Create a RunnablePassthrough with additional keys assigned\\ncustom_map = RunnablePassthrough.assign(a=lambda x: x['a'], b=lambda x: 2, c=lambda x: 3)\\n\\n# Invoke the runnable to get the desired output map\\noutput_map = custom_map.invoke(input_map)\\n\\n# Print the output map\\nprint(output_map)\"},\n",
|
||
" 'reference': {'answer': \"Use RunnablePassthrough: Use RunnableParallel with lambdas: \\\\n from langchain_core.runnables import RunnableParallel, RunnablePassthrough; runnable = RunnableParallel(a=lambda x: x['a'], b=lambda x: x['a']+1, c=lambda x: x['a']+2); runnable.invoke({'num': 1}). Also you can use RunnablePassthrough: from langchain_core.runnables import RunnablePassthrough; original_input = {'a': 1}; chain = RunnablePassthrough.assign(b=lambda x: 2, c=lambda x: 3); output = chain.invoke(original_input); print(output)\"}}},\n",
|
||
" 'aggregate_metrics': None}"
|
||
]
|
||
},
|
||
"execution_count": 12,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"# Run eval on base chain\n",
|
||
"run_id = uuid.uuid4().hex[:4]\n",
|
||
"project_name = \"context-stuffing-no-langgraph\"\n",
|
||
"results = client.run_on_dataset(\n",
|
||
" dataset_name=\"lcel-teacher-eval\",\n",
|
||
" llm_or_chain_factory= lambda: (lambda x: x[\"question\"]) | chain_base_case,\n",
|
||
" evaluation=evaluation_config,\n",
|
||
" project_name=f\"{run_id}-{project_name}\",\n",
|
||
")"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "50742bc3-7351-414e-942b-e40bb258ddff",
|
||
"metadata": {},
|
||
"source": [
|
||
"### Eval w/ LangGraph"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 13,
|
||
"id": "959b473a-15d4-4b61-a319-32bd33f6a7fb",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"View the evaluation results for project '92d9-context-stuffing-with-langgraph' at:\n",
|
||
"https://smith.langchain.com/o/30239cd8-922f-4722-808d-897e1e722845/datasets/9a1128ed-d4c4-425c-a81e-8a01b20e09d6/compare?selectedSessions=608106f2-8d78-4e11-b77b-e50368176d2e\n",
|
||
"\n",
|
||
"View all tests for Dataset lcel-teacher-eval at:\n",
|
||
"https://smith.langchain.com/o/30239cd8-922f-4722-808d-897e1e722845/datasets/9a1128ed-d4c4-425c-a81e-8a01b20e09d6\n",
|
||
"[> ] 0/20---GENERATE SOLUTION---\n",
|
||
"---GENERATE SOLUTION---\n",
|
||
"---GENERATE SOLUTION---\n",
|
||
"---GENERATE SOLUTION---\n",
|
||
"---GENERATE SOLUTION---\n",
|
||
"---CHECKING CODE IMPORTS---\n",
|
||
"---CODE IMPORT CHECK: SUCCESS---\n",
|
||
"---DECIDE TO TEST CODE EXECUTION---\n",
|
||
"---DECISION: TEST CODE EXECUTION---\n",
|
||
"---CHECKING CODE EXECUTION---\n",
|
||
"---CODE BLOCK CHECK: FAILED---\n",
|
||
"---DECIDE TO TEST CODE EXECUTION---\n",
|
||
"---DECISION: RE-TRY SOLUTION---\n",
|
||
"---RE-GENERATE SOLUTION w/ ERROR FEEDBACK---\n",
|
||
"---CHECKING CODE IMPORTS---\n",
|
||
"---CODE IMPORT CHECK: SUCCESS---\n",
|
||
"---DECIDE TO TEST CODE EXECUTION---\n",
|
||
"---DECISION: TEST CODE EXECUTION---\n",
|
||
"---CHECKING CODE EXECUTION---\n",
|
||
"content=\"Why don't bears like fast food? Because they can't bear the wait!\"\n",
|
||
"---CODE BLOCK CHECK: SUCCESS---\n",
|
||
"---DECIDE TO TEST CODE EXECUTION---\n",
|
||
"---DECISION: TEST CODE EXECUTION---\n",
|
||
"---CHECKING CODE IMPORTS---\n",
|
||
"---CODE IMPORT CHECK: SUCCESS---\n",
|
||
"---DECIDE TO TEST CODE EXECUTION---\n",
|
||
"---DECISION: TEST CODE EXECUTION---\n",
|
||
"---CHECKING CODE EXECUTION---\n",
|
||
"content='Why did the bear bring a flashlight to the party? \\n\\nBecause he heard it was a \"beary\" good time!'\n",
|
||
"Hello Bob! How can I help you today?\n",
|
||
"{'history': [HumanMessage(content='hi im bob'), AIMessage(content='Hello Bob! How can I help you today?')]}\n",
|
||
"---CODE BLOCK CHECK: SUCCESS---\n",
|
||
"---DECIDE TO TEST CODE EXECUTION---\n",
|
||
"---DECISION: TEST CODE EXECUTION---\n",
|
||
"[-> ] 1/20---GENERATE SOLUTION---\n",
|
||
"Hello Bob! How can I help you today?\n",
|
||
"{'history': [HumanMessage(content='hi im bob'), AIMessage(content='Hello Bob! How can I help you today?')]}\n",
|
||
"[----> ] 2/20---GENERATE SOLUTION---\n",
|
||
"---CHECKING CODE IMPORTS---\n",
|
||
"---CODE IMPORT CHECK: SUCCESS---\n",
|
||
"---DECIDE TO TEST CODE EXECUTION---\n",
|
||
"---DECISION: TEST CODE EXECUTION---\n",
|
||
"---CHECKING CODE EXECUTION---\n",
|
||
"{'joke': \"Why do bears have hairy coats?\\n\\nBecause they don't have razor blades!\", 'poem': \"In the forest deep and wild,\\nWhere the trees stand tall and piled,\\nRoams the mighty bear so grand,\\nWith fur as dark as the night's hand.\\n\\nStrong and fierce, yet gentle too,\\nIn their world of green and blue,\\nThey roam the land with quiet grace,\\nIn search of food to fill their space.\\n\\nWith a lumbering gait they tread,\\nThrough the trees where they are led,\\nA symbol of strength and might,\\nIn the pale moon's soft, silver light.\\n\\nSo let us cherish these creatures rare,\\nAnd treat them with the utmost care,\\nFor in their eyes we see the truth,\\nOf a world that needs their gentle youth.\"}\n",
|
||
"---CODE BLOCK CHECK: SUCCESS---\n",
|
||
"---DECIDE TO TEST CODE EXECUTION---\n",
|
||
"---DECISION: TEST CODE EXECUTION---\n",
|
||
"{'joke': 'Why do bears have hairy coats?\\n\\nFur protection!', 'poem': \"In the forest deep and wild,\\nWhere ancient trees stretch up high,\\nThere roams a creature fierce and mild,\\nWith fur as black as the midnight sky.\\n\\nBears with strength that knows no bound,\\nYet gentle in their own way,\\nThey roam the woods without a sound,\\nGuided by the light of day.\\n\\nTheir paws leave prints in the soft earth,\\nA reminder of their mighty grace,\\nIn their eyes, a wisdom of great worth,\\nA creature of a noble race.\\n\\nSo let us cherish these majestic beasts,\\nAnd protect them from harm's way,\\nFor in their presence, our hearts find peace,\\nIn the wild where they forever stray.\"}\n",
|
||
"[-------> ] 3/20---GENERATE SOLUTION---\n",
|
||
"---CHECKING CODE IMPORTS---\n",
|
||
"---CODE IMPORT CHECK: SUCCESS---\n",
|
||
"---DECIDE TO TEST CODE EXECUTION---\n",
|
||
"---DECISION: TEST CODE EXECUTION---\n",
|
||
"---CHECKING CODE EXECUTION---\n",
|
||
"---CODE BLOCK CHECK: FAILED---\n",
|
||
"---DECIDE TO TEST CODE EXECUTION---\n",
|
||
"---DECISION: RE-TRY SOLUTION---\n",
|
||
"---RE-GENERATE SOLUTION w/ ERROR FEEDBACK---\n",
|
||
"---CHECKING CODE IMPORTS---\n",
|
||
"---CODE IMPORT CHECK: SUCCESS---\n",
|
||
"---DECIDE TO TEST CODE EXECUTION---\n",
|
||
"---DECISION: TEST CODE EXECUTION---\n",
|
||
"---CHECKING CODE EXECUTION---\n",
|
||
"---CODE BLOCK CHECK: FAILED---\n",
|
||
"---DECIDE TO TEST CODE EXECUTION---\n",
|
||
"---DECISION: RE-TRY SOLUTION---\n",
|
||
"---RE-GENERATE SOLUTION w/ ERROR FEEDBACK---\n",
|
||
"---CHECKING CODE IMPORTS---\n",
|
||
"---CODE IMPORT CHECK: SUCCESS---\n",
|
||
"---DECIDE TO TEST CODE EXECUTION---\n",
|
||
"---DECISION: TEST CODE EXECUTION---\n",
|
||
"---CHECKING CODE EXECUTION---\n",
|
||
"Why did the bear bring a flashlight to the party? \n",
|
||
"\n",
|
||
"Because he heard it was a \"beary\" good time!\n",
|
||
"---CODE BLOCK CHECK: SUCCESS---\n",
|
||
"---DECIDE TO TEST CODE EXECUTION---\n",
|
||
"---DECISION: TEST CODE EXECUTION---\n",
|
||
"Why did the bear break up with his girlfriend?\n",
|
||
"Because he couldn't bear the relationship anymore!\n",
|
||
"[---------> ] 4/20---GENERATE SOLUTION---\n",
|
||
"---CHECKING CODE IMPORTS---\n",
|
||
"---CODE IMPORT CHECK: SUCCESS---\n",
|
||
"---DECIDE TO TEST CODE EXECUTION---\n",
|
||
"---DECISION: TEST CODE EXECUTION---\n",
|
||
"---CHECKING CODE EXECUTION---\n",
|
||
"Python is a high-level, interpreted programming language that was created by Guido van Rossum in the late 1980s. It is known for its simplicity and readability, making it a popular choice for beginners and experienced programmers alike. Python supports multiple programming paradigms, including object-oriented, imperative, functional, and procedural programming. It has a large standard library that provides support for a wide range of tasks, such as web development, data analysis, machine learning, and more. Python is also widely used in the scientific and academic communities due to its simplicity and versatility.\n",
|
||
"---CODE BLOCK CHECK: SUCCESS---\n",
|
||
"---DECIDE TO TEST CODE EXECUTION---\n",
|
||
"---DECISION: TEST CODE EXECUTION---\n",
|
||
"Python is a high-level, interpreted programming language known for its simplicity and readability. It was created by Guido van Rossum and first released in 1991. Python is widely used in various fields such as web development, data science, artificial intelligence, and automation. It has a large standard library that provides support for many common tasks and modules for extending its functionality. Python uses indentation to define blocks of code, making it visually structured and easy to understand. Its syntax is designed to be clear and concise, making it a popular choice for beginners and experienced programmers alike.\n",
|
||
"---CHECKING CODE IMPORTS---\n",
|
||
"---CODE IMPORT CHECK: SUCCESS---\n",
|
||
"---DECIDE TO TEST CODE EXECUTION---\n",
|
||
"---DECISION: TEST CODE EXECUTION---\n",
|
||
"---CHECKING CODE EXECUTION---\n",
|
||
"{'title': 'PromptInput', 'type': 'object', 'properties': {'topic': {'title': 'Topic', 'type': 'string'}}}\n",
|
||
"---CODE BLOCK CHECK: SUCCESS---\n",
|
||
"---DECIDE TO TEST CODE EXECUTION---\n",
|
||
"---DECISION: TEST CODE EXECUTION---\n",
|
||
"[-----------> ] 5/20---GENERATE SOLUTION---\n",
|
||
"{'title': 'PromptInput', 'type': 'object', 'properties': {'topic': {'title': 'Topic', 'type': 'string'}}}\n",
|
||
"[--------------> ] 6/20---GENERATE SOLUTION---\n",
|
||
"---CHECKING CODE IMPORTS---\n",
|
||
"---CODE IMPORT CHECK: SUCCESS---\n",
|
||
"---DECIDE TO TEST CODE EXECUTION---\n",
|
||
"---DECISION: TEST CODE EXECUTION---\n",
|
||
"---CHECKING CODE EXECUTION---\n",
|
||
"---CODE BLOCK CHECK: FAILED---\n",
|
||
"---DECIDE TO TEST CODE EXECUTION---\n",
|
||
"---DECISION: RE-TRY SOLUTION---\n",
|
||
"---RE-GENERATE SOLUTION w/ ERROR FEEDBACK---\n",
|
||
"---CHECKING CODE IMPORTS---\n",
|
||
"---CODE IMPORT CHECK: SUCCESS---\n",
|
||
"---DECIDE TO TEST CODE EXECUTION---\n",
|
||
"---DECISION: TEST CODE EXECUTION---\n",
|
||
"---CHECKING CODE EXECUTION---\n",
|
||
"---CODE BLOCK CHECK: SUCCESS---\n",
|
||
"---DECIDE TO TEST CODE EXECUTION---\n",
|
||
"---DECISION: TEST CODE EXECUTION---\n",
|
||
"[-----------------> ] 7/20---GENERATE SOLUTION---\n",
|
||
"---CHECKING CODE IMPORTS---\n",
|
||
"---CODE IMPORT CHECK: SUCCESS---\n",
|
||
"---DECIDE TO TEST CODE EXECUTION---\n",
|
||
"---DECISION: TEST CODE EXECUTION---\n",
|
||
"---CHECKING CODE EXECUTION---\n",
|
||
"---CODE BLOCK CHECK: FAILED---\n",
|
||
"---DECIDE TO TEST CODE EXECUTION---\n",
|
||
"---DECISION: RE-TRY SOLUTION---\n",
|
||
"---RE-GENERATE SOLUTION w/ ERROR FEEDBACK---\n",
|
||
"---CHECKING CODE IMPORTS---\n",
|
||
"---CODE IMPORT CHECK: SUCCESS---\n",
|
||
"---DECIDE TO TEST CODE EXECUTION---\n",
|
||
"---DECISION: TEST CODE EXECUTION---\n",
|
||
"---CHECKING CODE EXECUTION---\n",
|
||
"---CODE BLOCK CHECK: FAILED---\n",
|
||
"---DECIDE TO TEST CODE EXECUTION---\n",
|
||
"---DECISION: RE-TRY SOLUTION---\n",
|
||
"---RE-GENERATE SOLUTION w/ ERROR FEEDBACK---\n",
|
||
"---CHECKING CODE IMPORTS---\n",
|
||
"---CODE IMPORT CHECK: SUCCESS---\n",
|
||
"---DECIDE TO TEST CODE EXECUTION---\n",
|
||
"---DECISION: TEST CODE EXECUTION---\n",
|
||
"---CHECKING CODE EXECUTION---\n",
|
||
"---CHECKING CODE IMPORTS---\n",
|
||
"---CODE IMPORT CHECK: SUCCESS---\n",
|
||
"---DECIDE TO TEST CODE EXECUTION---\n",
|
||
"---DECISION: TEST CODE EXECUTION---\n",
|
||
"---CHECKING CODE EXECUTION---\n",
|
||
"---CODE BLOCK CHECK: FAILED---\n",
|
||
"---DECIDE TO TEST CODE EXECUTION---\n",
|
||
"---DECISION: RE-TRY SOLUTION---\n",
|
||
"---RE-GENERATE SOLUTION w/ ERROR FEEDBACK---\n",
|
||
"Why do bears have hairy coats?\n",
|
||
"---CODE BLOCK CHECK: SUCCESS---\n",
|
||
"---DECIDE TO TEST CODE EXECUTION---\n",
|
||
"---DECISION: TEST CODE EXECUTION---\n",
|
||
"What do you call a bear with no teeth?\n",
|
||
"[-------------------> ] 8/20---GENERATE SOLUTION---\n",
|
||
"---CHECKING CODE IMPORTS---\n",
|
||
"---CODE IMPORT CHECK: SUCCESS---\n",
|
||
"---DECIDE TO TEST CODE EXECUTION---\n",
|
||
"---DECISION: TEST CODE EXECUTION---\n",
|
||
"---CHECKING CODE EXECUTION---\n",
|
||
"---CODE BLOCK CHECK: FAILED---\n",
|
||
"---DECIDE TO TEST CODE EXECUTION---\n",
|
||
"---DECISION: TEST CODE EXECUTION---\n",
|
||
"---CHECKING CODE IMPORTS---\n",
|
||
"---CODE IMPORT CHECK: SUCCESS---\n",
|
||
"---DECIDE TO TEST CODE EXECUTION---\n",
|
||
"---DECISION: TEST CODE EXECUTION---\n",
|
||
"---CHECKING CODE EXECUTION---\n",
|
||
"---CODE BLOCK CHECK: FAILED---\n",
|
||
"---DECIDE TO TEST CODE EXECUTION---\n",
|
||
"---DECISION: RE-TRY SOLUTION---\n",
|
||
"---RE-GENERATE SOLUTION w/ ERROR FEEDBACK---\n",
|
||
"[---------------------> ] 9/20---GENERATE SOLUTION---\n",
|
||
"---CHECKING CODE IMPORTS---\n",
|
||
"---CODE IMPORT CHECK: SUCCESS---\n",
|
||
"---DECIDE TO TEST CODE EXECUTION---\n",
|
||
"---DECISION: TEST CODE EXECUTION---\n",
|
||
"---CHECKING CODE EXECUTION---\n",
|
||
"Why did the bear break up with his girlfriend? \n",
|
||
"\n",
|
||
"Because he couldn't bear the relationship any longer!\n",
|
||
"---CODE BLOCK CHECK: SUCCESS---\n",
|
||
"---DECIDE TO TEST CODE EXECUTION---\n",
|
||
"---DECISION: TEST CODE EXECUTION---\n",
|
||
"Why did the bear bring a flashlight to the party? \n",
|
||
"Because he heard the drinks were on the house!\n",
|
||
"[------------------------> ] 10/20---GENERATE SOLUTION---\n",
|
||
"---CHECKING CODE IMPORTS---\n",
|
||
"---CODE IMPORT CHECK: SUCCESS---\n",
|
||
"---DECIDE TO TEST CODE EXECUTION---\n",
|
||
"---DECISION: TEST CODE EXECUTION---\n",
|
||
"---CHECKING CODE EXECUTION---\n",
|
||
"---CODE BLOCK CHECK: FAILED---\n",
|
||
"---DECIDE TO TEST CODE EXECUTION---\n",
|
||
"---DECISION: RE-TRY SOLUTION---\n",
|
||
"---RE-GENERATE SOLUTION w/ ERROR FEEDBACK---\n",
|
||
"---CHECKING CODE IMPORTS---\n",
|
||
"---CODE IMPORT CHECK: SUCCESS---\n",
|
||
"---DECIDE TO TEST CODE EXECUTION---\n",
|
||
"---DECISION: TEST CODE EXECUTION---\n",
|
||
"---CHECKING CODE EXECUTION---\n",
|
||
"---CODE BLOCK CHECK: FAILED---\n",
|
||
"---DECIDE TO TEST CODE EXECUTION---\n",
|
||
"---DECISION: TEST CODE EXECUTION---\n",
|
||
"[---------------------------> ] 11/20---GENERATE SOLUTION---\n",
|
||
"---CHECKING CODE IMPORTS---\n",
|
||
"---CODE IMPORT CHECK: SUCCESS---\n",
|
||
"---DECIDE TO TEST CODE EXECUTION---\n",
|
||
"---DECISION: TEST CODE EXECUTION---\n",
|
||
"---CHECKING CODE EXECUTION---\n",
|
||
"---CODE BLOCK CHECK: FAILED---\n",
|
||
"---DECIDE TO TEST CODE EXECUTION---\n",
|
||
"---DECISION: TEST CODE EXECUTION---\n",
|
||
"[-----------------------------> ] 12/20---GENERATE SOLUTION---\n",
|
||
"---CHECKING CODE IMPORTS---\n",
|
||
"---CODE IMPORT CHECK: SUCCESS---\n",
|
||
"---DECIDE TO TEST CODE EXECUTION---\n",
|
||
"---DECISION: TEST CODE EXECUTION---\n",
|
||
"---CHECKING CODE EXECUTION---\n",
|
||
"---CODE BLOCK CHECK: FAILED---\n",
|
||
"---DECIDE TO TEST CODE EXECUTION---\n",
|
||
"---DECISION: RE-TRY SOLUTION---\n",
|
||
"---RE-GENERATE SOLUTION w/ ERROR FEEDBACK---\n",
|
||
"---CHECKING CODE IMPORTS---\n",
|
||
"---CODE IMPORT CHECK: SUCCESS---\n",
|
||
"---DECIDE TO TEST CODE EXECUTION---\n",
|
||
"---DECISION: TEST CODE EXECUTION---\n",
|
||
"---CHECKING CODE EXECUTION---\n",
|
||
"content=\"To use Anthropic, you can follow these steps:\\n\\n1. Visit the Anthropic website and sign up for an account.\\n2. Once logged in, you can start exploring the platform and its features.\\n3. Upload your dataset or connect your data source to Anthropic.\\n4. Use the tools provided to analyze and visualize your data.\\n5. Explore the insights and recommendations generated by Anthropic's AI algorithms.\\n6. Take action based on the insights to improve your business or decision-making process.\\n\\nAdditionally, you can reach out to Anthropic's customer support team for any questions or assistance with using the platform.\"\n",
|
||
"---CODE BLOCK CHECK: SUCCESS---\n",
|
||
"---DECIDE TO TEST CODE EXECUTION---\n",
|
||
"---DECISION: TEST CODE EXECUTION---\n",
|
||
"content=\"To use Anthropic, you can start by visiting their website and signing up for an account. Once you have created an account, you can explore the various features and tools available on the platform. This may include generating personalized insights and recommendations based on your data, conducting analyses and experiments, and collaborating with others on projects. You can also customize your experience by setting preferences and adjusting settings to suit your needs. If you have any specific questions or need assistance, you can reach out to Anthropic's customer support team for help.\"\n",
|
||
"[-------------------------------> ] 13/20---CHECKING CODE IMPORTS---\n",
|
||
"---CODE IMPORT CHECK: SUCCESS---\n",
|
||
"---DECIDE TO TEST CODE EXECUTION---\n",
|
||
"---DECISION: TEST CODE EXECUTION---\n",
|
||
"---CHECKING CODE EXECUTION---\n",
|
||
"---CODE BLOCK CHECK: FAILED---\n",
|
||
"---GENERATE SOLUTION---\n",
|
||
"---DECIDE TO TEST CODE EXECUTION---\n",
|
||
"---DECISION: TEST CODE EXECUTION---\n",
|
||
"[----------------------------------> ] 14/20---GENERATE SOLUTION---\n",
|
||
"---CHECKING CODE IMPORTS---\n",
|
||
"---CODE IMPORT CHECK: SUCCESS---\n",
|
||
"---DECIDE TO TEST CODE EXECUTION---\n",
|
||
"---DECISION: TEST CODE EXECUTION---\n",
|
||
"---CHECKING CODE EXECUTION---\n",
|
||
"---CODE BLOCK CHECK: FAILED---\n",
|
||
"---DECIDE TO TEST CODE EXECUTION---\n",
|
||
"---DECISION: RE-TRY SOLUTION---\n",
|
||
"---RE-GENERATE SOLUTION w/ ERROR FEEDBACK---\n",
|
||
"---CHECKING CODE IMPORTS---\n",
|
||
"---CODE IMPORT CHECK: SUCCESS---\n",
|
||
"---DECIDE TO TEST CODE EXECUTION---\n",
|
||
"---DECISION: TEST CODE EXECUTION---\n",
|
||
"---CHECKING CODE EXECUTION---\n",
|
||
"{'output': {'num': 1, 'num2': 2}}\n",
|
||
"---CODE BLOCK CHECK: FAILED---\n",
|
||
"---DECIDE TO TEST CODE EXECUTION---\n",
|
||
"---DECISION: RE-TRY SOLUTION---\n",
|
||
"---RE-GENERATE SOLUTION w/ ERROR FEEDBACK---\n",
|
||
"---CHECKING CODE IMPORTS---\n",
|
||
"---CODE IMPORT CHECK: SUCCESS---\n",
|
||
"---DECIDE TO TEST CODE EXECUTION---\n",
|
||
"---DECISION: TEST CODE EXECUTION---\n",
|
||
"---CHECKING CODE EXECUTION---\n",
|
||
"---CODE BLOCK CHECK: FAILED---\n",
|
||
"---DECIDE TO TEST CODE EXECUTION---\n",
|
||
"---DECISION: RE-TRY SOLUTION---\n",
|
||
"---RE-GENERATE SOLUTION w/ ERROR FEEDBACK---\n",
|
||
"---CHECKING CODE IMPORTS---\n",
|
||
"---CODE IMPORT CHECK: SUCCESS---\n",
|
||
"---DECIDE TO TEST CODE EXECUTION---\n",
|
||
"---DECISION: TEST CODE EXECUTION---\n",
|
||
"---CHECKING CODE EXECUTION---\n",
|
||
"---CODE BLOCK CHECK: SUCCESS---\n",
|
||
"---DECIDE TO TEST CODE EXECUTION---\n",
|
||
"---DECISION: TEST CODE EXECUTION---\n",
|
||
"[-------------------------------------> ] 15/20---GENERATE SOLUTION---\n",
|
||
"---CHECKING CODE IMPORTS---\n",
|
||
"---CODE IMPORT CHECK: SUCCESS---\n",
|
||
"---DECIDE TO TEST CODE EXECUTION---\n",
|
||
"---DECISION: TEST CODE EXECUTION---\n",
|
||
"---CHECKING CODE EXECUTION---\n",
|
||
"{'a': 1, 'b': 2, 'c': 3}\n",
|
||
"---CODE BLOCK CHECK: SUCCESS---\n",
|
||
"---DECIDE TO TEST CODE EXECUTION---\n",
|
||
"---DECISION: TEST CODE EXECUTION---\n",
|
||
"---CHECKING CODE IMPORTS---\n",
|
||
"---CODE IMPORT CHECK: SUCCESS---\n",
|
||
"---DECIDE TO TEST CODE EXECUTION---\n",
|
||
"---DECISION: TEST CODE EXECUTION---\n",
|
||
"---CHECKING CODE EXECUTION---\n",
|
||
"{'output': {'num': 1, 'num2': 2}}\n",
|
||
"---CODE BLOCK CHECK: SUCCESS---\n",
|
||
"---DECIDE TO TEST CODE EXECUTION---\n",
|
||
"---DECISION: TEST CODE EXECUTION---\n",
|
||
"{'a': 1, 'b': 2, 'c': 3}\n",
|
||
"{'output': {'num': 1, 'num2': 2}}\n",
|
||
"[-----------------------------------------> ] 17/20---CHECKING CODE IMPORTS---\n",
|
||
"---CODE IMPORT CHECK: SUCCESS---\n",
|
||
"---DECIDE TO TEST CODE EXECUTION---\n",
|
||
"---DECISION: TEST CODE EXECUTION---\n",
|
||
"---CHECKING CODE EXECUTION---\n",
|
||
"---CODE BLOCK CHECK: FAILED---\n",
|
||
"---DECIDE TO TEST CODE EXECUTION---\n",
|
||
"---DECISION: TEST CODE EXECUTION---\n",
|
||
"[--------------------------------------------> ] 18/20---CHECKING CODE IMPORTS---\n",
|
||
"---CODE IMPORT CHECK: SUCCESS---\n",
|
||
"---DECIDE TO TEST CODE EXECUTION---\n",
|
||
"---DECISION: TEST CODE EXECUTION---\n",
|
||
"---CHECKING CODE EXECUTION---\n",
|
||
"---CODE BLOCK CHECK: FAILED---\n",
|
||
"---DECIDE TO TEST CODE EXECUTION---\n",
|
||
"---DECISION: RE-TRY SOLUTION---\n",
|
||
"---RE-GENERATE SOLUTION w/ ERROR FEEDBACK---\n",
|
||
"---CHECKING CODE IMPORTS---\n",
|
||
"---CODE IMPORT CHECK: SUCCESS---\n",
|
||
"---DECIDE TO TEST CODE EXECUTION---\n",
|
||
"---DECISION: TEST CODE EXECUTION---\n",
|
||
"---CHECKING CODE EXECUTION---\n",
|
||
"Harrison worked at Kensho.\n",
|
||
"---CODE BLOCK CHECK: SUCCESS---\n",
|
||
"---DECIDE TO TEST CODE EXECUTION---\n",
|
||
"---DECISION: TEST CODE EXECUTION---\n",
|
||
"Harrison worked at Kensho.\n",
|
||
"[-----------------------------------------------> ] 19/20---CHECKING CODE IMPORTS---\n",
|
||
"---CODE IMPORT CHECK: SUCCESS---\n",
|
||
"---DECIDE TO TEST CODE EXECUTION---\n",
|
||
"---DECISION: TEST CODE EXECUTION---\n",
|
||
"---CHECKING CODE EXECUTION---\n",
|
||
"---CODE BLOCK CHECK: FAILED---\n",
|
||
"---DECIDE TO TEST CODE EXECUTION---\n",
|
||
"---DECISION: TEST CODE EXECUTION---\n",
|
||
"[------------------------------------------------->] 20/20"
|
||
]
|
||
},
|
||
{
|
||
"data": {
|
||
"text/plain": [
|
||
"{'project_name': '92d9-context-stuffing-with-langgraph',\n",
|
||
" 'results': {'e0d3faf2-137e-4a6f-8559-2e4c3e37723d': {'input': {'question': 'How can I run two LCEL chains in parallel and write their output to a map?'},\n",
|
||
" 'feedback': [EvaluationResult(key='check_import', score=1, value=None, comment=None, correction=None, evaluator_info={}, source_run_id=None, target_run_id=None),\n",
|
||
" EvaluationResult(key='check_execution', score=1, value=None, comment=None, correction=None, evaluator_info={}, source_run_id=None, target_run_id=None)],\n",
|
||
" 'execution_time': 31.005429,\n",
|
||
" 'run_id': '6b7fc7d8-9112-4c3a-a157-1cbd4020846d',\n",
|
||
" 'output': {'keys': {'generation': [code(prefix=\"To run two LCEL chains in parallel and write their output to a map, you can use the `RunnableParallel` component from the LangChain Expression Language (LCEL). This component allows you to execute multiple chains concurrently and collect their outputs in a dictionary format. Here's how you can achieve this:\\n\\n\", imports='from langchain_core.runnables import RunnableParallel\\nfrom langchain_core.prompts import ChatPromptTemplate\\nfrom langchain_openai import ChatOpenAI\\nfrom langchain_core.output_parsers import StrOutputParser', code='# Define the first chain\\nprompt1 = ChatPromptTemplate.from_template(\"tell me a joke about {topic}\")\\nmodel1 = ChatOpenAI()\\nchain1 = prompt1 | model1 | StrOutputParser()\\n\\n# Define the second chain\\nprompt2 = ChatPromptTemplate.from_template(\"write a short poem about {topic}\")\\nmodel2 = ChatOpenAI()\\nchain2 = prompt2 | model2 | StrOutputParser()\\n\\n# Combine the chains using RunnableParallel\\ncombined_chain = RunnableParallel(joke=chain1, poem=chain2)\\n\\n# Invoke the combined chain with a topic\\nresult = combined_chain.invoke({\"topic\": \"bears\"})\\n\\n# The result is a dictionary with the outputs of both chains\\nprint(result)')],\n",
|
||
" 'question': 'How can I run two LCEL chains in parallel and write their output to a map?',\n",
|
||
" 'error': 'None',\n",
|
||
" 'prefix': \"To run two LCEL chains in parallel and write their output to a map, you can use the `RunnableParallel` component from the LangChain Expression Language (LCEL). This component allows you to execute multiple chains concurrently and collect their outputs in a dictionary format. Here's how you can achieve this:\\n\\n\",\n",
|
||
" 'imports': 'from langchain_core.runnables import RunnableParallel\\nfrom langchain_core.prompts import ChatPromptTemplate\\nfrom langchain_openai import ChatOpenAI\\nfrom langchain_core.output_parsers import StrOutputParser',\n",
|
||
" 'iterations': 1,\n",
|
||
" 'code': '# Define the first chain\\nprompt1 = ChatPromptTemplate.from_template(\"tell me a joke about {topic}\")\\nmodel1 = ChatOpenAI()\\nchain1 = prompt1 | model1 | StrOutputParser()\\n\\n# Define the second chain\\nprompt2 = ChatPromptTemplate.from_template(\"write a short poem about {topic}\")\\nmodel2 = ChatOpenAI()\\nchain2 = prompt2 | model2 | StrOutputParser()\\n\\n# Combine the chains using RunnableParallel\\ncombined_chain = RunnableParallel(joke=chain1, poem=chain2)\\n\\n# Invoke the combined chain with a topic\\nresult = combined_chain.invoke({\"topic\": \"bears\"})\\n\\n# The result is a dictionary with the outputs of both chains\\nprint(result)'}},\n",
|
||
" 'reference': {'answer': \"We can use RunnableParallel: from langchain_core.prompts import ChatPromptTemplate; from langchain_core.runnables import RunnableParallel; from langchain_openai import ChatOpenAI; model = ChatOpenAI(); joke_chain = ChatPromptTemplate.from_template('tell me a joke about {topic}') | model; poem_chain = (ChatPromptTemplate.from_template('write a 2-line poem about {topic}') | model); map_chain = RunnableParallel(joke=joke_chain, poem=poem_chain); map_chain.invoke({'topic': 'bear'})\"}},\n",
|
||
" 'e1b141d9-2f30-419e-8f11-08b20482a24e': {'input': {'question': 'How can I use a prompt and model to create a chain in LCEL that returns raw ChatMessages?'},\n",
|
||
" 'feedback': [EvaluationResult(key='check_import', score=1, value=None, comment=None, correction=None, evaluator_info={}, source_run_id=None, target_run_id=None),\n",
|
||
" EvaluationResult(key='check_execution', score=1, value=None, comment=None, correction=None, evaluator_info={}, source_run_id=None, target_run_id=None)],\n",
|
||
" 'execution_time': 18.51883,\n",
|
||
" 'run_id': 'd7b8b4ba-1bce-4448-bff0-3ced579ca54e',\n",
|
||
" 'output': {'keys': {'generation': [code(prefix='To create a chain in LCEL that uses a prompt and model to return raw ChatMessages, you can follow this approach:\\n\\nDescription:\\nThis solution demonstrates how to compose a chain using LangChain Expression Language (LCEL) that combines a ChatPromptTemplate with a ChatModel (e.g., ChatOpenAI). The chain takes user input, constructs a prompt using the ChatPromptTemplate, passes the prompt to the ChatModel, and returns the raw ChatMessages generated by the model. This setup is useful for applications that require processing or displaying the raw responses from a language model.\\n\\nImports:\\n', imports='from langchain_core.prompts import ChatPromptTemplate\\nfrom langchain_openai import ChatOpenAI\\n', code='# Define the prompt template with a placeholder for user input\\nprompt = ChatPromptTemplate.from_template(\"Tell me a joke about {topic}\")\\n\\n# Initialize the model (e.g., ChatOpenAI with a specific model version)\\nmodel = ChatOpenAI(model=\"gpt-3.5-turbo\")\\n\\n# Compose the chain by connecting the prompt and model\\nchain = prompt | model\\n\\n# Example usage: Invoke the chain with a specific topic\\n# This will return raw ChatMessages as the output\\nraw_chat_messages = chain.invoke({\"topic\": \"bears\"})\\n\\n# Print the raw ChatMessages\\nprint(raw_chat_messages)')],\n",
|
||
" 'question': 'How can I use a prompt and model to create a chain in LCEL that returns raw ChatMessages?',\n",
|
||
" 'error': 'None',\n",
|
||
" 'prefix': 'To create a chain in LCEL that uses a prompt and model to return raw ChatMessages, you can follow this approach:\\n\\nDescription:\\nThis solution demonstrates how to compose a chain using LangChain Expression Language (LCEL) that combines a ChatPromptTemplate with a ChatModel (e.g., ChatOpenAI). The chain takes user input, constructs a prompt using the ChatPromptTemplate, passes the prompt to the ChatModel, and returns the raw ChatMessages generated by the model. This setup is useful for applications that require processing or displaying the raw responses from a language model.\\n\\nImports:\\n',\n",
|
||
" 'imports': 'from langchain_core.prompts import ChatPromptTemplate\\nfrom langchain_openai import ChatOpenAI\\n',\n",
|
||
" 'iterations': 1,\n",
|
||
" 'code': '# Define the prompt template with a placeholder for user input\\nprompt = ChatPromptTemplate.from_template(\"Tell me a joke about {topic}\")\\n\\n# Initialize the model (e.g., ChatOpenAI with a specific model version)\\nmodel = ChatOpenAI(model=\"gpt-3.5-turbo\")\\n\\n# Compose the chain by connecting the prompt and model\\nchain = prompt | model\\n\\n# Example usage: Invoke the chain with a specific topic\\n# This will return raw ChatMessages as the output\\nraw_chat_messages = chain.invoke({\"topic\": \"bears\"})\\n\\n# Print the raw ChatMessages\\nprint(raw_chat_messages)'}},\n",
|
||
" 'reference': {'answer': 'Here is an example of a prompt and LLM chain using LCEL without any output parsing to return ChatMessages: \\\\nfrom langchain.chat_models import ChatOpenAI\\\\nfrom langchain.prompts import ChatPromptTemplate\\\\n\\\\nprompt = ChatPromptTemplate.from_template(\\\\tell me a joke about {foo}\\\\\")\\\\nmodel = ChatOpenAI()\\\\nchain = prompt | model\\\\n\\\\nchain.invoke({\\\\\"foo\\\\\": \\\\\"bears\\\\\"})\"'}},\n",
|
||
" '065a041e-a1e2-4ea0-b59a-62511aa89ec7': {'input': {'question': 'How can I apply a custom function to one of the inputs of an LCEL chain?'},\n",
|
||
" 'feedback': [EvaluationResult(key='check_import', score=1, value=None, comment=None, correction=None, evaluator_info={}, source_run_id=None, target_run_id=None),\n",
|
||
" EvaluationResult(key='check_execution', score=1, value=None, comment=None, correction=None, evaluator_info={}, source_run_id=None, target_run_id=None)],\n",
|
||
" 'execution_time': 50.437619,\n",
|
||
" 'run_id': '27622056-c6eb-41f4-acb0-00db5ddfa8dd',\n",
|
||
" 'output': {'keys': {'generation': [code(prefix=\"To apply a custom function to one of the inputs of an LCEL chain, you can use the RunnableLambda component from the langchain_core.runnables module. This component allows you to define a custom function that can be integrated into your LCEL chain. The custom function should accept a single argument and return a value that will be passed to the next component in the chain. Here's how you can do it:\", imports='from langchain_core.runnables import RunnableLambda\\nfrom langchain_core.prompts import ChatPromptTemplate\\nfrom langchain_openai import ChatOpenAI', code='# Define your custom function\\ndef custom_function(input_dict):\\n # Apply some transformation to one of the inputs\\n transformed_input = input_dict[\\'topic\\'].upper() # Example transformation\\n input_dict[\\'topic\\'] = transformed_input\\n return input_dict\\n\\n# Create a RunnableLambda with your custom function\\nrunnable_custom_function = RunnableLambda(custom_function)\\n\\n# Define other components of your chain\\nprompt = ChatPromptTemplate.from_template(\"Tell me something about {topic}\")\\nmodel = ChatOpenAI()\\n\\n# Build the chain\\nchain = runnable_custom_function | prompt | model\\n\\n# Invoke the chain with an input\\ntopic_input = {\\'topic\\': \\'python\\'}\\nresponse = chain.invoke(topic_input)\\nprint(response.content)')],\n",
|
||
" 'question': 'How can I apply a custom function to one of the inputs of an LCEL chain?',\n",
|
||
" 'error': 'None',\n",
|
||
" 'prefix': \"To apply a custom function to one of the inputs of an LCEL chain, you can use the RunnableLambda component from the langchain_core.runnables module. This component allows you to define a custom function that can be integrated into your LCEL chain. The custom function should accept a single argument and return a value that will be passed to the next component in the chain. Here's how you can do it:\",\n",
|
||
" 'imports': 'from langchain_core.runnables import RunnableLambda\\nfrom langchain_core.prompts import ChatPromptTemplate\\nfrom langchain_openai import ChatOpenAI',\n",
|
||
" 'iterations': 2,\n",
|
||
" 'code': '# Define your custom function\\ndef custom_function(input_dict):\\n # Apply some transformation to one of the inputs\\n transformed_input = input_dict[\\'topic\\'].upper() # Example transformation\\n input_dict[\\'topic\\'] = transformed_input\\n return input_dict\\n\\n# Create a RunnableLambda with your custom function\\nrunnable_custom_function = RunnableLambda(custom_function)\\n\\n# Define other components of your chain\\nprompt = ChatPromptTemplate.from_template(\"Tell me something about {topic}\")\\nmodel = ChatOpenAI()\\n\\n# Build the chain\\nchain = runnable_custom_function | prompt | model\\n\\n# Invoke the chain with an input\\ntopic_input = {\\'topic\\': \\'python\\'}\\nresponse = chain.invoke(topic_input)\\nprint(response.content)'}},\n",
|
||
" 'reference': {'answer': \"Use RunnableLambda with itemgetter to extract the relevant key. from operator import itemgetter; from langchain_core.prompts import ChatPromptTemplate; from langchain_core.runnables import RunnableLambda; from langchain_openai import ChatOpenAI; def length_function(text): return len(text); chain = ({'prompt_input': itemgetter('foo') | RunnableLambda(length_function),} | prompt | model); chain.invoke({'foo':'hello world'})\"}},\n",
|
||
" '53c28a9f-4f8d-4f75-9b5b-76eddf2f8756': {'input': {'question': 'How can I add memory to an arbitrary chain using LCEL?'},\n",
|
||
" 'feedback': [EvaluationResult(key='check_import', score=1, value=None, comment=None, correction=None, evaluator_info={}, source_run_id=None, target_run_id=None),\n",
|
||
" EvaluationResult(key='check_execution', score=1, value=None, comment=None, correction=None, evaluator_info={}, source_run_id=None, target_run_id=None)],\n",
|
||
" 'execution_time': 20.496573,\n",
|
||
" 'run_id': 'cebbd50f-e086-404e-bb2c-1ffc8f5e1e2f',\n",
|
||
" 'output': {'keys': {'generation': [code(prefix=\"To add memory to an arbitrary chain using LangChain Expression Language (LCEL), you can utilize the `ConversationBufferMemory` class from the `langchain.memory` module. This class allows you to manage conversation history and inject it into your chain, enabling the chain to remember previous interactions. Here's how you can do it:\\n\\n\", imports='from operator import itemgetter\\nfrom langchain.memory import ConversationBufferMemory\\nfrom langchain_core.prompts import ChatPromptTemplate, MessagesPlaceholder\\nfrom langchain_core.runnables import RunnableLambda, RunnablePassthrough\\nfrom langchain_openai import ChatOpenAI', code='# Initialize the memory manager\\nmemory = ConversationBufferMemory(return_messages=True)\\n\\n# Define your model\\nmodel = ChatOpenAI()\\n\\n# Define your prompt template\\nprompt = ChatPromptTemplate.from_messages([\\n (\"system\", \"You are a helpful chatbot\"),\\n MessagesPlaceholder(variable_name=\"history\"),\\n (\"human\", \"{input}\"),\\n])\\n\\n# Define a chain that loads memory and passes it to the prompt\\nchain = (\\n RunnablePassthrough.assign(\\n history=RunnableLambda(memory.load_memory_variables) | itemgetter(\"history\")\\n )\\n | prompt\\n | model\\n)\\n\\n# Example usage\\ninputs = {\"input\": \"hi im bob\"}\\nresponse = chain.invoke(inputs)\\nprint(response.content)\\n\\n# Save the context to memory\\nmemory.save_context(inputs, {\"output\": response.content})\\n\\n# Load memory variables for the next interaction\\nprint(memory.load_memory_variables({}))')],\n",
|
||
" 'question': 'How can I add memory to an arbitrary chain using LCEL?',\n",
|
||
" 'error': 'None',\n",
|
||
" 'prefix': \"To add memory to an arbitrary chain using LangChain Expression Language (LCEL), you can utilize the `ConversationBufferMemory` class from the `langchain.memory` module. This class allows you to manage conversation history and inject it into your chain, enabling the chain to remember previous interactions. Here's how you can do it:\\n\\n\",\n",
|
||
" 'imports': 'from operator import itemgetter\\nfrom langchain.memory import ConversationBufferMemory\\nfrom langchain_core.prompts import ChatPromptTemplate, MessagesPlaceholder\\nfrom langchain_core.runnables import RunnableLambda, RunnablePassthrough\\nfrom langchain_openai import ChatOpenAI',\n",
|
||
" 'iterations': 1,\n",
|
||
" 'code': '# Initialize the memory manager\\nmemory = ConversationBufferMemory(return_messages=True)\\n\\n# Define your model\\nmodel = ChatOpenAI()\\n\\n# Define your prompt template\\nprompt = ChatPromptTemplate.from_messages([\\n (\"system\", \"You are a helpful chatbot\"),\\n MessagesPlaceholder(variable_name=\"history\"),\\n (\"human\", \"{input}\"),\\n])\\n\\n# Define a chain that loads memory and passes it to the prompt\\nchain = (\\n RunnablePassthrough.assign(\\n history=RunnableLambda(memory.load_memory_variables) | itemgetter(\"history\")\\n )\\n | prompt\\n | model\\n)\\n\\n# Example usage\\ninputs = {\"input\": \"hi im bob\"}\\nresponse = chain.invoke(inputs)\\nprint(response.content)\\n\\n# Save the context to memory\\nmemory.save_context(inputs, {\"output\": response.content})\\n\\n# Load memory variables for the next interaction\\nprint(memory.load_memory_variables({}))'}},\n",
|
||
" 'reference': {'answer': 'Here is an example adding memory to a chain: \\\\nfrom operator import itemgetter\\\\n\\\\nfrom langchain.chat_models import ChatOpenAI\\\\nfrom langchain.memory import ConversationBufferMemory\\\\nfrom langchain.prompts import ChatPromptTemplate, MessagesPlaceholder\\\\nfrom langchain_core.runnables import RunnableLambda, RunnablePassthrough\\\\n\\\\nmodel = ChatOpenAI()\\\\nprompt = ChatPromptTemplate.from_messages(\\\\n [\\\\n (\\\\system\\\\\"'}},\n",
|
||
" '5b483c9b-07ce-4948-a723-ceba618a6be3': {'input': {'question': 'How do I set up a retrieval-augmented generation chain using LCEL that accepts a string as input?'},\n",
|
||
" 'feedback': [EvaluationResult(key='check_import', score=1, value=None, comment=None, correction=None, evaluator_info={}, source_run_id=None, target_run_id=None),\n",
|
||
" EvaluationResult(key='check_execution', score=0, value=None, comment=None, correction=None, evaluator_info={}, source_run_id=None, target_run_id=None)],\n",
|
||
" 'execution_time': 101.107808,\n",
|
||
" 'run_id': '0501a758-d899-4ac6-acff-89ff3432c366',\n",
|
||
" 'output': {'keys': {'generation': [code(prefix='To set up a retrieval-augmented generation (RAG) chain using LangChain Expression Language (LCEL), you can follow these steps. This example demonstrates how to create a chain that takes a string as input, retrieves relevant documents based on that input, and then generates a response based on the retrieved documents and the input query. \\n\\n', imports='from operator import itemgetter\\nfrom langchain_community.vectorstores import FAISS\\nfrom langchain_core.output_parsers import StrOutputParser\\nfrom langchain_core.prompts import ChatPromptTemplate\\nfrom langchain_core.runnables import RunnablePassthrough\\nfrom langchain_openai import ChatOpenAI, OpenAIEmbeddings', code='# Initialize the vector store with sample texts and embeddings\\nvectorstore = FAISS.from_texts(\\n [\"harrison worked at kensho\", \"bears like to eat honey\"],\\n embedding=OpenAIEmbeddings(),\\n)\\n\\n# Create a retriever from the vector store\\nretriever = vectorstore.as_retriever()\\n\\n# Define the prompt template\\ntemplate = \"\"\"Answer the question based only on the following context:{context}Question: {question}\"\"\"\\nprompt = ChatPromptTemplate.from_template(template)\\n\\n# Initialize the model\\nmodel = ChatOpenAI()\\n\\n# Define the RAG chain\\nchain = (\\n {\"context\": retriever, \"question\": RunnablePassthrough()} | prompt | model | StrOutputParser()\\n)\\n\\n# Example usage\\ninput_query = \"where did harrison work?\"\\nresponse = chain.invoke({\"question\": input_query})\\nprint(response)')],\n",
|
||
" 'question': 'How do I set up a retrieval-augmented generation chain using LCEL that accepts a string as input?',\n",
|
||
" 'error': 'None\\n --- Most recent run error --- \\nExecution error: expected string or buffer',\n",
|
||
" 'prefix': 'To set up a retrieval-augmented generation (RAG) chain using LangChain Expression Language (LCEL), you can follow these steps. This example demonstrates how to create a chain that takes a string as input, retrieves relevant documents based on that input, and then generates a response based on the retrieved documents and the input query. \\n\\n',\n",
|
||
" 'imports': 'from operator import itemgetter\\nfrom langchain_community.vectorstores import FAISS\\nfrom langchain_core.output_parsers import StrOutputParser\\nfrom langchain_core.prompts import ChatPromptTemplate\\nfrom langchain_core.runnables import RunnablePassthrough\\nfrom langchain_openai import ChatOpenAI, OpenAIEmbeddings',\n",
|
||
" 'iterations': 3,\n",
|
||
" 'code': '# Initialize the vector store with sample texts and embeddings\\nvectorstore = FAISS.from_texts(\\n [\"harrison worked at kensho\", \"bears like to eat honey\"],\\n embedding=OpenAIEmbeddings(),\\n)\\n\\n# Create a retriever from the vector store\\nretriever = vectorstore.as_retriever()\\n\\n# Define the prompt template\\ntemplate = \"\"\"Answer the question based only on the following context:{context}Question: {question}\"\"\"\\nprompt = ChatPromptTemplate.from_template(template)\\n\\n# Initialize the model\\nmodel = ChatOpenAI()\\n\\n# Define the RAG chain\\nchain = (\\n {\"context\": retriever, \"question\": RunnablePassthrough()} | prompt | model | StrOutputParser()\\n)\\n\\n# Example usage\\ninput_query = \"where did harrison work?\"\\nresponse = chain.invoke({\"question\": input_query})\\nprint(response)'}},\n",
|
||
" 'reference': {'answer': \"Use RunnablePassthrough to pass the input to the retriever and build a prompt to pass to the LLM: ! pip install langchain langchain-openai faiss-cpu; from operator import itemgetter; from langchain_community.vectorstores import FAISS; from langchain_core.output_parsers import StrOutputParser; from langchain_core.prompts import ChatPromptTemplate; from langchain_core.runnables import RunnablePassthrough; from langchain_openai import ChatOpenAI, OpenAIEmbeddings; vectorstore = FAISS.from_texts(['harrison worked at kensho'], embedding=OpenAIEmbeddings()); retriever = vectorstore.as_retriever(); template = 'Answer the question based only on the following context:{context}Question: {question}'; prompt = ChatPromptTemplate.from_template(template); model = ChatOpenAI(); chain = ({'context': retriever, 'question': RunnablePassthrough()} | prompt | model | StrOutputParser()); response = chain.invoke('where did harrison work?'); print(response)\"}},\n",
|
||
" '861ef45e-5c52-446b-bd86-bc29bb339264': {'input': {'question': 'How can I use a custom function to route between 2 chains in LCEL?'},\n",
|
||
" 'feedback': [EvaluationResult(key='check_import', score=1, value=None, comment=None, correction=None, evaluator_info={}, source_run_id=None, target_run_id=None),\n",
|
||
" EvaluationResult(key='check_execution', score=0, value=None, comment=None, correction=None, evaluator_info={}, source_run_id=None, target_run_id=None)],\n",
|
||
" 'execution_time': 110.372783,\n",
|
||
" 'run_id': '2891dc0e-f7be-402d-b8d0-40f1bc72147b',\n",
|
||
" 'output': {'keys': {'generation': [code(prefix=\"To route between two chains in LCEL using a custom function, you can utilize the RunnableLambda component. This component allows you to define a function that dynamically decides which chain to execute based on the input. Here's a step-by-step guide to achieve this:\\n\\n1. Define your two chains that you want to route between. For simplicity, let's assume these chains are called `chain1` and `chain2`.\\n2. Create a custom function that takes an input and returns either `chain1` or `chain2` based on some condition.\\n3. Use `RunnableLambda` to wrap your custom function, making it a part of the LCEL chain.\\n4. Invoke the resulting chain with your input.\\n\\n\", imports='from langchain_core.runnables import RunnableLambda\\nfrom langchain_core.prompts import ChatPromptTemplate\\nfrom langchain_openai import ChatOpenAI\\n\\n# Assuming these are your two chains\\nchain1 = ChatPromptTemplate.from_template(\"Tell me a joke about {topic}\") | ChatOpenAI()\\nchain2 = ChatPromptTemplate.from_template(\"Give me a fact about {topic}\") | ChatOpenAI()', code=\"# Custom function to decide between chain1 and chain2\\ndef route_based_on_input(input):\\n if 'joke' in input['topic'].lower():\\n return chain1\\n else:\\n return chain2\\n\\n# Wrap the custom function with RunnableLambda\\nrouter = RunnableLambda(route_based_on_input)\\n\\n# Example input\\ntest_input = {'topic': 'Tell me a joke about cats'}\\n\\n# Invoke the router with the input\\ndef routed_chain(input):\\n return router.invoke(input)\\n\\n# Execute the chain\\nresult = routed_chain(test_input)\\nprint(result)\")],\n",
|
||
" 'question': 'How can I use a custom function to route between 2 chains in LCEL?',\n",
|
||
" 'error': \"None\\n --- Most recent run error --- \\nExecution error: name 'router' is not defined\",\n",
|
||
" 'prefix': \"To route between two chains in LCEL using a custom function, you can utilize the RunnableLambda component. This component allows you to define a function that dynamically decides which chain to execute based on the input. Here's a step-by-step guide to achieve this:\\n\\n1. Define your two chains that you want to route between. For simplicity, let's assume these chains are called `chain1` and `chain2`.\\n2. Create a custom function that takes an input and returns either `chain1` or `chain2` based on some condition.\\n3. Use `RunnableLambda` to wrap your custom function, making it a part of the LCEL chain.\\n4. Invoke the resulting chain with your input.\\n\\n\",\n",
|
||
" 'imports': 'from langchain_core.runnables import RunnableLambda\\nfrom langchain_core.prompts import ChatPromptTemplate\\nfrom langchain_openai import ChatOpenAI\\n\\n# Assuming these are your two chains\\nchain1 = ChatPromptTemplate.from_template(\"Tell me a joke about {topic}\") | ChatOpenAI()\\nchain2 = ChatPromptTemplate.from_template(\"Give me a fact about {topic}\") | ChatOpenAI()',\n",
|
||
" 'iterations': 3,\n",
|
||
" 'code': \"# Custom function to decide between chain1 and chain2\\ndef route_based_on_input(input):\\n if 'joke' in input['topic'].lower():\\n return chain1\\n else:\\n return chain2\\n\\n# Wrap the custom function with RunnableLambda\\nrouter = RunnableLambda(route_based_on_input)\\n\\n# Example input\\ntest_input = {'topic': 'Tell me a joke about cats'}\\n\\n# Invoke the router with the input\\ndef routed_chain(input):\\n return router.invoke(input)\\n\\n# Execute the chain\\nresult = routed_chain(test_input)\\nprint(result)\"}},\n",
|
||
" 'reference': {'answer': 'Use a RunnableLambda with custom routing logic. from langchain.prompts import PromptTemplate; from langchain_community.chat_models import ChatAnthropic; from langchain_core.output_parsers import StrOutputParser; chain = (PromptTemplate.from_template(\\'Given the user question below, classify it as either being about `LangChain`, `Anthropic`, or `Other`. Do not respond with more than one word. <question> {question} </question> Classification:\\') | ChatAnthropic() | StrOutputParser()); def route(info): if \\'anthropic\\' in info[\\'topic\\'].lower(): return anthropic_chain; elif \\'langchain\\' in info[\\'topic\\'].lower(): return langchain_chain; langchain_chain = (PromptTemplate.from_template(\\'You are an expert in langchain. Always answer questions starting with As Harrison Chase told me\". Respond to the following question: Question: {question} Answer:\\') | ChatAnthropic()); anthropic_chain = (PromptTemplate.from_template(\\'You are an expert in anthropic. Always answer questions starting with \"As Dario Amodei told me\". Respond to the following question: Question: {question} Answer:\\') | ChatAnthropic()); from langchain_core.runnables import RunnableLambda; full_chain = {\\'topic\\': chain'}},\n",
|
||
" '0a08d656-3938-47cb-a77f-affc9f82fa47': {'input': {'question': 'How can I make the output of my LCEL chain a string?'},\n",
|
||
" 'feedback': [EvaluationResult(key='check_import', score=1, value=None, comment=None, correction=None, evaluator_info={}, source_run_id=None, target_run_id=None),\n",
|
||
" EvaluationResult(key='check_execution', score=1, value=None, comment=None, correction=None, evaluator_info={}, source_run_id=None, target_run_id=None)],\n",
|
||
" 'execution_time': 21.403328,\n",
|
||
" 'run_id': '022024d3-4c65-4c96-879f-35c12d830c8e',\n",
|
||
" 'output': {'keys': {'generation': [code(prefix=\"To make the output of an LCEL chain a string, you can utilize the StrOutputParser component from the langchain_core.output_parsers module. This component is designed to take the output from a model or any other component in the chain and convert it into a string format. Here's how you can integrate the StrOutputParser into your LCEL chain to ensure the final output is a string.\\n\\n\", imports='from langchain_core.output_parsers import StrOutputParser\\nfrom langchain_core.prompts import ChatPromptTemplate\\nfrom langchain_openai import ChatOpenAI\\n', code='# Define your prompt template\\nprompt = ChatPromptTemplate.from_template(\"Tell me a joke about {topic}\")\\n\\n# Initialize the model\\nmodel = ChatOpenAI()\\n\\n# Define the output parser to convert model output to string\\noutput_parser = StrOutputParser()\\n\\n# Construct the chain\\nchain = prompt | model | output_parser\\n\\n# Invoke the chain with a specific topic\\nfinal_output = chain.invoke({\"topic\": \"bears\"})\\n\\n# The final_output will be a string containing the joke\\nprint(final_output)')],\n",
|
||
" 'question': 'How can I make the output of my LCEL chain a string?',\n",
|
||
" 'error': 'None',\n",
|
||
" 'prefix': \"To make the output of an LCEL chain a string, you can utilize the StrOutputParser component from the langchain_core.output_parsers module. This component is designed to take the output from a model or any other component in the chain and convert it into a string format. Here's how you can integrate the StrOutputParser into your LCEL chain to ensure the final output is a string.\\n\\n\",\n",
|
||
" 'imports': 'from langchain_core.output_parsers import StrOutputParser\\nfrom langchain_core.prompts import ChatPromptTemplate\\nfrom langchain_openai import ChatOpenAI\\n',\n",
|
||
" 'iterations': 1,\n",
|
||
" 'code': '# Define your prompt template\\nprompt = ChatPromptTemplate.from_template(\"Tell me a joke about {topic}\")\\n\\n# Initialize the model\\nmodel = ChatOpenAI()\\n\\n# Define the output parser to convert model output to string\\noutput_parser = StrOutputParser()\\n\\n# Construct the chain\\nchain = prompt | model | output_parser\\n\\n# Invoke the chain with a specific topic\\nfinal_output = chain.invoke({\"topic\": \"bears\"})\\n\\n# The final_output will be a string containing the joke\\nprint(final_output)'}},\n",
|
||
" 'reference': {'answer': \"Use StrOutputParser. from langchain_openai import ChatOpenAI; from langchain_core.prompts import ChatPromptTemplate; from langchain_core.output_parsers import StrOutputParser; prompt = ChatPromptTemplate.from_template('Tell me a short joke about {topic}'); model = ChatOpenAI(model='gpt-3.5-turbo') #gpt-4 or other LLMs can be used here; output_parser = StrOutputParser(); chain = prompt | model | output_parser\"}},\n",
|
||
" '014b3a4a-3ece-4cd7-b5c6-f99da90bee00': {'input': {'question': \"I've defined a LCEL runnable chain = prompt | model. How can I look at the input schema?\"},\n",
|
||
" 'feedback': [EvaluationResult(key='check_import', score=1, value=None, comment=None, correction=None, evaluator_info={}, source_run_id=None, target_run_id=None),\n",
|
||
" EvaluationResult(key='check_execution', score=1, value=None, comment=None, correction=None, evaluator_info={}, source_run_id=None, target_run_id=None)],\n",
|
||
" 'execution_time': 18.569105,\n",
|
||
" 'run_id': '72945af9-58e2-4d25-b447-5dacb9a210b7',\n",
|
||
" 'output': {'keys': {'generation': [code(prefix=\"To inspect the input schema of a LCEL runnable chain, you can use the `.input_schema` attribute of the chain. This attribute provides access to the input schema, which is a Pydantic model dynamically generated based on the structure of the chain. You can then call `.schema()` on this Pydantic model to obtain a JSONSchema representation of the input schema. Here's how you can do it:\", imports='from langchain_core.prompts import ChatPromptTemplate\\nfrom langchain_openai import ChatOpenAI', code='prompt = ChatPromptTemplate.from_template(\"tell me a joke about {topic}\")\\nmodel = ChatOpenAI()\\nchain = prompt | model\\n\\n# Inspect the input schema\\ninput_schema_json = chain.input_schema.schema()\\nprint(input_schema_json)')],\n",
|
||
" 'question': \"I've defined a LCEL runnable chain = prompt | model. How can I look at the input schema?\",\n",
|
||
" 'error': 'None',\n",
|
||
" 'prefix': \"To inspect the input schema of a LCEL runnable chain, you can use the `.input_schema` attribute of the chain. This attribute provides access to the input schema, which is a Pydantic model dynamically generated based on the structure of the chain. You can then call `.schema()` on this Pydantic model to obtain a JSONSchema representation of the input schema. Here's how you can do it:\",\n",
|
||
" 'imports': 'from langchain_core.prompts import ChatPromptTemplate\\nfrom langchain_openai import ChatOpenAI',\n",
|
||
" 'iterations': 1,\n",
|
||
" 'code': 'prompt = ChatPromptTemplate.from_template(\"tell me a joke about {topic}\")\\nmodel = ChatOpenAI()\\nchain = prompt | model\\n\\n# Inspect the input schema\\ninput_schema_json = chain.input_schema.schema()\\nprint(input_schema_json)'}},\n",
|
||
" 'reference': {'answer': 'All runnables expose input and output schemas to inspect the inputs and outputs. input_schema is an input Pydantic model auto-generated from the structure of the Runnable. You can call .schema() on it to obtain a JSONSchema representation of any runnable: # The input schema of the chain is the input schema of its first part, the prompt. chain.input_schema.schema()'}},\n",
|
||
" 'f70fca40-b67f-4e71-8efd-4c49169b5a98': {'input': {'question': \"My LCEL map contains the key 'question'. What is the difference between using itemgetter('question'), lambda x: x['question'], and x.get('question')?\"},\n",
|
||
" 'feedback': [EvaluationResult(key='check_import', score=1, value=None, comment=None, correction=None, evaluator_info={}, source_run_id=None, target_run_id=None),\n",
|
||
" EvaluationResult(key='check_execution', score=1, value=None, comment=None, correction=None, evaluator_info={}, source_run_id=None, target_run_id=None)],\n",
|
||
" 'execution_time': 17.784168,\n",
|
||
" 'run_id': '3371bf79-3087-455d-bb75-9df2f6a2ca9a',\n",
|
||
" 'output': {'keys': {'generation': [code(prefix=\"Difference between using itemgetter('question'), lambda x: x['question'], and x.get('question'):\\n\\n\", imports='from operator import itemgetter\\n', code=\"# Using itemgetter('question')\\n# itemgetter is a function from the operator module that creates a callable\\n# that assumes the input is a mapping (like a dictionary) and returns the value\\n# associated with the given key ('question' in this case).\\n# It is useful when you want to fetch a specific item from each element in an iterable.\\nitem = itemgetter('question')\\n\\n# Using lambda x: x['question']\\n# This is an anonymous function that takes a single argument x (assumed to be a dictionary)\\n# and returns the value associated with the key 'question'.\\n# It's a more general approach that can be used in any context where a function is expected.\\nlambda_func = lambda x: x['question']\\n\\n# Using x.get('question')\\n# This is a method call on a dictionary object x that attempts to fetch the value\\n# associated with the key 'question'. If the key does not exist, it returns None by default.\\n# This approach is safer than the previous ones because it handles the case where the key might not exist.\\ndef get_method(x):\\n return x.get('question')\\n\")],\n",
|
||
" 'question': \"My LCEL map contains the key 'question'. What is the difference between using itemgetter('question'), lambda x: x['question'], and x.get('question')?\",\n",
|
||
" 'error': 'None',\n",
|
||
" 'prefix': \"Difference between using itemgetter('question'), lambda x: x['question'], and x.get('question'):\\n\\n\",\n",
|
||
" 'imports': 'from operator import itemgetter\\n',\n",
|
||
" 'iterations': 1,\n",
|
||
" 'code': \"# Using itemgetter('question')\\n# itemgetter is a function from the operator module that creates a callable\\n# that assumes the input is a mapping (like a dictionary) and returns the value\\n# associated with the given key ('question' in this case).\\n# It is useful when you want to fetch a specific item from each element in an iterable.\\nitem = itemgetter('question')\\n\\n# Using lambda x: x['question']\\n# This is an anonymous function that takes a single argument x (assumed to be a dictionary)\\n# and returns the value associated with the key 'question'.\\n# It's a more general approach that can be used in any context where a function is expected.\\nlambda_func = lambda x: x['question']\\n\\n# Using x.get('question')\\n# This is a method call on a dictionary object x that attempts to fetch the value\\n# associated with the key 'question'. If the key does not exist, it returns None by default.\\n# This approach is safer than the previous ones because it handles the case where the key might not exist.\\ndef get_method(x):\\n return x.get('question')\\n\"}},\n",
|
||
" 'reference': {'answer': \"Itemgetter can be used as shorthand to extract specific keys from the map. In the context of a map operation, the lambda function is applied to each element in the input map and the function returns the value associated with the key 'question'. (get) is safer for accessing values in a dictionary because it handles the case where the key might not exist.\"}},\n",
|
||
" '66040817-c67a-4377-ab2b-8e90f76e1db2': {'input': {'question': 'How to structure output of an LCEL chain as a Pydantic object with prefix and code_block?'},\n",
|
||
" 'feedback': [EvaluationResult(key='check_import', score=1, value=None, comment=None, correction=None, evaluator_info={}, source_run_id=None, target_run_id=None),\n",
|
||
" EvaluationResult(key='check_execution', score=0, value=None, comment=None, correction=None, evaluator_info={}, source_run_id=None, target_run_id=None)],\n",
|
||
" 'execution_time': 70.993511,\n",
|
||
" 'run_id': 'e8b917c6-85d8-4bc3-8c40-121fb17e941a',\n",
|
||
" 'output': {'keys': {'generation': [code(prefix=\"To structure the output of an LCEL chain as a Pydantic object with prefix and code_block, you can follow these steps:\\n\\n1. Define a Pydantic model that includes the fields `prefix` and `code_block` to structure the output as desired.\\n2. Use an output parser in your LCEL chain that parses the output into the defined Pydantic model.\\n3. Ensure that the final step of your LCEL chain returns an instance of the Pydantic model.\\n\\nHere's how you can implement this approach:\", imports='from pydantic import BaseModel\\nfrom langchain_core.output_parsers import BaseOutputParser\\nfrom langchain_core.runnables import Runnable\\n', code='class MyOutputModel(BaseModel):\\n prefix: str\\n code_block: str\\n\\n\\nclass MyOutputParser(BaseOutputParser):\\n def parse(self, input: str) -> MyOutputModel:\\n # Example parsing logic\\n prefix = \\'Output:\\'\\n code_block = input\\n return MyOutputModel(prefix=prefix, code_block=code_block)\\n\\n\\nclass MyChain(Runnable):\\n def invoke(self, input: str) -> MyOutputModel:\\n # Example chain logic\\n output = \\'print(\"Hello, World!\")\\'\\n output_parser = MyOutputParser()\\n return output_parser.parse(output)\\n\\n# Example usage\\nmy_chain = MyChain()\\nresult = my_chain.invoke(\\'Input data\\')\\nprint(result.json())\\n')],\n",
|
||
" 'question': 'How to structure output of an LCEL chain as a Pydantic object with prefix and code_block?',\n",
|
||
" 'error': \"None\\n --- Most recent run error --- \\nExecution error: name 'MyOutputModel' is not defined\",\n",
|
||
" 'prefix': \"To structure the output of an LCEL chain as a Pydantic object with prefix and code_block, you can follow these steps:\\n\\n1. Define a Pydantic model that includes the fields `prefix` and `code_block` to structure the output as desired.\\n2. Use an output parser in your LCEL chain that parses the output into the defined Pydantic model.\\n3. Ensure that the final step of your LCEL chain returns an instance of the Pydantic model.\\n\\nHere's how you can implement this approach:\",\n",
|
||
" 'imports': 'from pydantic import BaseModel\\nfrom langchain_core.output_parsers import BaseOutputParser\\nfrom langchain_core.runnables import Runnable\\n',\n",
|
||
" 'iterations': 3,\n",
|
||
" 'code': 'class MyOutputModel(BaseModel):\\n prefix: str\\n code_block: str\\n\\n\\nclass MyOutputParser(BaseOutputParser):\\n def parse(self, input: str) -> MyOutputModel:\\n # Example parsing logic\\n prefix = \\'Output:\\'\\n code_block = input\\n return MyOutputModel(prefix=prefix, code_block=code_block)\\n\\n\\nclass MyChain(Runnable):\\n def invoke(self, input: str) -> MyOutputModel:\\n # Example chain logic\\n output = \\'print(\"Hello, World!\")\\'\\n output_parser = MyOutputParser()\\n return output_parser.parse(output)\\n\\n# Example usage\\nmy_chain = MyChain()\\nresult = my_chain.invoke(\\'Input data\\')\\nprint(result.json())\\n'}},\n",
|
||
" 'reference': {'answer': \"We can use PydanticOutputParser. from langchain.output_parsers import PydanticOutputParser; from langchain.prompts import PromptTemplate; from langchain.pydantic_v1 import BaseModel, Field; class FunctionOutput(BaseModel): prefix: str = Field(description='The prefix of the output'); code_block: str = Field(description='The code block of the output'); parser = PydanticOutputParser(pydantic_object=FunctionOutput); format_instructions = parser.get_format_instructions(); prompt = PromptTemplate(template='Output format instructions:\\\\n{format_instructions}\\\\n\\\\nQuery: {query}\\\\n', input_variables=['query'], partial_variables={'format_instructions': format_instructions}); model = ChatOpenAI(model_name='gpt-4'); prompt_and_model = prompt | model; output = prompt_and_model.invoke({'query': 'Give me a function that will add two numbers:'}); parsed_output = parser.invoke(output); prefix = parsed_output.prefix; code_block = parsed_output.code_block\"}},\n",
|
||
" 'af319ff2-0d7f-4454-b79f-7e8c3a122bf9': {'input': {'question': \"I have a LCEL runnable, chain, and am passing in a map w/ {'question' 'where did harrison work', 'language': 'italian'}. How can I extract the value of 'language' to pass to my prompt?\"},\n",
|
||
" 'feedback': [EvaluationResult(key='check_import', score=1, value=None, comment=None, correction=None, evaluator_info={}, source_run_id=None, target_run_id=None),\n",
|
||
" EvaluationResult(key='check_execution', score=0, value=None, comment=None, correction=None, evaluator_info={}, source_run_id=None, target_run_id=None)],\n",
|
||
" 'execution_time': 87.11156,\n",
|
||
" 'run_id': '14154fb5-3b28-405e-8631-bc01f4991064',\n",
|
||
" 'output': {'keys': {'generation': [code(prefix=\"To extract the value of 'language' from the input map and pass it to your prompt in a LangChain Expression Language (LCEL) chain, you can use the itemgetter function from the operator module. This function allows you to fetch the value associated with a specific key in a dictionary. In this case, you want to extract the 'language' key from the input map and pass its value to the prompt. Here's how you can do it:\", imports='from operator import itemgetter\\nfrom langchain_core.prompts import ChatPromptTemplate\\nfrom langchain_openai import ChatOpenAI\\nfrom langchain_core.output_parsers import StrOutputParser', code='# Define your prompt template with a placeholder for the language\\nprompt_template = \"\"\"Answer the question based only on the following context:{context}\\\\nQuestion: {question}\\\\nAnswer in the following language: {language}\"\"\"\\nprompt = ChatPromptTemplate.from_template(prompt_template)\\n\\n# Define your model\\nmodel = ChatOpenAI()\\n\\n# Define your output parser\\noutput_parser = StrOutputParser()\\n\\n# Create the chain\\n# Use itemgetter to extract the \\'language\\' value from the input map\\nchain = (\\n {\\n \"context\": \"Assuming you have context\",\\n \"question\": itemgetter(\"question\"),\\n \"language\": itemgetter(\"language\"),\\n }\\n | prompt\\n | model\\n | output_parser\\n)\\n\\n# Invoke the chain with your input map\\nresult = chain.invoke({\"question\": \"where did harrison work\", \"language\": \"italian\"})\\nprint(result)')],\n",
|
||
" 'question': \"I have a LCEL runnable, chain, and am passing in a map w/ {'question' 'where did harrison work', 'language': 'italian'}. How can I extract the value of 'language' to pass to my prompt?\",\n",
|
||
" 'error': \"None\\n --- Most recent run error --- \\nExecution error: Expected a Runnable, callable or dict.Instead got an unsupported type: <class 'str'>\",\n",
|
||
" 'prefix': \"To extract the value of 'language' from the input map and pass it to your prompt in a LangChain Expression Language (LCEL) chain, you can use the itemgetter function from the operator module. This function allows you to fetch the value associated with a specific key in a dictionary. In this case, you want to extract the 'language' key from the input map and pass its value to the prompt. Here's how you can do it:\",\n",
|
||
" 'imports': 'from operator import itemgetter\\nfrom langchain_core.prompts import ChatPromptTemplate\\nfrom langchain_openai import ChatOpenAI\\nfrom langchain_core.output_parsers import StrOutputParser',\n",
|
||
" 'iterations': 3,\n",
|
||
" 'code': '# Define your prompt template with a placeholder for the language\\nprompt_template = \"\"\"Answer the question based only on the following context:{context}\\\\nQuestion: {question}\\\\nAnswer in the following language: {language}\"\"\"\\nprompt = ChatPromptTemplate.from_template(prompt_template)\\n\\n# Define your model\\nmodel = ChatOpenAI()\\n\\n# Define your output parser\\noutput_parser = StrOutputParser()\\n\\n# Create the chain\\n# Use itemgetter to extract the \\'language\\' value from the input map\\nchain = (\\n {\\n \"context\": \"Assuming you have context\",\\n \"question\": itemgetter(\"question\"),\\n \"language\": itemgetter(\"language\"),\\n }\\n | prompt\\n | model\\n | output_parser\\n)\\n\\n# Invoke the chain with your input map\\nresult = chain.invoke({\"question\": \"where did harrison work\", \"language\": \"italian\"})\\nprint(result)'}},\n",
|
||
" 'reference': {'answer': \"For this example, we can use itemgetter to extract specific values from the map. Here is an example: from operator import itemgetter from langchain.chat_models import ChatOpenAI from langchain.embeddings import OpenAIEmbeddings from langchain.prompts import ChatPromptTemplate from langchain.vectorstores import FAISS from langchain_core.output_parsers import StrOutputParser from langchain_core.runnables import RunnablePassthrough vectorstore = FAISS.from_texts(['harrison worked at kensho'], embedding=OpenAIEmbeddings()) retriever = vectorstore.as_retriever() template = 'Answer the question based only on the following context: {context} Question: {question} Answer in the following language: {language}' prompt = ChatPromptTemplate.from_template(template) chain = ( { 'context': itemgetter('question') | retriever, 'question': itemgetter('question'), 'language': itemgetter('language'), } | prompt | model | StrOutputParser() ) chain.invoke({'question': 'where did harrison work', 'language': 'italian'})\"}},\n",
|
||
" '5c91aa98-2431-4790-880a-7db2430d236e': {'input': {'question': 'How can we apply a function call to an LLM in an LCEL chain?'},\n",
|
||
" 'feedback': [EvaluationResult(key='check_import', score=1, value=None, comment=None, correction=None, evaluator_info={}, source_run_id=None, target_run_id=None),\n",
|
||
" EvaluationResult(key='check_execution', score=1, value=None, comment=None, correction=None, evaluator_info={}, source_run_id=None, target_run_id=None)],\n",
|
||
" 'execution_time': 24.660784,\n",
|
||
" 'run_id': '903b11ce-1559-4848-b5e9-30acae7eaa5a',\n",
|
||
" 'output': {'keys': {'generation': [code(prefix=\"To apply a function call to an LLM within an LCEL chain, you can use the `.bind()` method on the LLM component. This method allows you to specify function calls that the LLM should execute. The `.bind()` method can be used to attach various configurations to the LLM, including function calls, stop sequences, and more. Here's an example of how to apply a function call to an LLM in an LCEL chain:\\n\\n\", imports='from langchain_core.prompts import ChatPromptTemplate\\nfrom langchain_core.runnables import RunnableLambda, RunnablePassthrough\\nfrom langchain_openai import ChatOpenAI\\nfrom langchain.output_parsers.openai_functions import JsonKeyOutputFunctionsParser', code='# Define the function to be called\\nfunctions = [\\n {\\n \"name\": \"joke\",\\n \"description\": \"A joke\",\\n \"parameters\": {\\n \"type\": \"object\",\\n \"properties\": {\\n \"setup\": {\"type\": \"string\", \"description\": \"The setup for the joke\"},\\n \"punchline\": {\\n \"type\": \"string\",\\n \"description\": \"The punchline for the joke\",\\n },\\n },\\n \"required\": [\"setup\", \"punchline\"],\\n },\\n }\\n]\\n\\n# Create the prompt template\\nprompt = ChatPromptTemplate.from_template(\"Tell me a joke about {foo}\")\\n\\n# Initialize the LLM with the function call\\nmodel = ChatOpenAI().bind(function_call={\"name\": \"joke\"}, functions=functions)\\n\\n# Create the LCEL chain\\nchain = prompt | model | JsonKeyOutputFunctionsParser(key_name=\"setup\")\\n\\n# Invoke the chain with an input\\nresult = chain.invoke({\"foo\": \"bears\"})\\n\\n# The result will contain the setup of the joke as specified by the function call\\nprint(result)')],\n",
|
||
" 'question': 'How can we apply a function call to an LLM in an LCEL chain?',\n",
|
||
" 'error': 'None',\n",
|
||
" 'prefix': \"To apply a function call to an LLM within an LCEL chain, you can use the `.bind()` method on the LLM component. This method allows you to specify function calls that the LLM should execute. The `.bind()` method can be used to attach various configurations to the LLM, including function calls, stop sequences, and more. Here's an example of how to apply a function call to an LLM in an LCEL chain:\\n\\n\",\n",
|
||
" 'imports': 'from langchain_core.prompts import ChatPromptTemplate\\nfrom langchain_core.runnables import RunnableLambda, RunnablePassthrough\\nfrom langchain_openai import ChatOpenAI\\nfrom langchain.output_parsers.openai_functions import JsonKeyOutputFunctionsParser',\n",
|
||
" 'iterations': 1,\n",
|
||
" 'code': '# Define the function to be called\\nfunctions = [\\n {\\n \"name\": \"joke\",\\n \"description\": \"A joke\",\\n \"parameters\": {\\n \"type\": \"object\",\\n \"properties\": {\\n \"setup\": {\"type\": \"string\", \"description\": \"The setup for the joke\"},\\n \"punchline\": {\\n \"type\": \"string\",\\n \"description\": \"The punchline for the joke\",\\n },\\n },\\n \"required\": [\"setup\", \"punchline\"],\\n },\\n }\\n]\\n\\n# Create the prompt template\\nprompt = ChatPromptTemplate.from_template(\"Tell me a joke about {foo}\")\\n\\n# Initialize the LLM with the function call\\nmodel = ChatOpenAI().bind(function_call={\"name\": \"joke\"}, functions=functions)\\n\\n# Create the LCEL chain\\nchain = prompt | model | JsonKeyOutputFunctionsParser(key_name=\"setup\")\\n\\n# Invoke the chain with an input\\nresult = chain.invoke({\"foo\": \"bears\"})\\n\\n# The result will contain the setup of the joke as specified by the function call\\nprint(result)'}},\n",
|
||
" 'reference': {'answer': \"We can attach a function call to the model using bind: functions = [{'name': 'joke', 'description': 'A joke', 'parameters': {'type': 'object', 'properties': {'setup': {'type': 'string', 'description': 'The setup for the joke'}, 'punchline': {'type': 'string', 'description': 'The punchline for the joke'}}, 'required': ['setup', 'punchline']}]; chain = prompt | model.bind(function_call={'name': 'joke'}, functions=functions)\"}},\n",
|
||
" 'c2d50a07-9c5b-46c2-9d8d-05a9503280c6': {'input': {'question': 'How can I directly pass a string to a runnable and use it to construct the input needed for my prompt?'},\n",
|
||
" 'feedback': [EvaluationResult(key='check_import', score=1, value=None, comment=None, correction=None, evaluator_info={}, source_run_id=None, target_run_id=None),\n",
|
||
" EvaluationResult(key='check_execution', score=1, value=None, comment=None, correction=None, evaluator_info={}, source_run_id=None, target_run_id=None)],\n",
|
||
" 'execution_time': 16.013665,\n",
|
||
" 'run_id': '2cf355cc-5673-4145-9bfe-c80848410934',\n",
|
||
" 'output': {'keys': {'generation': [code(prefix=\"To directly pass a string to a runnable and use it to construct the input needed for your prompt, you can utilize the `RunnablePassthrough` class in combination with the `RunnableLambda` class. The `RunnablePassthrough` class allows you to pass inputs unchanged or with the addition of extra keys, which is useful for constructing the input dictionary expected by your prompt. The `RunnableLambda` class enables you to define custom logic for transforming or preparing the input for the prompt.\\n\\nHere's how you can achieve this:\\n\\n\", imports='from langchain_core.runnables import RunnablePassthrough, RunnableLambda\\nfrom langchain_core.prompts import ChatPromptTemplate\\nfrom langchain_openai import ChatOpenAI', code='# Define your prompt template\\nprompt_template = \"Tell me a joke about {topic}.\"\\nprompt = ChatPromptTemplate.from_template(prompt_template)\\n\\n# Define your model\\nmodel = ChatOpenAI()\\n\\n# Define a lambda function to construct the input dictionary for the prompt\\nconstruct_input = RunnableLambda(lambda x: {\\'topic\\': x})\\n\\n# Chain the components together\\nchain = construct_input | prompt | model\\n\\n# Directly pass a string to the chain and invoke it\\nresult = chain.invoke(\\'bears\\')\\n\\n# Print the result\\nprint(result.content)')],\n",
|
||
" 'question': 'How can I directly pass a string to a runnable and use it to construct the input needed for my prompt?',\n",
|
||
" 'error': 'None',\n",
|
||
" 'prefix': \"To directly pass a string to a runnable and use it to construct the input needed for your prompt, you can utilize the `RunnablePassthrough` class in combination with the `RunnableLambda` class. The `RunnablePassthrough` class allows you to pass inputs unchanged or with the addition of extra keys, which is useful for constructing the input dictionary expected by your prompt. The `RunnableLambda` class enables you to define custom logic for transforming or preparing the input for the prompt.\\n\\nHere's how you can achieve this:\\n\\n\",\n",
|
||
" 'imports': 'from langchain_core.runnables import RunnablePassthrough, RunnableLambda\\nfrom langchain_core.prompts import ChatPromptTemplate\\nfrom langchain_openai import ChatOpenAI',\n",
|
||
" 'iterations': 1,\n",
|
||
" 'code': '# Define your prompt template\\nprompt_template = \"Tell me a joke about {topic}.\"\\nprompt = ChatPromptTemplate.from_template(prompt_template)\\n\\n# Define your model\\nmodel = ChatOpenAI()\\n\\n# Define a lambda function to construct the input dictionary for the prompt\\nconstruct_input = RunnableLambda(lambda x: {\\'topic\\': x})\\n\\n# Chain the components together\\nchain = construct_input | prompt | model\\n\\n# Directly pass a string to the chain and invoke it\\nresult = chain.invoke(\\'bears\\')\\n\\n# Print the result\\nprint(result.content)'}},\n",
|
||
" 'reference': {'answer': \"Use RunnablePassthrough. from langchain_core.runnables import RunnableParallel, RunnablePassthrough; from langchain_core.prompts import ChatPromptTemplate; from langchain_openai import ChatOpenAI; prompt = ChatPromptTemplate.from_template('Tell a joke about: {input}'); model = ChatOpenAI(); runnable = ({'input' : RunnablePassthrough()} | prompt | model); runnable.invoke('flowers')\"}},\n",
|
||
" '578b518b-0e61-4d1b-8a79-a6e0ea802846': {'input': {'question': \"I'm invoking a LCEL chain with a map that contain {'question': 'how do I use Anthropic?'}. The full chain definition is full_chain = {'question': lambda x: x['question']} | sub_chain. Why is a lambda used?\"},\n",
|
||
" 'feedback': [EvaluationResult(key='check_import', score=1, value=None, comment=None, correction=None, evaluator_info={}, source_run_id=None, target_run_id=None),\n",
|
||
" EvaluationResult(key='check_execution', score=1, value=None, comment=None, correction=None, evaluator_info={}, source_run_id=None, target_run_id=None)],\n",
|
||
" 'execution_time': 35.929702,\n",
|
||
" 'run_id': 'cb90fb09-d3be-45a2-a8d9-6b0b8b9d231f',\n",
|
||
" 'output': {'keys': {'generation': [code(prefix=\"In the context of LangChain Expression Language (LCEL), a lambda function is used in a chain definition to dynamically extract or transform input data for the next step in the chain. Specifically, when invoking a chain with a map that contains {'question': 'how do I use Anthropic?'}, the lambda function serves to extract the 'question' value from the input map and pass it to the subsequent chain or component. This approach allows for flexible data manipulation and ensures that the correct piece of data is forwarded to the next step in the chain, which is particularly useful in complex chains where inputs to different steps may need to be derived or transformed from the initial input.\\n\\nHere's a simplified example to illustrate how a lambda is used in a LCEL chain definition:\\n\\n\", imports='from langchain_core.runnables import RunnableLambda, RunnablePassthrough\\nfrom langchain_core.prompts import ChatPromptTemplate\\nfrom langchain_openai import ChatOpenAI', code='# Define a sub-chain that takes a question and generates a response using a Chat Model\\nprompt_template = \"Respond to the following question: {question}\"\\nprompt = ChatPromptTemplate.from_template(prompt_template)\\nmodel = ChatOpenAI()\\nsub_chain = prompt | model\\n\\n# Define the full chain with a lambda to extract the \\'question\\' from the input map\\nfull_chain = {\\'question\\': lambda x: x[\\'question\\']} | sub_chain\\n\\n# Example invocation\\ninput_map = {\\'question\\': \\'how do I use Anthropic?\\'}\\nresponse = full_chain.invoke(input_map)\\nprint(response)')],\n",
|
||
" 'question': \"I'm invoking a LCEL chain with a map that contain {'question': 'how do I use Anthropic?'}. The full chain definition is full_chain = {'question': lambda x: x['question']} | sub_chain. Why is a lambda used?\",\n",
|
||
" 'error': 'None',\n",
|
||
" 'prefix': \"In the context of LangChain Expression Language (LCEL), a lambda function is used in a chain definition to dynamically extract or transform input data for the next step in the chain. Specifically, when invoking a chain with a map that contains {'question': 'how do I use Anthropic?'}, the lambda function serves to extract the 'question' value from the input map and pass it to the subsequent chain or component. This approach allows for flexible data manipulation and ensures that the correct piece of data is forwarded to the next step in the chain, which is particularly useful in complex chains where inputs to different steps may need to be derived or transformed from the initial input.\\n\\nHere's a simplified example to illustrate how a lambda is used in a LCEL chain definition:\\n\\n\",\n",
|
||
" 'imports': 'from langchain_core.runnables import RunnableLambda, RunnablePassthrough\\nfrom langchain_core.prompts import ChatPromptTemplate\\nfrom langchain_openai import ChatOpenAI',\n",
|
||
" 'iterations': 1,\n",
|
||
" 'code': '# Define a sub-chain that takes a question and generates a response using a Chat Model\\nprompt_template = \"Respond to the following question: {question}\"\\nprompt = ChatPromptTemplate.from_template(prompt_template)\\nmodel = ChatOpenAI()\\nsub_chain = prompt | model\\n\\n# Define the full chain with a lambda to extract the \\'question\\' from the input map\\nfull_chain = {\\'question\\': lambda x: x[\\'question\\']} | sub_chain\\n\\n# Example invocation\\ninput_map = {\\'question\\': \\'how do I use Anthropic?\\'}\\nresponse = full_chain.invoke(input_map)\\nprint(response)'}},\n",
|
||
" 'reference': {'answer': \"The lambda function is an anonymous function that takes one argument, x, and returns x['question']. In the context of a map operation, this function is applied to each element in the input iterable. If the input is a dictionary (map), as in this case, x would be this map, and the function returns the value associated with the key 'question'.\"}},\n",
|
||
" '62eed8c3-920f-455a-ac77-dc8ace04e4ac': {'input': {'question': \"I am passing text key 'foo' to my prompt and want to process it with a function, process_text(...), prior to the prompt. How can I do this using LCEL?\"},\n",
|
||
" 'feedback': [EvaluationResult(key='check_import', score=1, value=None, comment=None, correction=None, evaluator_info={}, source_run_id=None, target_run_id=None),\n",
|
||
" EvaluationResult(key='check_execution', score=0, value=None, comment=None, correction=None, evaluator_info={}, source_run_id=None, target_run_id=None)],\n",
|
||
" 'execution_time': 79.788243,\n",
|
||
" 'run_id': 'b8b101db-c1d6-48c1-8a07-036d88a25e49',\n",
|
||
" 'output': {'keys': {'generation': [code(prefix=\"To process a text key 'foo' with a function before passing it to a prompt using LangChain Expression Language (LCEL), you can utilize the RunnableLambda component. This component allows you to run custom functions within your LCEL chain. Here's how you can achieve this:\\n\\n\", imports='from langchain_core.runnables import RunnableLambda\\nfrom langchain_core.prompts import ChatPromptTemplate\\nfrom langchain_openai import ChatOpenAI\\n\\n', code='# Define your custom text processing function\\ndef process_text(text):\\n # Example processing: append \\' processed\\' to the text\\n return text + \\' processed\\'\\n\\n# Create a RunnableLambda that wraps your custom function\\nprocess_text_runnable = RunnableLambda(process_text)\\n\\n# Define your prompt template\\nprompt = ChatPromptTemplate.from_template(\"Tell me about {foo}\")\\n\\n# Define your model\\nmodel = ChatOpenAI()\\n\\n# Create the chain\\n# Use a dictionary to pass the processed text to the prompt\\nchain = ( {\\'foo\\': process_text_runnable} | prompt | model)\\n\\n# Example invocation\\nresult = chain.invoke({\\'foo\\': \\'LCEL\\'})\\nprint(result.content)')],\n",
|
||
" 'question': \"I am passing text key 'foo' to my prompt and want to process it with a function, process_text(...), prior to the prompt. How can I do this using LCEL?\",\n",
|
||
" 'error': \"None\\n --- Most recent run error --- \\nExecution error: unsupported operand type(s) for +: 'dict' and 'str'\",\n",
|
||
" 'prefix': \"To process a text key 'foo' with a function before passing it to a prompt using LangChain Expression Language (LCEL), you can utilize the RunnableLambda component. This component allows you to run custom functions within your LCEL chain. Here's how you can achieve this:\\n\\n\",\n",
|
||
" 'imports': 'from langchain_core.runnables import RunnableLambda\\nfrom langchain_core.prompts import ChatPromptTemplate\\nfrom langchain_openai import ChatOpenAI\\n\\n',\n",
|
||
" 'iterations': 3,\n",
|
||
" 'code': '# Define your custom text processing function\\ndef process_text(text):\\n # Example processing: append \\' processed\\' to the text\\n return text + \\' processed\\'\\n\\n# Create a RunnableLambda that wraps your custom function\\nprocess_text_runnable = RunnableLambda(process_text)\\n\\n# Define your prompt template\\nprompt = ChatPromptTemplate.from_template(\"Tell me about {foo}\")\\n\\n# Define your model\\nmodel = ChatOpenAI()\\n\\n# Create the chain\\n# Use a dictionary to pass the processed text to the prompt\\nchain = ( {\\'foo\\': process_text_runnable} | prompt | model)\\n\\n# Example invocation\\nresult = chain.invoke({\\'foo\\': \\'LCEL\\'})\\nprint(result.content)'}},\n",
|
||
" 'reference': {'answer': \"You can use a RunnableLambda to apply a function to the value of foo: chain = ( { 'a': itemgetter('foo') | RunnableLambda(process_text), | RunnableLambda(multiple_length_function), } | prompt | model )\"}},\n",
|
||
" 'b6f4ad7f-4ad8-4b9a-b355-afe72c26218a': {'input': {'question': \"I am passing a map with {'num': 1} to a LCEL chain. How can I add an extra key num2 to this map that adds 1 to the value of num. Then I want to assign this new map to a new key named output?\"},\n",
|
||
" 'feedback': [EvaluationResult(key='check_import', score=1, value=None, comment=None, correction=None, evaluator_info={}, source_run_id=None, target_run_id=None),\n",
|
||
" EvaluationResult(key='check_execution', score=1, value=None, comment=None, correction=None, evaluator_info={}, source_run_id=None, target_run_id=None)],\n",
|
||
" 'execution_time': 51.666387,\n",
|
||
" 'run_id': '4b3b7ff1-48b5-44e7-9351-ac4e11755335',\n",
|
||
" 'output': {'keys': {'generation': [code(prefix=\"To add an extra key `num2` to a map that adds 1 to the value of `num` and then assign this new map to a new key named `output`, you can use the `RunnablePassthrough.assign` method in LCEL. This method allows you to modify the input map by adding or modifying keys based on the input values. Here's how you can achieve this:\", imports='from langchain_core.runnables import RunnablePassthrough', code=\"# Define the initial input map\\ninput_map = {'num': 1}\\n\\n# Use RunnablePassthrough.assign to add the 'num2' key\\n# The lambda function takes the input map and returns a new map with 'num2' added\\nmodified_map = RunnablePassthrough.assign(num2=lambda x: x['num'] + 1).invoke(input_map)\\n\\n# Assign the modified map to a new key named 'output'\\noutput = {'output': modified_map}\\n\\n# Print the result\\nprint(output)\")],\n",
|
||
" 'question': \"I am passing a map with {'num': 1} to a LCEL chain. How can I add an extra key num2 to this map that adds 1 to the value of num. Then I want to assign this new map to a new key named output?\",\n",
|
||
" 'error': 'None',\n",
|
||
" 'prefix': \"To add an extra key `num2` to a map that adds 1 to the value of `num` and then assign this new map to a new key named `output`, you can use the `RunnablePassthrough.assign` method in LCEL. This method allows you to modify the input map by adding or modifying keys based on the input values. Here's how you can achieve this:\",\n",
|
||
" 'imports': 'from langchain_core.runnables import RunnablePassthrough',\n",
|
||
" 'iterations': 2,\n",
|
||
" 'code': \"# Define the initial input map\\ninput_map = {'num': 1}\\n\\n# Use RunnablePassthrough.assign to add the 'num2' key\\n# The lambda function takes the input map and returns a new map with 'num2' added\\nmodified_map = RunnablePassthrough.assign(num2=lambda x: x['num'] + 1).invoke(input_map)\\n\\n# Assign the modified map to a new key named 'output'\\noutput = {'output': modified_map}\\n\\n# Print the result\\nprint(output)\"}},\n",
|
||
" 'reference': {'answer': \"We can use RunnablePassthrough with a lambda function. from langchain_core.runnables import RunnableParallel, RunnablePassthrough; runnable = RunnableParallel(output=RunnablePassthrough.assign(num2=lambda x: x['num'] + 1),); runnable.invoke({'num': 1})\"}},\n",
|
||
" '129823fb-0ea1-4f16-a254-c2e4e40683a9': {'input': {'question': 'How can I create a LCEL chain that queries a SQL database?'},\n",
|
||
" 'feedback': [EvaluationResult(key='check_import', score=1, value=None, comment=None, correction=None, evaluator_info={}, source_run_id=None, target_run_id=None),\n",
|
||
" EvaluationResult(key='check_execution', score=0, value=None, comment=None, correction=None, evaluator_info={}, source_run_id=None, target_run_id=None)],\n",
|
||
" 'execution_time': 84.518487,\n",
|
||
" 'run_id': '75a5e9c7-8bd1-4582-aea1-60b6af7485e9',\n",
|
||
" 'output': {'keys': {'generation': [code(prefix=\"To create a LCEL chain that queries a SQL database, you can follow these steps:\\n\\n1. **Define a SQL Database Connection**: First, establish a connection to your SQL database. This can be done using a library like `sqlite3` for SQLite databases or `sqlalchemy` for more general SQL database connections.\\n\\n2. **Create a SQL Query Function**: Define a function that takes a query as input and returns the result of executing that query against the database.\\n\\n3. **Integrate with LCEL**: Use `RunnableLambda` to integrate your SQL query function into a LCEL chain. This allows you to dynamically query your database based on input received by the chain.\\n\\nHere's how you can implement this approach in code:\", imports='from langchain_core.runnables import RunnableLambda\\nimport sqlite3', code=\"# Define the SQL query function\\ndef run_sql_query(query):\\n # Connect to your SQLite database\\n conn = sqlite3.connect('your_database.db')\\n cur = conn.cursor()\\n # Execute the query\\n cur.execute(query)\\n # Fetch the results\\n results = cur.fetchall()\\n cur.close()\\n conn.close()\\n return results\\n\\n# Create a RunnableLambda that wraps the SQL query function\\nsql_query_runnable = RunnableLambda(run_sql_query)\\n\\n# Example usage\\n# This is how you would invoke the chain with a specific SQL query\\n# Replace 'SELECT * FROM your_table;' with your actual query\\nresult = sql_query_runnable.invoke('SELECT * FROM your_table;')\\nprint(result)\")],\n",
|
||
" 'question': 'How can I create a LCEL chain that queries a SQL database?',\n",
|
||
" 'error': \"None\\n --- Most recent run error --- \\nExecution error: name 'sqlite3' is not defined\",\n",
|
||
" 'prefix': \"To create a LCEL chain that queries a SQL database, you can follow these steps:\\n\\n1. **Define a SQL Database Connection**: First, establish a connection to your SQL database. This can be done using a library like `sqlite3` for SQLite databases or `sqlalchemy` for more general SQL database connections.\\n\\n2. **Create a SQL Query Function**: Define a function that takes a query as input and returns the result of executing that query against the database.\\n\\n3. **Integrate with LCEL**: Use `RunnableLambda` to integrate your SQL query function into a LCEL chain. This allows you to dynamically query your database based on input received by the chain.\\n\\nHere's how you can implement this approach in code:\",\n",
|
||
" 'imports': 'from langchain_core.runnables import RunnableLambda\\nimport sqlite3',\n",
|
||
" 'iterations': 3,\n",
|
||
" 'code': \"# Define the SQL query function\\ndef run_sql_query(query):\\n # Connect to your SQLite database\\n conn = sqlite3.connect('your_database.db')\\n cur = conn.cursor()\\n # Execute the query\\n cur.execute(query)\\n # Fetch the results\\n results = cur.fetchall()\\n cur.close()\\n conn.close()\\n return results\\n\\n# Create a RunnableLambda that wraps the SQL query function\\nsql_query_runnable = RunnableLambda(run_sql_query)\\n\\n# Example usage\\n# This is how you would invoke the chain with a specific SQL query\\n# Replace 'SELECT * FROM your_table;' with your actual query\\nresult = sql_query_runnable.invoke('SELECT * FROM your_table;')\\nprint(result)\"}},\n",
|
||
" 'reference': {'answer': \"Follow these steps to create an LCEL chain that can query a SQL DB: from langchain_core.prompts import ChatPromptTemplate; template = 'Based on the table schema below, write a SQL query that would answer the user's question: {schema} Question: {question} SQL Query:'; prompt = ChatPromptTemplate.from_template(template); from langchain_community.utilities import SQLDatabase; db = SQLDatabase.from_uri('sqlite:///./Chinook.db'); def get_schema(_): return db.get_table_info(); def run_query(query): return db.run(query); from langchain_core.output_parsers import StrOutputParser; from langchain_core.runnables import RunnablePassthrough; from langchain_openai import ChatOpenAI; model = ChatOpenAI(); sql_response = (RunnablePassthrough.assign(schema=get_schema) | prompt | model.bind(stop=['\\\\nSQLResult:']) | StrOutputParser()); template = 'Based on the table schema below, question, sql query, and sql response, write a natural language response: {schema} Question: {question} SQL Query: {query} SQL Response: {response}'; prompt_response = ChatPromptTemplate.from_template(template); full_chain = (RunnablePassthrough.assign(query=sql_response).assign(schema=get_schema, response=lambda x: db.run(x['query']), ) | prompt_response | model); full_chain.invoke({'question': 'How many employees are there?'})\"}},\n",
|
||
" '7e74c8da-4a41-4ee3-81ea-4802d4b18746': {'input': {'question': 'How can I configure the temperature of an LLM when invoking the LCEL chain?'},\n",
|
||
" 'feedback': [EvaluationResult(key='check_import', score=1, value=None, comment=None, correction=None, evaluator_info={}, source_run_id=None, target_run_id=None),\n",
|
||
" EvaluationResult(key='check_execution', score=1, value=None, comment=None, correction=None, evaluator_info={}, source_run_id=None, target_run_id=None)],\n",
|
||
" 'execution_time': 22.29011,\n",
|
||
" 'run_id': '89ea295d-5af2-402a-b596-c3a43d4e2b6c',\n",
|
||
" 'output': {'keys': {'generation': [code(prefix=\"To configure the temperature of an LLM when invoking an LCEL chain, you can use the `configurable_fields` method provided by LCEL. This method allows you to specify configurable fields for a runnable, such as the temperature for an LLM. Here's how you can do it:\", imports='from langchain_core.runnables import ConfigurableField\\nfrom langchain_openai import ChatOpenAI', code='# Initialize the LLM with a default temperature\\nmodel = ChatOpenAI(temperature=0.5).configurable_fields(\\n temperature=ConfigurableField(\\n id=\"llm_temperature\",\\n name=\"LLM Temperature\",\\n description=\"The temperature of the LLM\",\\n )\\n)\\n\\n# Now, when invoking the chain, you can configure the temperature dynamically\\n# For example, to set the temperature to 0.9:\\nconfigured_model = model.with_config(configurable={\"llm_temperature\": 0.9})\\n\\n# Use the configured model in your chain as usual')],\n",
|
||
" 'question': 'How can I configure the temperature of an LLM when invoking the LCEL chain?',\n",
|
||
" 'error': 'None',\n",
|
||
" 'prefix': \"To configure the temperature of an LLM when invoking an LCEL chain, you can use the `configurable_fields` method provided by LCEL. This method allows you to specify configurable fields for a runnable, such as the temperature for an LLM. Here's how you can do it:\",\n",
|
||
" 'imports': 'from langchain_core.runnables import ConfigurableField\\nfrom langchain_openai import ChatOpenAI',\n",
|
||
" 'iterations': 1,\n",
|
||
" 'code': '# Initialize the LLM with a default temperature\\nmodel = ChatOpenAI(temperature=0.5).configurable_fields(\\n temperature=ConfigurableField(\\n id=\"llm_temperature\",\\n name=\"LLM Temperature\",\\n description=\"The temperature of the LLM\",\\n )\\n)\\n\\n# Now, when invoking the chain, you can configure the temperature dynamically\\n# For example, to set the temperature to 0.9:\\nconfigured_model = model.with_config(configurable={\"llm_temperature\": 0.9})\\n\\n# Use the configured model in your chain as usual'}},\n",
|
||
" 'reference': {'answer': \"Use configuration fields. from langchain.prompts import PromptTemplate; from langchain_core.runnables import ConfigurableField; from langchain_openai import ChatOpenAI; model = ChatOpenAI(temperature=0).configurable_fields(temperature=ConfigurableField(id='llm_temperature', name='LLM Temperature', description='The temperature of the LLM', )); model.with_config(configurable={'llm_temperature': 0.9}).invoke('pick a random number')\"}},\n",
|
||
" '67ce87ac-6714-440c-8fde-bdfa1b0333f7': {'input': {'question': \"With a RAG chain in LCEL, why are documents retrieved automatically when we construct the prompt like {'context': retriever, 'question': RunnablePassthrough()} and invoke it using chain.invoke('where did harrison work?')\"},\n",
|
||
" 'feedback': [EvaluationResult(key='check_import', score=1, value=None, comment=None, correction=None, evaluator_info={}, source_run_id=None, target_run_id=None),\n",
|
||
" EvaluationResult(key='check_execution', score=1, value=None, comment=None, correction=None, evaluator_info={}, source_run_id=None, target_run_id=None)],\n",
|
||
" 'execution_time': 70.646641,\n",
|
||
" 'run_id': 'd4888829-2d0e-4cdf-9e63-10aab7f4b35d',\n",
|
||
" 'output': {'keys': {'generation': [code(prefix=\"In a Retrieval-Augmented Generation (RAG) chain within the LangChain Expression Language (LCEL), documents are retrieved automatically when constructing a prompt with {'context': retriever, 'question': RunnablePassthrough()} due to the way LCEL chains are designed to handle inputs and outputs across different components. When invoking the chain with chain.invoke('where did harrison work?'), the input is passed through the chain in a structured manner, allowing each component to perform its designated task seamlessly.\\n\\nThe key components involved in this process are:\\n\\n1. **Retriever**: This component is responsible for fetching relevant documents based on the input query. It uses vector search or other retrieval methods to find documents that are contextually related to the input question.\\n\\n2. **RunnablePassthrough**: This component simply passes the input ('where did harrison work?') as is to the next component in the chain. It acts as a bridge between the input and the prompt template, ensuring that the question is included in the final prompt sent to the model.\\n\\n3. **Prompt Template**: This component constructs the final prompt that is sent to the language model. It combines the retrieved documents (context) and the original question to form a comprehensive prompt that guides the model to generate a response based on both the question and the context provided by the retrieved documents.\\n\\n4. **Language Model (LLM/ChatModel)**: This component receives the constructed prompt and generates a response based on it. The response is then parsed and returned as the final output of the chain.\\n\\nThis structured flow allows for dynamic retrieval and incorporation of context into the model's input, enhancing the quality and relevance of the generated response.\\n\\nHere's how you can set up a simple RAG chain in LCEL to automatically retrieve documents and generate responses based on them:\\n\\n\", imports='from langchain_core.runnables import RunnablePassthrough\\nfrom langchain_community.vectorstores import FAISS\\nfrom langchain_core.prompts import ChatPromptTemplate\\nfrom langchain_openai import ChatOpenAI, OpenAIEmbeddings\\nfrom langchain_core.output_parsers import StrOutputParser', code='# Initialize the components\\nembeddings = OpenAIEmbeddings()\\nvectorstore = FAISS.from_texts([\\'harrison worked at kensho\\'], embedding=embeddings)\\nretriever = vectorstore.as_retriever()\\n\\nprompt_template = \"\"\"Answer the question based only on the following context:{context}Question: {question}\"\"\"\\nprompt = ChatPromptTemplate.from_template(prompt_template)\\n\\nmodel = ChatOpenAI()\\noutput_parser = StrOutputParser()\\n\\n# Construct the RAG chain\\nchain = (\\n {\\'context\\': retriever, \\'question\\': RunnablePassthrough()} | prompt | model | output_parser\\n)\\n\\n# Invoke the chain with a question\\nresponse = chain.invoke(\\'where did harrison work?\\')\\nprint(response)')],\n",
|
||
" 'question': \"With a RAG chain in LCEL, why are documents retrieved automatically when we construct the prompt like {'context': retriever, 'question': RunnablePassthrough()} and invoke it using chain.invoke('where did harrison work?')\",\n",
|
||
" 'error': 'None',\n",
|
||
" 'prefix': \"In a Retrieval-Augmented Generation (RAG) chain within the LangChain Expression Language (LCEL), documents are retrieved automatically when constructing a prompt with {'context': retriever, 'question': RunnablePassthrough()} due to the way LCEL chains are designed to handle inputs and outputs across different components. When invoking the chain with chain.invoke('where did harrison work?'), the input is passed through the chain in a structured manner, allowing each component to perform its designated task seamlessly.\\n\\nThe key components involved in this process are:\\n\\n1. **Retriever**: This component is responsible for fetching relevant documents based on the input query. It uses vector search or other retrieval methods to find documents that are contextually related to the input question.\\n\\n2. **RunnablePassthrough**: This component simply passes the input ('where did harrison work?') as is to the next component in the chain. It acts as a bridge between the input and the prompt template, ensuring that the question is included in the final prompt sent to the model.\\n\\n3. **Prompt Template**: This component constructs the final prompt that is sent to the language model. It combines the retrieved documents (context) and the original question to form a comprehensive prompt that guides the model to generate a response based on both the question and the context provided by the retrieved documents.\\n\\n4. **Language Model (LLM/ChatModel)**: This component receives the constructed prompt and generates a response based on it. The response is then parsed and returned as the final output of the chain.\\n\\nThis structured flow allows for dynamic retrieval and incorporation of context into the model's input, enhancing the quality and relevance of the generated response.\\n\\nHere's how you can set up a simple RAG chain in LCEL to automatically retrieve documents and generate responses based on them:\\n\\n\",\n",
|
||
" 'imports': 'from langchain_core.runnables import RunnablePassthrough\\nfrom langchain_community.vectorstores import FAISS\\nfrom langchain_core.prompts import ChatPromptTemplate\\nfrom langchain_openai import ChatOpenAI, OpenAIEmbeddings\\nfrom langchain_core.output_parsers import StrOutputParser',\n",
|
||
" 'iterations': 1,\n",
|
||
" 'code': '# Initialize the components\\nembeddings = OpenAIEmbeddings()\\nvectorstore = FAISS.from_texts([\\'harrison worked at kensho\\'], embedding=embeddings)\\nretriever = vectorstore.as_retriever()\\n\\nprompt_template = \"\"\"Answer the question based only on the following context:{context}Question: {question}\"\"\"\\nprompt = ChatPromptTemplate.from_template(prompt_template)\\n\\nmodel = ChatOpenAI()\\noutput_parser = StrOutputParser()\\n\\n# Construct the RAG chain\\nchain = (\\n {\\'context\\': retriever, \\'question\\': RunnablePassthrough()} | prompt | model | output_parser\\n)\\n\\n# Invoke the chain with a question\\nresponse = chain.invoke(\\'where did harrison work?\\')\\nprint(response)'}},\n",
|
||
" 'reference': {'answer': \"When we create the chain, get_relevant_documents is invoked automatically. vectorstore = FAISS.from_texts(['harrison worked at kensho'], embedding=OpenAIEmbeddings()); retriever = vectorstore.as_retriever(); chain = ({'context': retriever, 'question': RunnablePassthrough()} | prompt | model | StrOutputParser()); chain.invoke('where did harrison work?')\"}},\n",
|
||
" 'b1631c37-266d-4aea-bf45-f9a30b667de4': {'input': {'question': \"I’m passing {'a':1} and want to create an output map of {'a':1,'b':2, 'c':3}. How can I do this in LCEL?\"},\n",
|
||
" 'feedback': [EvaluationResult(key='check_import', score=1, value=None, comment=None, correction=None, evaluator_info={}, source_run_id=None, target_run_id=None),\n",
|
||
" EvaluationResult(key='check_execution', score=1, value=None, comment=None, correction=None, evaluator_info={}, source_run_id=None, target_run_id=None)],\n",
|
||
" 'execution_time': 11.891566,\n",
|
||
" 'run_id': '5b63307c-7cdd-4957-9b49-61855a233c63',\n",
|
||
" 'output': {'keys': {'generation': [code(prefix=\"To create an output map of {'a':1,'b':2, 'c':3} from an input map of {'a':1} using LangChain Expression Language (LCEL), you can use the RunnablePassthrough.assign method. This method allows you to pass the input unchanged while adding extra keys to the output map. Here's how you can achieve this:\", imports='from langchain_core.runnables import RunnablePassthrough', code=\"# Define the input map\\ninput_map = {'a': 1}\\n\\n# Use RunnablePassthrough.assign to add extra keys 'b' and 'c'\\noutput_map = RunnablePassthrough.assign(b=lambda _: 2, c=lambda _: 3).invoke(input_map)\\n\\n# The output_map will now be {'a': 1, 'b': 2, 'c': 3}\\nprint(output_map)\")],\n",
|
||
" 'question': \"I’m passing {'a':1} and want to create an output map of {'a':1,'b':2, 'c':3}. How can I do this in LCEL?\",\n",
|
||
" 'error': 'None',\n",
|
||
" 'prefix': \"To create an output map of {'a':1,'b':2, 'c':3} from an input map of {'a':1} using LangChain Expression Language (LCEL), you can use the RunnablePassthrough.assign method. This method allows you to pass the input unchanged while adding extra keys to the output map. Here's how you can achieve this:\",\n",
|
||
" 'imports': 'from langchain_core.runnables import RunnablePassthrough',\n",
|
||
" 'iterations': 1,\n",
|
||
" 'code': \"# Define the input map\\ninput_map = {'a': 1}\\n\\n# Use RunnablePassthrough.assign to add extra keys 'b' and 'c'\\noutput_map = RunnablePassthrough.assign(b=lambda _: 2, c=lambda _: 3).invoke(input_map)\\n\\n# The output_map will now be {'a': 1, 'b': 2, 'c': 3}\\nprint(output_map)\"}},\n",
|
||
" 'reference': {'answer': \"Use RunnablePassthrough: Use RunnableParallel with lambdas: \\\\n from langchain_core.runnables import RunnableParallel, RunnablePassthrough; runnable = RunnableParallel(a=lambda x: x['a'], b=lambda x: x['a']+1, c=lambda x: x['a']+2); runnable.invoke({'num': 1}). Also you can use RunnablePassthrough: from langchain_core.runnables import RunnablePassthrough; original_input = {'a': 1}; chain = RunnablePassthrough.assign(b=lambda x: 2, c=lambda x: 3); output = chain.invoke(original_input); print(output)\"}}},\n",
|
||
" 'aggregate_metrics': None}"
|
||
]
|
||
},
|
||
"execution_count": 13,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"### LangGraph\n",
|
||
"\n",
|
||
"def check_import(run: Run, example: Union[Example, None] = None):\n",
|
||
" model_outputs = run.outputs[\"keys\"]\n",
|
||
" imports = model_outputs['imports']\n",
|
||
" try:\n",
|
||
" exec(imports)\n",
|
||
" score = 1\n",
|
||
" except:\n",
|
||
" score = 0\n",
|
||
" return EvaluationResult(key=\"check_import\", score=score)\n",
|
||
"\n",
|
||
"def check_execution(run: Run, example: Union[Example, None] = None):\n",
|
||
" model_outputs = run.outputs[\"keys\"]\n",
|
||
" imports = model_outputs['imports']\n",
|
||
" code = model_outputs['code']\n",
|
||
" code_to_execute = imports +\"\\n\"+ code\n",
|
||
" try:\n",
|
||
" exec(code_to_execute)\n",
|
||
" score = 1\n",
|
||
" except:\n",
|
||
" score = 0\n",
|
||
" return EvaluationResult(key=\"check_execution\", score=score)\n",
|
||
"\n",
|
||
"# Config\n",
|
||
"evaluation_config = RunEvalConfig(\n",
|
||
" custom_evaluators = [check_import,check_execution],\n",
|
||
")\n",
|
||
"\n",
|
||
"config = {\"recursion_limit\": 50}\n",
|
||
"def model(input: dict):\n",
|
||
" return app.invoke({\"keys\":{**input, \"iterations\":0}},config=config)\n",
|
||
"\n",
|
||
"run_id = uuid.uuid4().hex[:4]\n",
|
||
"project_name = \"context-stuffing-with-langgraph\"\n",
|
||
"langgraph_results = client.run_on_dataset(\n",
|
||
" dataset_name=\"lcel-teacher-eval\",\n",
|
||
" llm_or_chain_factory=model,\n",
|
||
" evaluation=evaluation_config,\n",
|
||
" project_name=f\"{run_id}-{project_name}\",\n",
|
||
")"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "5caa3a37-5fd2-4e4c-b310-577c239f9d61",
|
||
"metadata": {},
|
||
"source": [
|
||
"## Consolidate Eval Results\n",
|
||
"\n",
|
||
"Compute standard error across 4 trials."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 14,
|
||
"id": "14f8484b-9d57-4132-8801-74a4067f97db",
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"# You will have to update these to match the tests you ran.\n",
|
||
"# The test name can be found at langgraph_results[\"project_name\"]\n",
|
||
"langgraph=[\"80db-context-stuffing-with-langgraph\",\n",
|
||
"\"060c-context-stuffing-with-langgraph\",\n",
|
||
"\"93cd-context-stuffing-with-langgraph\",\n",
|
||
"\"60ef-context-stuffing-with-langgraph\"]"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 15,
|
||
"id": "d19deeb6-9fc3-46b0-affb-5baaef4e9bba",
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"no_langgraph=[\"b493-context-stuffing-no-langgraph\",\n",
|
||
"\"eb8a-context-stuffing-no-langgraph\",\n",
|
||
"\"b88c-context-stuffing-no-langgraph\",\n",
|
||
"\"0aaa-context-stuffing-no-langgraph\"]"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 39,
|
||
"id": "d6340773-ca0b-4320-b841-093bbfb1161a",
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"import pandas as pd \n",
|
||
"\n",
|
||
"def prepare_dataframe(project, trial_number, chain):\n",
|
||
" df = client.get_test_results(project_name=project)\n",
|
||
" df = df.dropna(subset=['feedback.check_execution', 'feedback.check_import'])\n",
|
||
" df = df[['input.question', 'feedback.check_execution', 'feedback.check_import']]\n",
|
||
" df['trial #'] = trial_number\n",
|
||
" df['chain'] = chain\n",
|
||
" return df\n",
|
||
"\n",
|
||
"# Prepare each dataframe\n",
|
||
"dfs_chain1 = [prepare_dataframe(project, i+1, 'LangGraph') for i, project in enumerate(langgraph)]\n",
|
||
"dfs_chain2 = [prepare_dataframe(project, i+1, 'No LangGraph') for i, project in enumerate(no_langgraph)]\n",
|
||
"\n",
|
||
"# Combine all dataframes\n",
|
||
"final_df = pd.concat(dfs_chain1 + dfs_chain2, ignore_index=True)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 42,
|
||
"id": "30dd9b44-b23f-4709-a993-f1e6873ff3f2",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/plain": [
|
||
"chain\n",
|
||
"LangGraph 78\n",
|
||
"No LangGraph 79\n",
|
||
"dtype: int64"
|
||
]
|
||
},
|
||
"execution_count": 42,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"final_df.groupby(\"chain\").size()"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 40,
|
||
"id": "2c4e226c-511b-41fa-b850-2a0a3f67a44d",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/html": [
|
||
"<div>\n",
|
||
"<style scoped>\n",
|
||
" .dataframe tbody tr th:only-of-type {\n",
|
||
" vertical-align: middle;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe tbody tr th {\n",
|
||
" vertical-align: top;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe thead th {\n",
|
||
" text-align: right;\n",
|
||
" }\n",
|
||
"</style>\n",
|
||
"<table border=\"1\" class=\"dataframe\">\n",
|
||
" <thead>\n",
|
||
" <tr style=\"text-align: right;\">\n",
|
||
" <th></th>\n",
|
||
" <th>Fraction Imports Correct</th>\n",
|
||
" <th>Fraction Execution Correct</th>\n",
|
||
" <th>Imports Correct Std Error</th>\n",
|
||
" <th>Execution Correct Std Error</th>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>chain</th>\n",
|
||
" <th></th>\n",
|
||
" <th></th>\n",
|
||
" <th></th>\n",
|
||
" <th></th>\n",
|
||
" </tr>\n",
|
||
" </thead>\n",
|
||
" <tbody>\n",
|
||
" <tr>\n",
|
||
" <th>LangGraph</th>\n",
|
||
" <td>1.000000</td>\n",
|
||
" <td>0.807692</td>\n",
|
||
" <td>0.000000</td>\n",
|
||
" <td>0.044625</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>No LangGraph</th>\n",
|
||
" <td>0.987342</td>\n",
|
||
" <td>0.556962</td>\n",
|
||
" <td>0.012578</td>\n",
|
||
" <td>0.055888</td>\n",
|
||
" </tr>\n",
|
||
" </tbody>\n",
|
||
"</table>\n",
|
||
"</div>"
|
||
],
|
||
"text/plain": [
|
||
" Fraction Imports Correct Fraction Execution Correct \\\n",
|
||
"chain \n",
|
||
"LangGraph 1.000000 0.807692 \n",
|
||
"No LangGraph 0.987342 0.556962 \n",
|
||
"\n",
|
||
" Imports Correct Std Error Execution Correct Std Error \n",
|
||
"chain \n",
|
||
"LangGraph 0.000000 0.044625 \n",
|
||
"No LangGraph 0.012578 0.055888 "
|
||
]
|
||
},
|
||
"execution_count": 40,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"import pandas as pd\n",
|
||
"\n",
|
||
"def group_standard_error(group):\n",
|
||
" \"\"\"\n",
|
||
" Calculate the standard error for the 'correct' column in a given group.\n",
|
||
"\n",
|
||
" The function assumes the 'correct' column contains binary values (0 or 1).\n",
|
||
" It computes the standard error based on the formula for the standard error\n",
|
||
" of a proportion, which is sqrt(p * (1 - p) / n), where p is the proportion\n",
|
||
" of successes (1s) and n is the total number of trials.\n",
|
||
"\n",
|
||
" Args:\n",
|
||
" group (pd.DataFrame): A DataFrame group with a 'correct' column.\n",
|
||
"\n",
|
||
" Returns:\n",
|
||
" pd.Series: A series containing the standard error of the 'correct' column.\n",
|
||
" \"\"\"\n",
|
||
" # 3 trials x 20 questions per trial = 60\n",
|
||
" total_trials = len(group) \n",
|
||
" std_errors = {}\n",
|
||
" for column in [\"feedback.check_import\",\"feedback.check_execution\"]:\n",
|
||
" # Number correct\n",
|
||
" occurrences = group[column].sum()\n",
|
||
" # Total trials\n",
|
||
" fraction = occurrences / total_trials\n",
|
||
" # Standard error\n",
|
||
" std_errors[column] = (fraction * (1 - fraction) / total_trials) ** 0.5\n",
|
||
" return pd.Series(std_errors)\n",
|
||
"\n",
|
||
"# Calculate standard errors\n",
|
||
"std_errors = final_df.groupby([\"chain\"]).apply(group_standard_error)\n",
|
||
"\n",
|
||
"# Calculate the fraction of correct answers\n",
|
||
"grouped_frac_correct = final_df.groupby('chain')[[\"feedback.check_import\",\"feedback.check_execution\"]].sum() / final_df.groupby('chain')[[\"feedback.check_import\",\"feedback.check_execution\"]].count()\n",
|
||
"\n",
|
||
"# Concatenate the fraction correct data with the standard errors\n",
|
||
"correct_frac_and_errors = pd.concat([grouped_frac_correct, std_errors], axis=1)\n",
|
||
"\n",
|
||
"# If you want to rename the columns for clarity\n",
|
||
"correct_frac_and_errors.columns = [\"Fraction Imports Correct\", \"Fraction Execution Correct\", \"Imports Correct Std Error\", \"Execution Correct Std Error\"]\n",
|
||
"correct_frac_and_errors"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 47,
|
||
"id": "b737b809-04dc-49f1-b070-f0609898e9d3",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"image/png": "iVBORw0KGgoAAAANSUhEUgAAB8YAAAN5CAYAAAB61FHjAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAAB1dUlEQVR4nOzdebyWc/4/8PfpdDonJy1opalEkq3mWCYxiVSW0GAsQ8sYYoQKM5ahsjWDki/ZicgwY/uONSKMEUaUZUSRZWgjFa3qXL8//M797XZOdY7O6ejq+Xw8zuPR/bm293Xd93X3+Nyv6/pcOUmSJAEAAAAAAAAAKVWjugsAAAAAAAAAgKokGAcAAAAAAAAg1QTjAAAAAAAAAKSaYBwAAAAAAACAVBOMAwAAAAAAAJBqgnEAAAAAAAAAUk0wDgAAAAAAAECqCcYBAAAAAAAASDXBOAAAAAAAAACpJhgHoMLuvPPOyMnJiY8//jjT1rJlyzj00EM3aB0ff/xx5OTkxNVXX13l2+rbt2/UqVOnyrfzQ/vtt1/svPPOG3y7VI2yzp0NJScnJwYMGLDBt7s2lf29UfKdcOedd1baOgEA2LTo7244+rtrNnTo0MjJyanuMn6SqrPf91P8zFbF+duyZcvo27dvpa4T4KdCMA6wkSjpnJf1d95551V3eRutZcuWxTXXXBN77bVX1KtXLwoKCqJNmzYxYMCA+OCDD6q7vPVSXT9uVJYlS5bE0KFD4/nnny/X/M8///waz5Fjjz22aov9gSuuuCIeeeSRDbrNn5I5c+bEOeecE23bto3NNtssCgsLo6ioKC677LJYsGBBdZcHAMBPjP5u1Uh7f3dNn5mCgoLqLq9cKtrn3VDWdFybNGmyQeu49957Y9SoURt0mz8laT5/AapTzeouAICKueSSS6JVq1ZZbT+1q1U3Fl9++WX06NEjJk+eHIceemgcf/zxUadOnXj//ffjvvvui1tuuSVWrFhR3WVuspYsWRLDhg2LiO+vyi6vM888M/bYY4+stpYtW1ZiZet2xRVXxFFHHRVHHHFEVvuJJ54Yxx57bOTn52/Qejakf//733HwwQfHt99+GyeccEIUFRVFRMTrr78ef/7zn+PFF1+Mp59+ukq23aJFi1i6dGnk5eVVyfoBAKha+ruVZ1Po7+bn58dtt91Wqj03N7caqqm4tfV5//SnP1XrRSEHHnhg9O7dO6utdu3aG7SGe++9N955550YOHBgVvum0O+r7vP3/fffjxo13FMJpJNgHGAjc9BBB8Xuu+9e3WWkQt++fePNN9+MBx54II488sisaZdeemlceOGF1VTZpq24uHi9Onj77rtvHHXUUeWad+XKlVFcXBy1atX60duriNzc3I3mR5ofY8GCBdGrV6/Izc2NN998M9q2bZs1/fLLL49bb721yra/Md0dAgBAafq7lWdT6O/WrFkzTjjhhOouo0rUrFkzatasvp/u27RpU+5jmyRJLFu2bIMF55tCv6+6z980X8wP4LIfgJR58sknY999943CwsLYfPPN45BDDol333231HzTpk2Lo446KrbYYosoKCiI3XffPf7xj3+Umu/dd9+N/fffP2rXrh3bbLNNXHbZZVFcXLzG7T/99NPRvn37KCgoiHbt2sVDDz2UNX3+/PlxzjnnxC677BJ16tSJunXrxkEHHRRTp04tta5ly5bF0KFDo02bNlFQUBBNmzaNX/3qV/Hhhx+ucftJksQpp5wStWrVKrXt1b366qvx+OOPx0knnVSqkxHxfSegrGe5ff7553HEEUdEnTp1omHDhnHOOefEqlWrsuYpLi6OUaNGxU477RQFBQXRuHHj6N+/f3z99del1vfkk09G586dY/PNN4+6devGHnvsEffee+8a6474/hhvttlmcdxxx8XKlSvXOu8PlTwb7/nnn4/dd989ateuHbvssktm6LaHHnoodtlllygoKIiioqJ48803s5YvGZ79o48+iu7du0dhYWE0a9YsLrnkkkiSJGvexYsXx9lnnx3NmzeP/Pz82GGHHeLqq68uNV/Js6/HjRsXO+20U+Tn58dNN90UDRs2jIiIYcOGZYZuGzp0aIX2d3WrP6Nv1KhR0bp168jPz4///Oc/sWLFirj44oujqKgo6tWrF4WFhbHvvvvGxIkTS62nuLg4rr322sxxatiwYfTo0SNef/31zP4sXrw47rrrrkzdJc/mWtMzxm+44YbMvjdr1ixOP/30UkOOlzzL7D//+U906dIlNttss9h6663jyiuvrNBxGDduXOywww6Z9/jFF1/MTJs4cWLk5OTEww8/XGq5e++9N3JycmLSpElrXPfNN98cn3/+eYwcObJUKB4R0bhx4/jTn/5Uqv2ll16KPffcMwoKCmLbbbeNsWPHZk0v7/dGWc+aK/nMlufcBQDgp01/V3+3IpIkiS5dukTDhg1j7ty5mfYVK1bELrvsEq1bt47Fixdn2u+5554oKiqK2rVrxxZbbBHHHntsfPbZZ6XW++qrr8bBBx8cDRo0iMLCwth1113j2muvzUzfb7/9yhz1rG/fvpnRzD7++OO19nnLesb4ypUr49JLL830ZVu2bBkXXHBBLF++PGu+kn7/uvpZP1bJ+sePH5/5XeHmm2+OiIgxY8bE/vvvH40aNYr8/Pxo165d3HjjjWWuZ22fj/322y8ef/zx+OSTTzLHZvVjV9Yzxp977rnM90P9+vXj8MMPj/feey9rnpLjOmPGjOjbt2/Ur18/6tWrF/369YslS5aU+xhMnjw59t5776hdu3a0atUqbrrppsy0b7/9NgoLC+Oss84qtdx///vfyM3NjeHDh69x3VV5/l599dWx9957x5Zbbhm1a9eOoqKieOCBB0qt64fPGC/5LeNf//pXDB48OBo2bBiFhYXRq1evmDdv3hr3BeCnSDAOsJFZuHBhfPnll1l/Je6+++445JBDok6dOvGXv/wlLrroovjPf/4T++yzT1YQ9+6778YvfvGLeO+99+K8886LESNGRGFhYRxxxBFZgdjs2bOjS5cuMWXKlDjvvPNi4MCBMXbs2KwO3+qmT58exxxzTBx00EExfPjwqFmzZhx99NHxzDPPZOb56KOP4pFHHolDDz00Ro4cGeeee268/fbb0blz5/jiiy8y861atSoOPfTQGDZsWBQVFcWIESPirLPOioULF8Y777xT5vZXrVoVffv2jbFjx8bDDz8cv/rVr9Z4HEt+FDnxxBPXfsB/sP7u3bvHlltuGVdffXV07tw5RowYEbfcckvWfP37949zzz03OnXqFNdee23069cvxo0bF927d4/vvvsuM9+dd94ZhxxySMyfPz/OP//8+POf/xzt27ePp556ao01PPbYY3HYYYfF0UcfHffcc8+PuoJ8xowZcfzxx0fPnj1j+PDh8fXXX0fPnj1j3LhxMWjQoDjhhBNi2LBh8eGHH8avf/3rUj8MrVq1Knr06BGNGzeOK6+8MoqKimLIkCExZMiQzDxJksRhhx0W11xzTfTo0SNGjhwZO+ywQ5x77rkxePDgUjU999xzMWjQoDjmmGPi2muvjT322CPTee7Vq1fcfffdcffdd6/1PS3xzTfflDpHVt+HMWPGxHXXXRennHJKjBgxIrbYYotYtGhR3HbbbbHffvvFX/7ylxg6dGjMmzcvunfvHlOmTMla/0knnRQDBw6M5s2bx1/+8pc477zzoqCgIF555ZWI+P48zM/Pj3333TdTd//+/ddY79ChQ+P000+PZs2axYgRI+LII4+Mm2++Obp165b1eYmI+Prrr6NHjx6x2267xYgRI6Jt27bxxz/+MZ588sl1HpeIiBdeeCEGDhwYJ5xwQlxyySXx1VdfRY8ePTLn1H777RfNmzePcePGlVp23Lhx0bp16+jYseMa1/+Pf/wjateuXe479iO+/zweddRRceCBB8aIESOiQYMG0bdv36wfOMv7vbEm5T13AQCoXvq7+rsV7e/+8PPy5ZdfxqJFiyLi+4uW77jjjli2bFmceuqpmWWGDBkS7777bowZMyYKCwsj4vvRrXr37h3bb799jBw5MgYOHBjPPvts/PKXv8y6aPmZZ56JX/7yl/Gf//wnzjrrrBgxYkR06dIlHnvssXId5xINGzascJ/3d7/7XVx88cXx85//PK655pro3LlzDB8+PI499thS85ann7U2y5YtK3VcVw/g33///TjuuOPiwAMPjGuvvTbat28fERE33nhjtGjRIi644IIYMWJENG/ePH7/+9/H6NGjs9a/rs/HhRdeGO3bt4+tttoqc2zW9rzxCRMmRPfu3WPu3LkxdOjQGDx4cLz88svRqVOnUhemR0T8+te/jm+++SaGDx8ev/71r+POO+/MDGu/Ll9//XUcfPDBUVRUFFdeeWVss802cdppp8Udd9wRERF16tSJXr16xf33318qmP7rX/8aSZLEb37zmzWuvyrP32uvvTY6dOgQl1xySVxxxRWZ77HHH3+8XNs544wzYurUqTFkyJA47bTT4tFHH40BAwaUu06An4QEgI3CmDFjkogo8y9JkuSbb75J6tevn5x88slZy82ePTupV69eVvsBBxyQ7LLLLsmyZcsybcXFxcnee++dbL/99pm2gQMHJhGRvPrqq5m2uXPnJvXq1UsiIpk5c2amvUWLFklEJA8++GCmbeHChUnTpk2TDh06ZNqWLVuWrFq1KqvGmTNnJvn5+ckll1ySabvjjjuSiEhGjhxZ6lgUFxdnlouI5Kqrrkq+++675Jhjjklq166djB8/fu0HM0mSXr16JRGRfP311+ucN0mSpE+fPklEZNWYJEnSoUOHpKioKPP6n//8ZxIRybhx47Lme+qpp7LaFyxYkGy++ebJXnvtlSxdurTM/UuSJOncuXOy0047JUmSJA8++GCSl5eXnHzyyaWO4ZpqLiwszGoreZ9efvnlTNv48eOTiEhq166dfPLJJ5n2m2++OYmIZOLEiaWOwxlnnJFV7yGHHJLUqlUrmTdvXpIkSfLII48kEZFcdtllWds/6qijkpycnGTGjBmZtohIatSokbz77rtZ886bNy+JiGTIkCHr3NckSZKJEyeu8RyZOXNm5vNSt27dZO7cuVnLrly5Mlm+fHlW29dff500btw4+e1vf5tpe+6555KISM4888xS21/9fSssLEz69OlTap6S87jk3Jk7d25Sq1atpFu3blnv6fXXX59ERHLHHXdk2jp37pxERDJ27NhM2/Lly5MmTZokRx555DqPT8mxeP311zNtn3zySVJQUJD06tUr03b++ecn+fn5yYIFCzJtc+fOTWrWrLnO96JBgwbJbrvtts5aSpR8Hl988cWsbeXn5ydnn312pq283xsl7/GYMWMybeU9dwEAqD76u/9Hf7f8/d01fWa6d++eNW9J3/aee+5JXnnllSQ3NzcZOHBgZvrHH3+c5ObmJpdffnnWcm+//XZSs2bNTPvKlSuTVq1aJS1atCh1bH+4X507dy6z5hYtWmRer63PO2TIkMznP0mSZMqUKUlEJL/73e+y5jvnnHOSiEiee+65TFt5+1lrsqbjWtLPKln/U089VWrZJUuWlGrr3r17su2222Zel/fzccghh2QdrxJl9fvat2+fNGrUKPnqq68ybVOnTk1q1KiR9O7dO9NWclxX7+cnyffnzJZbbln2AVlNSb98xIgRmbbly5dntr9ixYokSf7vd5Ynn3wya/ldd921zM/GD2upivM3SUq/PytWrEh23nnnZP/9989qb9GiRdZvGiXf0V27ds16jwYNGpTk5uZm/X4A8FPnjnGAjczo0aPjmWeeyfqL+P6q5QULFsRxxx2XdUVvbm5u7LXXXpkhoefPnx/PPfdc5urYkvm++uqr6N69e0yfPj0+//zziIh44okn4he/+EXsueeeme03bNhwjVe2NmvWLHr16pV5Xbdu3ejdu3e8+eabMXv27Ij4fsinGjW+/+9n1apV8dVXX0WdOnVihx12iDfeeCOz7IMPPhhbbbVVnHHGGaW288PhxFasWBFHH310PPbYY/HEE09Et27d1nkcS64g33zzzdc57+pWv8o84vvnWX/00UeZ13//+9+jXr16ceCBB2a9D0VFRVGnTp3M+/DMM8/EN998k7nbeG37F/H9VcXHHHNM9O/fP26++ebMMfwx2rVrl3XX71577RUREfvvv3/87Gc/K9W++v6VWP2K4JKh0FesWBETJkyIiO8/O7m5uXHmmWdmLXf22WdHkiSl7nDu3LlztGvX7kfv0+ouvvjiUudIkyZNMtOPPPLIzJB1JXJzczPPGS8uLo758+fHypUrY/fddy/1uczJycm6O75EWe/bukyYMCFWrFgRAwcOzHpPTz755Khbt26pq7br1KmT9Zy3WrVqxZ577lnme1SWjh07RlFRUeb1z372szj88MNj/PjxmSvZe/fuHcuXL88aTu3++++PlStXrvMZc4sWLarwOdWuXbvYd999M68bNmwYO+ywQ9Y+lfd7Y23Wde4CAFD99Hf1dyvS3y0oKCj1eXnmmWfiz3/+c9Z8p5xySnTv3j3OOOOMOPHEE6N169ZxxRVXZKY/9NBDUVxcHL/+9a+z9qtJkyax/fbbZ/brzTffjJkzZ8bAgQOjfv3669yvyvTEE09ERJQage3ss8+OiCjVdyxPP2ttDj/88FLHtXv37pnprVq1ynpdYvXnjJeMANG5c+f46KOPYuHChRFR8c/HusyaNSumTJkSffv2jS222CLTvuuuu8aBBx6YOXarK+uz/tVXX2XOnbWpWbNm1qhwtWrViv79+8fcuXNj8uTJERHRtWvXaNasWdZobO+880689dZb5epXR1T++RuR/f58/fXXsXDhwth3333L3a8+5ZRTst6jfffdN1atWhWffPJJhWoFqE4VH38VgGq15557xu67716qffr06RHxfbhZlrp160bE98NpJUkSF110UVx00UVlzjt37tzYeuut45NPPsmEo6vbYYcdylxuu+22K9WJadOmTUR8/wyoJk2aZJ7PfMMNN8TMmTOzhpXacsstM//+8MMPY4cddijX0GnDhw+Pb7/9Np588skyn+NVlpLj8c0335Tq0K5JyfOkV9egQYOsZ6lNnz49Fi5cGI0aNSpzHSXPNSt5btzOO++8zu3OnDkzTjjhhDj66KPjuuuuK1eta7N6+B0RUa9evYiIaN68eZntP3xWXI0aNWLbbbfNalv9fY6I+OSTT6JZs2alOnI77rhjZvrqWrVqVdHdWKNddtklunbtusbpa9rWXXfdFSNGjIhp06ZlDQG4+vwffvhhNGvWLKuzvT5KjsMPz6latWrFtttuW+o4bbPNNqXOsQYNGsRbb71Vru1tv/32pdratGkTS5YsiXnz5kWTJk2ibdu2sccee8S4cePipJNOiojvh1H/xS9+Edttt91a11+3bt345ptvylVLiR9+HiNKn1fl/d5Yk/KcuwAAVD/93dL0d9csNzd3rX2/1d1+++3RunXrmD59erz88stZAeH06dMjSZIy+0sREXl5eRFRsf2qbJ988knUqFGjVJ+sSZMmUb9+/VJ9x/L0s9Zmm222+VH96n/9618xZMiQmDRpUqlndi9cuDDq1atX6cdxTf3qiO9/gxg/fnwsXrw4M2x+ROnj06BBg4j4/vePkvNnTZo1a5a1rojs74Jf/OIXUaNGjfjNb34TN954YyxZsiQ222yzGDduXBQUFMTRRx+91vVX1fkb8f3jCi677LKYMmVK1tD45b0gYW3HDWBjIRgHSImSZyjffffdWXfHlijpcJfMd84555R5dW9ErDP8Wh9XXHFFXHTRRfHb3/42Lr300thiiy2iRo0aMXDgwFLPsi6v7t27x1NPPRVXXnll7LfffqWuOC5L27ZtIyLi7bffzrqKem1yc3PXOU9xcXE0atSozGc0R0Spjkp5NG3aNJo2bRpPPPFEvP7662X+UFQRa9qPNbUnSbJe2yuP1X+UqI5t3XPPPdG3b9844ogj4txzz41GjRpFbm5uDB8+PNNp/ynYUO9R796946yzzor//ve/sXz58njllVfi+uuvX+dybdu2jSlTpsSKFSsyd+CvS3n2aX2/N8pz7gIA8NOlv6u/u76ef/75TBD49ttvZ42iVlxcHDk5OfHkk0+WeRzq1KlToW3l5OSU2Uf74fOmf4zyBphV3Xcsq1/94YcfxgEHHBBt27aNkSNHRvPmzaNWrVrxxBNPxDXXXPOjz4GqsCH61r17946rrroqHnnkkTjuuOPi3nvvjUMPPTRzE8KaVNX5+89//jMOO+yw+OUvfxk33HBDNG3aNPLy8mLMmDFx7733rtd2NsTvRgCVRTAOkBKtW7eOiIhGjRqt9arekjt98/Ly1nlldYsWLTJX5q/u/fffL3P+kqvzV++offDBBxER0bJly4iIeOCBB6JLly5x++23Zy27YMGC2GqrrbL259VXX43vvvsuc3X2mvziF7+IU089NQ499NA4+uij4+GHH17nlfc9e/aM4cOHxz333FPujkZ5tG7dOiZMmBCdOnVaa9hb8n6988476/xhpqCgIB577LHYf//9o0ePHvHCCy/ETjvtVGk1V1RxcXF89NFHmSuiI0q/zy1atIgJEybEN998k3XX+LRp0zLT16Wqh6Jb3QMPPBDbbrttPPTQQ1nb/eGQ6a1bt47x48fH/Pnz13rXeHlrLzkO77//ftZd+CtWrIiZM2eW++6H8irrfP7ggw9is802y/oR69hjj43BgwfHX//611i6dGnk5eXFMcccs8719+zZMyZNmhQPPvhgHHfccZVWd3m/NwAASCf9Xf3d9TFr1qw444wzolu3blGrVq3MhRMl/bHWrVtHkiTRqlWrrH7uD62+X2v7fDVo0KDMIct/eFd3Rfq8LVq0iOLi4pg+fXpmJLaIiDlz5sSCBQvK1ceuao8++mgsX748/vGPf2TdWVwyFH2J8n4+fky/+oemTZsWW221Vak7vNfHF198UeoO9B9+F0R8f0d8hw4dYty4cbHNNtvEp59+Wq5REarq/H3wwQejoKAgxo8fH/n5+Zn2MWPGVNo2ADYGnjEOkBLdu3ePunXrxhVXXJE1DHSJefPmRcT3PyTst99+cfPNN8esWbPWOF9ExMEHHxyvvPJKvPbaa1nT13R1+BdffBEPP/xw5vWiRYti7Nix0b59+8xV/bm5uaWuJP373/+eec5biSOPPDK+/PLLMu9SLetK1K5du8Z9990XTz31VJx44onrvBK5Y8eO0aNHj7jtttvikUceKTV9xYoVcc4556x1HWX59a9/HatWrYpLL7201LSVK1fGggULIiKiW7dusfnmm8fw4cNj2bJlWfOVtX/16tWL8ePHR6NGjeLAAw+s9ruYV39fkiSJ66+/PvLy8uKAAw6IiO8/O6tWrSr1/l1zzTWRk5MTBx100Dq3sdlmm0VEZI5ZVSq56nn1Y//qq6/GpEmTsuY78sgjI0mSGDZsWKl1rL5sYWFhueru2rVr1KpVK/7nf/4na/nbb789Fi5cGIccckhFd2WtJk2alPXssM8++yz+93//N7p165Z15fdWW20VBx10UNxzzz0xbty46NGjR7kC6FNPPTWaNm0aZ599duaHgdXNnTs3LrvssgrXXd7vDQAA0kl/V393fZx88slRXFwct99+e9xyyy1Rs2bNOOmkkzK1/OpXv4rc3NwYNmxYqfqSJImvvvoqIiJ+/vOfR6tWrWLUqFGl+nurL9e6deuYNm1a1udt6tSp8a9//StrmYr0eQ8++OCIiBg1alRW+8iRIyMiKr3v+GOU1a9euHBhqeC1vJ+PwsLCzHPJ16Zp06bRvn37uOuuu7KO5TvvvBNPP/105thVlpUrV8bNN9+ceb1ixYq4+eabo2HDhlFUVJQ174knnhhPP/10jBo1Krbccsty/RZSVedvbm5u5OTkZI1c8PHHH5e5DYA0c8c4QErUrVs3brzxxjjxxBPj5z//eRx77LHRsGHD+PTTT+Pxxx+PTp06ZTrdo0ePjn322Sd22WWXOPnkk2PbbbeNOXPmxKRJk+K///1vTJ06NSIi/vCHP8Tdd98dPXr0iLPOOisKCwvjlltuiRYtWpT5TOM2bdrESSedFP/+97+jcePGcccdd8ScOXOyOkGHHnpoXHLJJdGvX7/Ye++94+23345x48aVemZ17969Y+zYsTF48OB47bXXYt99943FixfHhAkT4ve//30cfvjhpbZ/xBFHxJgxY6J3795Rt27drI5KWcaOHRvdunWLX/3qV9GzZ8844IADorCwMKZPnx733XdfzJo1K66++uoKvQ+dO3eO/v37x/Dhw2PKlCnRrVu3yMvLi+nTp8ff//73uPbaa+Ooo46KunXrxjXXXBO/+93vYo899ojjjz8+GjRoEFOnTo0lS5bEXXfdVWrdW221VTzzzDOxzz77RNeuXeOll16KrbfeukL1VYaCgoJ46qmnok+fPrHXXnvFk08+GY8//nhccMEFmbuOe/bsGV26dIkLL7wwPv7449htt93i6aefjv/93/+NgQMHZq4QX5vatWtHu3bt4v777482bdrEFltsETvvvHOVPM/t0EMPjYceeih69eoVhxxySMycOTNuuummaNeuXXz77beZ+bp06RInnnhi/M///E9Mnz49evToEcXFxfHPf/4zunTpEgMGDIiIiKKiopgwYUKMHDkymjVrFq1atSrz+YUNGzaM888/P4YNGxY9evSIww47LN5///244YYbYo899ogTTjihUvdz5513ju7du8eZZ54Z+fn5ccMNN0RElBn09+7dO4466qiIiDJ/+CpLgwYN4uGHH46DDz442rdvHyeccELmh4E33ngj/vrXv2YNWVhe5f3eAAAgnfR39XfLsnLlyrjnnnvKnNarV68oLCyMMWPGxOOPPx533nlnbLPNNhERcd1118UJJ5wQN954Y/z+97+P1q1bx2WXXRbnn39+fPzxx3HEEUfE5ptvHjNnzoyHH344TjnllDjnnHOiRo0aceONN0bPnj2jffv20a9fv2jatGlMmzYt3n333Rg/fnxERPz2t7+NkSNHRvfu3eOkk06KuXPnxk033RQ77bRTLFq0KFNjRfq8u+22W/Tp0yduueWWWLBgQXTu3Dlee+21uOuuu+KII46ILl26lPt9rCold+T37Nkz+vfvH99++23ceuut0ahRo6wLVcr7+SgqKor7778/Bg8eHHvssUfUqVMnevbsWea2r7rqqjjooIOiY8eOcdJJJ8XSpUvjuuuui3r16sXQoUMrdT+bNWsWf/nLX+Ljjz+ONm3axP333x9TpkyJW265pdQIEMcff3z84Q9/iIcffjhOO+20dY4QUaIqzt9DDjkkRo4cGT169Ijjjz8+5s6dG6NHj47tttuuzO88gNRKANgojBkzJomI5N///vda55s4cWLSvXv3pF69eklBQUHSunXrpG/fvsnrr7+eNd+HH36Y9O7dO2nSpEmSl5eXbL311smhhx6aPPDAA1nzvfXWW0nnzp2TgoKCZOutt04uvfTS5Pbbb08iIpk5c2ZmvhYtWiSHHHJIMn78+GTXXXdN8vPzk7Zt2yZ///vfs9a3bNmy5Oyzz06aNm2a1K5dO+nUqVMyadKkpHPnzknnzp2z5l2yZEly4YUXJq1atUry8vKSJk2aJEcddVTy4YcfJkmSJDNnzkwiIrnqqquylrvhhhuSiEjOOeecdR7XJUuWJFdffXWyxx57JHXq1Elq1aqVbL/99skZZ5yRzJgxIzNfnz59ksLCwlLLDxkyJCnrv9NbbrklKSoqSmrXrp1svvnmyS677JL84Q9/SL744ous+f7xj38ke++9d1K7du2kbt26yZ577pn89a9/zUzv3LlzstNOO2UtM2PGjKRp06bJjjvumMybN2+N+1ZWzSXv0w9FRHL66adntZV1fEvW+eGHHybdunVLNttss6Rx48bJkCFDklWr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48dn1KhRWbp0adasWZORI0fu81qaWE8BOHz0yX+gTwagMdAj/4G1FA6cYByOErfffnv+/u//PsuXL6833q1btyxbtqze2LJly3LyySenSZMm+3ydzZs357XXXsvNN9+cCy+8MN26dct77723z+c55ZRT8tJLL9Ub++z28OHD8+yzz+aVV17Z5/Mnf/jcuNra2tx99905++yzc/LJJ+f3v//9TvM+/fTTrFq1qm77tddey5YtW9KtW7f9ui4A7MnerlG706pVq1RVVdVbP2tqavLyyy/Xbbdt2zaDBg3Kvffem23btu1XrcuWLcs555yT0aNHp3fv3uncuXPeeOONneb927/9Wz7++OO67RdffDEtWrRI+/bt9+u6AHCg9Mk70ycDcCTSIwMHS9OGLgA4PE4//fRcdtllmT17dr3xH/zgBznzzDNz6623ZtiwYVm+fHnuvffe3Hfffbs9X01NTdasWVNvrFmzZjnllFPStm3b3H///TnxxBOzYcOG/PVf//U+13vttdfmvPPOy6xZszJkyJA8//zzefrpp+v+Yj5JbrjhhvziF7/IhRdemClTpuRrX/tajj/++PzmN7/J008/vcdfWHTu3DmffPJJ5syZkyFDhmTZsmWZP3/+TvOOOeaYXHvttZk9e3aaNm2aMWPG5Oyzz96rV9YBwJ68//77O62pJ5xwwl6tUXty7bXXZsaMGencuXO6du2aOXPm5L333qu3nt53330ZMGBA+vbtm6lTp6ZHjx4pLy/PSy+9lHXr1u3xtXJdunTJT37ykzzzzDPp2LFjHn744bz00kvp2LFjvXk7duzIqFGjcvPNN2f9+vWZMmVKxowZk/Jyf6sLQMPQJ+9MnwxAQ9Mj65HhUPIvDI4it9xyy06vWjnjjDPy2GOPZdGiRenevXsmT56cW265JSNGjNjtuT788MP07t273teQIUNSXl6eRYsWZfXq1enevXtuuOGG3Hnnnftc64ABAzJ//vzMmjUrPXv2zJIlS3LDDTekoqKibk5FRUWqq6szceLEPPTQQzn33HPTrVu3jB07NgMGDMjixYt3e42ePXtm1qxZmTlzZrp3755HHnkkM2bM2Gle8+bNM3HixFx66aUZMGBAWrRokUcffXSf7wkAduWFF17YaU19+OGH92qN2pOJEydm+PDhufzyy9O/f/+0aNEigwcPrreefvWrX80rr7ySgQMHZtKkSenZs2f69u2bOXPmZPz48bn11lt3e43vf//7+e53v5thw4alX79+2bx5c0aPHr3TvAsvvDBdunTJeeedl2HDhuXb3/52pk6dus/3BAAHkz65Pn0yAA1NjwwcSmWlffmABYAGdNVVV2XdunX553/+58N2zQULFmTs2LHZsmXLYbsmABwqtbW16datWy6++OI9NvMH04gRI7Jly5Y9/jIeANg3+mQA2H96ZDj6eJU6cMS66667MmjQoFRWVubpp5/OwoUL9/jqOgDg//3Xf/1Xli5dmvPPPz/bt2/Pvffem9/97ne59NJLG7o0AGA/6JMBYP/pkQHBOHDEWrlyZe6444588MEH6dSpU2bPnp2/+qu/auiyAKDRKC8vz4IFCzJ+/PiUSqV07949zz33XLp169bQpQEA+0GfDAD7T48MeJU6AAAAAAAAAIVW3tAFAAAAAAAAAMChJBgHAAAAAAAAoNAE4wAAAAAAAAAUmmAcAAAAAAAAgEITjAMAAAAAAABQaIJxAGCflJWVZfHixQd0jhEjRmTo0KEHpR4AAABoKHpkAGg8BOMAQD0bN27Mtddem06dOqVZs2Zp3759hgwZkurq6oN2jXvuuScLFiw4aOcDAACAQ0GPDADF0bShCwAAjhzr16/PgAED0rp169x55505/fTT88knn+SZZ57JNddck3Xr1h2U67Rq1eqgnAcAAAAOFT0yABSLJ8YBgDqjR49OWVlZVq5cme9973s5+eSTc9ppp2XcuHF58cUX6+a98847ueiii9K8efN06dIlf/d3f1e3r6amJqNGjUrHjh1z3HHH5ZRTTsk999xT7zqffU3cBRdckOuuuy4TJkxImzZt0q5du0ydOvVQ3y4AAAB8Lj0yABSLYBwASJK8++67WbJkSa655ppUVlbutL9169Z130+bNi0XX3xx/v3f/z1//ud/nssuuyzvvvtukqS2tjZf/vKX8/jjj+fXv/51Jk+enJtuuimPPfbYbq+/cOHCVFZWZsWKFbnjjjtyyy235Nlnnz2o9wgAAAB7Q48MAMUjGAcAkiS//e1vUyqV0rVr1z3OHTFiRIYPH57OnTtn+vTp+fDDD7Ny5cokyTHHHJNp06alb9++6dixYy677LKMHDlyj01/jx49MmXKlHTp0iWXX355+vbte1A/sw0AAAD2lh4ZAIrHZ4wDAEmSUqm013N79OhR931lZWVatmyZt956q25s7ty5efDBB7Nhw4Z8/PHH2bFjR3r16rXX50ySE088sd45AQAA4HDRIwNA8XhiHABIknTp0iVlZWVZt27dHucec8wx9bbLyspSW1ubJFm0aFHGjx+fUaNGZenSpVmzZk1GjhyZHTt27Pc5AQAA4HDSIwNA8QjGAYAkSZs2bTJ48ODMnTs327Zt22n/li1b9uo8y5YtyznnnJPRo0end+/e6dy5c954442DXC0AAAAcOnpkACgewTgAUGfu3LmpqanJWWedlSeeeCKvv/561q5dm9mzZ6d///57dY4uXbpk1apVeeaZZ/Kb3/wmP/zhD/PSSy8d4soBAADg4NIjA0CxCMYBgDqdOnXKyy+/nK9//ev5wQ9+kO7du2fQoEGprq7OvHnz9uoc3//+9/Pd7343w4YNS79+/bJ58+aMHj36EFcOAAAAB5ceGQCKpaxUKpUauggAAAAAAAAAOFQ8MQ4AAAAAAABAoQnGAQAAAAAAACg0wTgAAAAAAAAAhSYYBwAAAAAAAKDQBOMAAAAAAAAAFJpgHAAAAAAAAIBCE4wDAAAAAAAAUGiCcQAAAAAAAAAKTTAOAAAAAAAAQKEJxgEAAAAAAAAoNME4AAAAAAAAAIX2fzQA0BrNzT3TAAAAAElFTkSuQmCC",
|
||
"text/plain": [
|
||
"<Figure size 2000x900 with 2 Axes>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
}
|
||
],
|
||
"source": [
|
||
"import matplotlib.pyplot as plt\n",
|
||
"import seaborn as sns\n",
|
||
"\n",
|
||
"def plt_combined_bar_graph(df, fraction_fields, error_fields, titles, ylabels):\n",
|
||
" \"\"\"\n",
|
||
" Plot bar graphs with error bars for specified fields in the provided DataFrame as subplots.\n",
|
||
"\n",
|
||
" Args:\n",
|
||
" df (pd.DataFrame): The DataFrame containing the data to be plotted.\n",
|
||
" fraction_fields (list[str]): List of column names in the DataFrame to be plotted on the y-axis for fractions.\n",
|
||
" error_fields (list[str]): List of column names in the DataFrame to be plotted for standard errors.\n",
|
||
" titles (list[str]): Titles of the plots.\n",
|
||
" ylabels (list[str]): Labels for the y-axis.\n",
|
||
"\n",
|
||
" This function does not return any value but displays the bar graph.\n",
|
||
" \"\"\"\n",
|
||
" n = len(fraction_fields) # Number of plots to create\n",
|
||
" fig, axs = plt.subplots(1, n, figsize=(10 * n, 9), sharey=True)\n",
|
||
" \n",
|
||
" for i, (fraction_field, error_field, title, ylabel) in enumerate(zip(fraction_fields, error_fields, titles, ylabels)):\n",
|
||
" barplot = sns.barplot(\n",
|
||
" x=\"chain\",\n",
|
||
" y=fraction_field,\n",
|
||
" data=df.sort_values(\"chain\", ascending=False), # Sort the DataFrame to reverse the order\n",
|
||
" ax=axs[i],\n",
|
||
" capsize=0.1,\n",
|
||
" errorbar=None \n",
|
||
" )\n",
|
||
"\n",
|
||
" # Add error bars manually\n",
|
||
" for j, bar in enumerate(barplot.patches):\n",
|
||
" # Get the error for the current bar\n",
|
||
" error = df.sort_values(\"chain\", ascending=False)[error_field].iloc[j]\n",
|
||
" # Add error bars to each bar\n",
|
||
" axs[i].errorbar(\n",
|
||
" x=bar.get_x() + bar.get_width() / 2,\n",
|
||
" y=bar.get_height(),\n",
|
||
" yerr=error,\n",
|
||
" fmt='none',\n",
|
||
" capsize=5,\n",
|
||
" color='black'\n",
|
||
" )\n",
|
||
"\n",
|
||
" axs[i].set_title(title)\n",
|
||
" axs[i].set_xlabel(\"Chain\")\n",
|
||
" axs[i].set_ylabel(ylabel)\n",
|
||
"\n",
|
||
" plt.tight_layout()\n",
|
||
" plt.show()\n",
|
||
"\n",
|
||
"# Define the columns and labels for the plots\n",
|
||
"fraction_fields = [\"Fraction Imports Correct\", \"Fraction Execution Correct\"]\n",
|
||
"error_fields = [\"Imports Correct Std Error\", \"Execution Correct Std Error\"]\n",
|
||
"\n",
|
||
"titles = [\n",
|
||
" \"Feedback Check Import Fraction by Chain\",\n",
|
||
" \"Feedback Check Execution Fraction by Chain\"\n",
|
||
"]\n",
|
||
"ylabels = [\"Fraction Correct\", \"Fraction Correct\"]\n",
|
||
"\n",
|
||
"# Call the function with the specified arguments\n",
|
||
"plt_combined_bar_graph(correct_frac_and_errors, fraction_fields, error_fields, titles, ylabels)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"id": "50c26dac-6825-4001-9cb5-4a4691a9685d",
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": []
|
||
}
|
||
],
|
||
"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.2"
|
||
}
|
||
},
|
||
"nbformat": 4,
|
||
"nbformat_minor": 5
|
||
}
|